tensorflow学习日志(十一) 机器学习( 训练神经网络)

主要来源:视频学习网站Google机器学习教程

反向传播算法

反向传播算法: 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

最常见的一种神经网络训练算法。借助这种算法,梯度下降法在多层神经网络中将成为可行方法。
TensorFlow 可自动处理反向传播算法,因此您不需要对该算法作深入研究。

反向传播注意事项:
1.梯度很重要:如果它是可微的,则我们也许能够对其进行学习
2.梯度可能会消失:每个额外的层都会依次降低信噪比;ReLu 在这里很有用;
3.梯度可能会爆炸:学习速率在这里很重要;批标准化可以提供帮助;
4.ReLu 层可能会消失:保持冷静,并降低您的学习速率

梯度消失
较低层(更接近输入)的梯度可能会变得非常小。在深度网络中,计算这些梯度时,可能涉及许多小项的乘积。
当较低层的梯度逐渐消失到 0 时,这些层的训练速度会非常缓慢,甚至不再训练。ReLU 激活函数有助于防止梯度消失。

梯度爆炸
如果网络中的权重过大,则较低层的梯度会涉及许多大项的乘积。在这种情况下,梯度就会爆炸:梯度过大导致难以收敛。批标准化可以降低学习速率,因而有助于防止梯度爆炸。

ReLU 单元消失
一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。降低学习速率有助于防止 ReLU 单元消失。

标准化特征值

我们希望特征具有合理的范围:
大致以 0 为中心,[-1, 1] 的范围通常效果比较好
有助于梯度下降法收敛;避免 NaN 陷阱
避免离群值也会有帮助

可以使用一些标准方法:
线性缩放;
为最大值和最小值设定硬性上下限(截断);
对数缩放;

丢弃正则化

丢弃:这是称为丢弃的另一种形式的正则化,可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强。

0.0 = 无丢弃正则化
1.0 = 丢弃所有内容!学不到任何规律
中间值更有用

猜你喜欢

转载自blog.csdn.net/sazass/article/details/87400620
今日推荐