美国有线电视新闻网损失率为2.302(ln(10))

时间:2017-12-14 21:09:49

标签: tensorflow deep-learning artificial-intelligence conv-neural-network

我正在尝试对神经网络进行建模以解决CIFAR-10数据集问题,但是我遇到了这个非常奇怪的问题,我尝试过6种不同的CNN架构,并且有许多不同的CNN超参数和完全连接的#neurons值,但是所有似乎都失败了2.302的损失和相应的0.0625的准确度,为什么会发生这种情况,CNN或神经网络的这个属性使得这个,我也尝试了dropout,l2_norm,不同的内核大小,CNN和Max Pool中的不同填充。我不明白为什么损失会超过这么奇怪的数字?

我正在使用tensorflow实现这个,我尝试了softmax layer + cross_entropy_loss,以及without_softmax_layer + sparse_cross_entropy_loss。是神经网络损失函数停滞的高原吗?

1 个答案:

答案 0 :(得分:4)

这似乎是您不小心将非线性/激活功能应用于网络的最后一层。请记住,交叉熵适用于介于0和1之间的值。当您在计算交叉熵之前通过应用softmax函数将输出自动“强制”到此范围时,您应该“应用”线性激活功能(只是不添加任何功能)。

顺便说一句,2.302的值不是偶然的。相反,当您假设所有10个类别(CIFAR-10)最初具有相同的0.1预期扩散概率时,softmax损失为-ln(0.1)。查看Andrej Karpathy的解释: http://cs231n.github.io/neural-networks-3/