斜率变化很大时候,需要用调节学习率,优化器得到好的结果。
w1改变导致L改变,w1的改变对其的影响程度有限时候,
让不同的维度dimension有相同的范围,可以避免这种情况。
有不同的normalizaiton方法, 这里以标准化为例:
对每个dimension计算均值,标准差,进行normalization
做完dimension normalization后,均值为0,方差为1。让梯度下降收敛更快点。
虽然第一层进行了特征归一化,但经过后面的层后会乘上w等,也会使得优化变得困难,因此需要对这些层也需要进行normalization处理。
对z做normalization和a做normalization都是可以的,但如果是用sigmoid函数的话,建议放在a的前面。
u和σ\sigmaσ依赖于z。
一堆进行计算,而不是单独考虑。
只在一个batch中进行normalization
多了两个参数,gama和beta,进行缩放,gama初始值设置为1,beta初始值设置为0;
预测的时候是一个样本的话,怎么算miu和sigma?
p一般设置为0.1,测试的时候直接用训练的平均值。
A的优化方向并不一定适用于A‘的方向,Batch Normalization能使得a和a‘有相似统计。
但是论文 《how does batch Normalization help optimization》 不支持上述观点,支持batch Normalization可以改变error surface不崎岖的观点。不用batch normalization也可以有很多方法可以达到同样的效果。
上一篇:Linux 命令复习