当前位置:  开发笔记 > 开发工具 > 正文

CNN损失停留在2.302(ln(10))

如何解决《CNN损失停留在2.302(ln(10))》经验,为你挑选了1个好方法。

我正在尝试对神经网络进行建模以解决CIFAR-10数据集,但是我面临着这个非常奇怪的问题,我已经尝试了6种不同的CNN体​​系结构,并使用了许多不同的CNN超参数和完全连接的#neurons值,但似乎都为了失败而损失2.302,而相应的精度为0.0625,为什么会发生这种情况,CNN或神经网络的特性使它如此,我还尝试了dropout,l2_norm,不同的内核大小,CNN和Max Pool中的不同填充。我不明白为什么损失会卡在这样的奇数上?

我正在使用tensorflow来实现这一点,并且我尝试了softmax层+ cross_entropy_loss和not_softmax_layer + sparse_cross_entropy_loss。神经净损失函数停留在高原吗?



1> 小智..:

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

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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有