Datawhale X 李宏毅苹果书 AI夏令营 3.1
梯度归零的点 临界点
训练损失不再下降 -》 梯度归0 -》 临界点(局部极小/大值、鞍点)
判断临界值种类的方法(计算不太懂,数学忘了一些
- L(θ) vs L(θ′)
- vTHv 正负
判断出来临界点是鞍点的话,还是可以继续训练的,且海森矩阵会告知方向。不过计算量非常大,书里说可以尝试从高纬度判断,故事不能说明正确性,但是可以帮助理解高纬度的思路。老师的经验告诉我们:“局部极小值并没有那么常见,更多的是遇到了鞍点”
隐藏任务1:找到一个优化失败的案例,意思就是找一个卡在临界点没有往下训练的例子。
隐藏任务2:过一遍文档,自己的理解程度60左右,不理解在于数学判断临界值种类的计算和维度判断临界值。
批次大小
batch_size 人为设置的超参数,意思是一次拿多少条训练数据去更新梯度
BGD 是一次拿全部的数据去算,SGD 是拿一个。“折中一下,五五开吧。或者批次大小不固定,分阶段选大小(瞎说的)”
"图 3.11 不同的批量来训练模型来做图像识别问题的实验结果" 中用MNIST 、 CIFAR-10 举例子,批量大小越大,验证/训练准确率越差。MNIST 训练集大小 6w,测试集合大小1w;另一个差不多,训练5w,测试1w, 图 3.11b CIFAR-10 5w的训练集怎么跑出来6w的批次大小的?
图里的横轴的 batch_size 只能指的是训练时的批次大小,batch_size 大到和训练集一样大,感觉诡异。通常我们学习时是分节来学习的,全面考核一班是用来测试学习成果(人话就是批次小一些)
momentum
Momentum 相比与SGD,加上了动量,在陷入局部极小值的时候可以靠惯性荡出去。问题是多大的动量恰好可以荡出去?
refer
MNIST数据集详解及可视化处理(pytorch) https://zhuanlan.zhihu.com/p/306399851
https://www.cs.toronto.edu/~kriz/cifar.html
https://blog.csdn.net/qq_41897558/article/details/105094752
https://datawhaler.feishu.cn/wiki/FfmVwc5YwiUvp5k3aiRcONlInsh
使用Adam及其变体、动量SGD和组合优化器