反向传播是 最常用的神经网络训练算法。 它使梯度下降法成为多层神经网络的可行性方案。 许多机器学习代码库(例如 Keras) 因此您无需执行任何 底层计算。请观看以下视频 反向传播算法工作原理的概念性概览:
神经网络训练最佳实践
本部分将介绍反向传播算法的失败情形,以及 用于正则化神经网络的常用方法。
梯度消失
下神经元的梯度 网络层(更靠近输入层的层)可能会变得非常小。 在深度网络(具有 隐藏层),因此计算这些梯度可能需要 是许多小字词的乘积。
如果较低层的梯度值接近 0,则梯度值 说“就消失了”。梯度逐渐消失的层的训练速度非常缓慢,或者
ReLU 激活函数有助于防止梯度消失。
爆炸式梯度
如果网络中的权重非常大,则较低权重的梯度值 层涉及许多大型字词的乘积。在这种情况下,您可以 梯度爆炸:梯度太大而无法收敛。
批量归一化有助于防止梯度爆炸, 学习速率。
ReLU 单元死亡
一旦 ReLU 单元的加权和低于 0,该 ReLU 单元就可得到 卡住了。它会输出 0,对网络的输出没有任何贡献, 和梯度在反向传播算法期间无法再流经。使用 梯度源被截断,ReLU 的输入可能永远不会发生足够变化 使加权和重新大于 0。
降低学习速率有助于防止 ReLU 单元消失。
。Dropout 正规化
这是正则化的另一种形式, dropout 正则化, 对神经网络很有用。其工作原理是随机“退出” 单个梯度步长的单位激活量。 丢弃得越多,正则化效果就越强:
- 0.0 = 无丢弃正则化。
- 1.0 = 丢弃所有节点。模型不会学到任何东西。
- 0.0 和 1.0 之间的值更有用。