我使用scipy.optimize.minimize (共轭梯度)优化函数在python中建立了一个人工神经网络。
我已经实现了梯度检查,双重检查一切等等,我很确定它是正确的工作。
我已经运行了几次,它达到了“优化终止成功”,但是当我增加隐藏层的数量时,假设的成本在它成功终止后会增加(其他一切都保持不变)。
从直觉上看,当隐藏层的数量增加时,成本就会减少,因为它能够产生一个更复杂的假设,可以更好地拟合数据,但情况似乎并非如此。
我有兴趣了解这里发生了什么,或者我是否错误地实现了神经网络?
发布于 2014-06-11 12:34:51
神经网络的错误有很多种方式,所以很难调试。另外,为了解决你的直觉,每一个额外的隐藏层都会让学习变得更加困难。话虽如此,以下是一些可能性:
训练神经网络需要大量的练习、运气和耐心。祝好运。
发布于 2014-06-12 07:22:16
在大多数情况下,增加标准神经网络的隐藏层数并不能改善结果。更改隐藏层的大小将。
这一事实(隐藏层的数量很少)实际上在历史上已经被注意到,也是深入学习领域背后的动机。深度学习是一种有效的训练多层神经网络的聪明方法,例如,在不同层次的训练中分离特征子集。
YouTube上关于这个主题的很好的介绍视频
https://datascience.stackexchange.com/questions/319
复制