https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php
1. local minima and saddle point 局部最优和鞍点
https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/small-gradient-v7.pdf
local minima: 微分为零
saddle point: critical point 微分为零
根据泰勒展开公式,一次求导为0后可以看二次求导,判断是saddle point or local minima point.
如果红色二次求导部分恒大于0,则L(theta) > L(theta ') 恒成立,处于local minima。
如果红色二次求导部分恒小于0,则L(theta) < L(theta ') 恒成立,处于local maxima。
如果红色二次求导部分有时大于有时小于0,则处于saddle point。
当碰到saddle point 的时候,是可以通过特征向量/特征值判断方向的。
实际应用中已经很少用算特征值的方法了,因为当参数很多的时候,这种方法会运算量巨大。
当在一维的图中看上去是local minima, 在二维时看上去就是saddle point了.在实际训练时可能会有几十上百的参数,非常多维的。即使在训练非常好的时候,特征值也不一定全都是正的,也就是说都不是处于local minima, 而是在saddle point.
2. Batch and momentum 批次与动量
Batch
将数据集分为多个batch, 每一个batch都会算一次gradient更新参数。
重新打乱,再分一次batch(批次),每次这个动作就称为一个epoch(轮次).
large batch size(e.g. 20 个样本都在一个btach)批次计算, 更新一次需要遍历所有example, 历时长,但是很有效。
small batch size (e.g. 每个batch只有一个样本), 更新一次只需要遍历一个example, 每次更新的时间短, 但是不稳定。
但如果在平行运算中,两者的时间是差不多的。