Keras:多类分类密集层

时间:2017-03-14 17:34:24

标签: machine-learning computer-vision classification

我已经看到我们可以使用Dense(num_classes, ...)作为输出层,但我也看到Dense((num_classes-1), ...),特别是在谈论二进制分类时。你用哪个?为什么?

1 个答案:

答案 0 :(得分:1)

这是我的2美分,

我使用Dense(num_classes)因为我可以在这个层的输出上计算softmax。

对于二元分类,我们通常使用交叉熵作为损失函数。因此,我们只需要计算p(x = 1)和p(x = 0)可以计算为1 - p(x = 1)。

对于多类分类,将输出大小减小1的唯一好处是减少数量参数,因为我们可以计算p(x = k)= 1 - sum_ {i = 1} ^ K p(x = i),假设K是数字类。因此,如果您打算不使用softmax但使用不同的函数,也许您可​​以让输出图层具有(num_classes - 1)单位。