李宏毅2021深度学习
Math
网络中梯度为0的点统称为critical point,包括全局最优点(blobal minina),局部最优(local minina)和鞍点(saddle point).
在critical point,梯度为0,判断critical point属于哪种类型,取决于等式最后一项。
- H是正定矩阵——所有特征值均为正——局部最小值
- H是负定矩阵——所有特征值均为负——局部最大值
- 特征值有正有负——鞍点
从特征值判断critical点的类型,从特征向量判断参数更新的方向,参数沿着特征向量的方向更新。
最后说明一点,在高维空间上,特征值很少可以同时为正或者同时为负,网络中大多为鞍点。
Batch
为什么需要分batch?数据量太大,训练耗时太长
由于在GPU环境中并行计算的引入,batchsize小于一定阈值时,batchsize增加时,计算时间没有明显增长。
上图可以看出,随着batchsize的增长,训练所需要的时间反而降低。
因为并行计算的引入,batchsize增加引起的单个batch数据训练时长的增加不多,但是updata的次数明显下降,所以会使网络训练更快。
从上两幅图可以看出,小的batchsize更有利于提高训练集和测试集的准确率。(李老师课程有详细介绍原因,有兴趣观看)
总结:大的batchsize可以使网络训练速度变快;小的batchsize可以提高网络准确率,至于两者之间怎么平衡,需要根据具体任务具体选择。
Momentum
常规梯度下降算法,沿着梯度反方向改变参数
引入动量,参数更改方向不仅与梯度相关也和上一次参数方向相关