第三方做农产品价格数据的网站/外贸怎么找客户资源
在【机器学习17】中,笔者介绍了反向传播算法。反向传播算法是神经网络最常见的训练算法。它使得梯度下降对于多层神经网络来说是可行的。 TensorFlow 可以自动处理反向传播,因此我们不需要深入了解该算法。要了解其工作原理,请阅读【机器学习17】。本文将重点解释反向传播的失败案例以及正则化神经网络的最常见方法。
1.失败案例
反向传播出错的常见方式有很多,本节介绍其中最常见的三种失败案例。
1.1 梯度消失
较低层(更接近输入)的梯度可能变得非常小。在深度网络中,计算这些梯度可能涉及取许多小项的乘积。当较低层的梯度趋于 0 时,这些层的训练速度非常慢,或者根本不训练。ReLU 激活函数可以帮助防止梯度消失。
1.2 梯度爆炸
如果网络中的权重非常大,则较低层的梯度涉及许多大项的乘积。在这种情况下,可能会遇到梯度爆炸:梯度太大而无法收敛。批量归一化可以帮助防止梯度爆炸,也可以降低学习率。
1.3 死 ReLU 单元
一旦 ReLU 单元的加权和低于 0,ReLU 单元就会陷入困境。它输出 0 激活,对网络的输出没有任何贡献,并且梯度在反向传播期间不再能流过它。当梯度源被切断时,ReLU 的输入可能永远不会改变到足以使加权和回到 0 以上。降低学习率有助于防止 ReLU 单元死亡。
2.Dropout正则化
在【机器学习10】和【机器学习14】中,我们已经介绍了 L1、L2 正则化,这里介绍另一种形式的正则化称为 Dropout,对于神经网络很有用。它的工作原理是在网络中随机“丢弃”单个梯度步骤的单元激活。退出越多,正则化越强:
- 0.0 = 无丢失正则化。
- 1.0 = 放弃一切。该模型什么也没学到。
- 0.0 和 1.0 之间的值 = 更有用。
3.参考文献
链接-https://developers.google.cn/machine-learning/crash-course/training-neural-networks/best-practices。