分类交叉熵需要使用categorical_accuracy或准确度作为keras中的指标吗?

Ary*_*ema 4 keras

我目前正在进行多类分类的研究.我使用了分类交叉熵,并且我使用准确度作为实验的指标得到了非常好的结果.当我尝试使用categorical_accuracy时,它会给出稍差的准确度(低于1%).我的问题是,是否可以使用准确度指标来进行分类的交叉熵损失,而不是使用categorical_accuracy?

dhi*_*ley 14

Keras检测output_shape并自动确定accuracy指定时使用的精度.对于多类分类,categorical_accuracy将在内部使用.从来源:

            if metric == 'accuracy' or metric == 'acc':
                # custom handling of accuracy
                # (because of class mode duality)
                output_shape = self.internal_output_shapes[i]
                acc_fn = None
                if output_shape[-1] == 1 or self.loss_functions[i] == losses.binary_crossentropy:
                    # case: binary accuracy
                    acc_fn = metrics_module.binary_accuracy
                elif self.loss_functions[i] == losses.sparse_categorical_crossentropy:
                    # case: categorical accuracy with sparse targets
                    acc_fn = metrics_module.sparse_categorical_accuracy
                else:
                    acc_fn = metrics_module.categorical_accuracy
Run Code Online (Sandbox Code Playgroud)

您看到的1%差异可能归因于逐次运行变化,因为随机梯度下降将遇到不同的最小值,除非使用相同的随机种子.

  • 您是否介意解释稀疏分类交叉熵与分类交叉熵之间的差异? (6认同)
  • 2年后,如果您有 [1,2,3,4...30] 形式的标签,则稀疏_分类_交叉熵可以工作,如果您有单热编码的标签 [1,0,0...30],则 categorical_cross_entropy 可以工作。 0], [0,1,0,....] (5认同)