10 我使用scipy.optimize.minimize(共轭梯度)优化功能在python中构建了一个人工神经网络。 我已经实施了梯度检查,仔细检查了所有内容,等等,我确定它可以正常工作。 我已经运行了几次,它达到了“优化成功终止”,但是当我增加隐藏层的数量时,假设成功终止后,假设的成本增加了(其他所有条件保持不变)。 凭直觉,似乎随着增加隐藏层的数量,成本应该降低,因为它能够生成更复杂的假设,可以更好地拟合数据,但是事实并非如此。 我很想了解这里发生的事情,或者我是否正确实施了神经网络? machine-learning python neural-network — 用户名 source
9 神经网络有很多出错的方法,这将很难调试。另外,为了满足您的直觉,每个额外的隐藏层都会使学习变得更加困难。话虽如此,这里有一些可能性: 您增加了体重下降。添加更多层会增加权重,从而增加正则化成本。 问题很简单,只有一个隐藏层的模型就足够了。添加更多的隐藏层将使网络变得更难学习(更难的优化问题)。 优化方法做得不好(我更喜欢climin来scipy.optimize)。 您正在使用S形/ tanh激活功能。乙状结肠功能会导致梯度消失的问题,使学习难度加大。尝试使用ReLu功能。 训练神经网络需要大量的练习,运气和耐心。祝好运。 — 用户名 source 1 好答案。但是请意识到2、3、4可以以复杂的方式进行交互。调试可以通过检查ANN,人工神经网络的权重的大小的激活值,保持眼睛上进行样品中和外的样品误差和优化的收敛等 — Def_Os
3 在大多数情况下,增加标准神经网络的隐藏层数实际上不会改善结果。更改隐藏层的大小将会。 历史事实(隐藏层的数量很少)实际上是历史记录,是深度学习领域的动力。深度学习是训练多层神经网络的有效聪明方法,例如,当训练不同层时,通过隔离特征子集。 YouTube上有关此主题的精彩介绍视频 — 埃里克·蒋 source 2 深度学习涉及增加隐藏层的数量。否则,这将被称为胖学习:) — Emre 2014年 @Emre绝对是那样。诅咒我的标点符号! — eric chiang 2014年