1.局部最小值和鞍点
local minima:局部最小值
saddle point:鞍点
它们统称为critical point(临界点)。
如何知道是哪个?
举例
这是saddle point。
saddle point比local minima更加常见。
2.批次(Batch)与动量(Momentum)
左边没有用batch,右边是使用了batch的。左边的更新所要花的时间更长,结果更加稳定;右边花费的时间短,但是有噪声。
小的batch size 有更好的表现,大的batch size优化失败。
为何会出现这个状况?
小的batch更容易在一个宽的地方停下来,大的batch更容易在窄的地方停下来,因此大的batch更容易出现坏的结果。
对比结果
动量+梯度下降
下一步走的方向取决于gradient的方向和之前的方向。
3.自动调整学习速率(learning rate)
当没有临界点时训练会十分难,我们希望当梯度很小的时候,learning rate能够调大一点。
RMSprop
Adam
如何解决震荡的问题?
learning rate dacy 随着时间不断进行,参数不断更新,把learning rate减小。
warm up
learning rate先变大,后变小。
优化总结
4.classification as regression(回归分类)
soft-max的计算方法,让结果在0和1之间。
计算损失函数
mean square error:均方误差
cross-entropy:交叉熵
为什么cross-entropy更好?
在左上角时,loss都非常大,但是mean square非常的平缓,gradient太小。
5.批次标准化(batch normalization)
不同的维度对
same range 接近的范围
feature normalization
在每个维度i,求得平均数 mi,标准差
the means of all dims are 0,and the variances are all 1。
再次对z做批次化处理,步骤与上相同。参数彼此相关,应该把整个看成一个large network。
testing 阶段
moving average:流动平均数
为什么batch mormalization是有效的?
internal covariate shift可能并不是最主要的问题