文章目录
写在前面
[视频学习-bilibili] | [课程主页——sample code & slide] | [ML2021学习笔记]
神经网络训练不起来怎么办?
【2-2】04_Local Minimum And Saddle Point(Saddle Point不可怕,Local Minimum 几乎不可能遇到,在高维度上看就不是Local Minimum 了)
特征值有正有负是Saddle Point, 全正局部最小,全负局部最大
local minimal 很少,几乎不可能遇到(在更高的维度上看,local minimal可能就不是local minimal了)
【2-3】05_Batch and Momentum(训练技巧)
Batch
big batch_size 时间并不比 small batch_size 多,因为并行计算,跑完一个epoch大的batch_size update次数少
smaller batch size has better performance(更有差异)
鱼和熊掌兼得?(既想large batchsize 的快,又想small batchsize的optimization)
Momentum
总结(cirtical points 是梯度为0的点不好更新,smaller batch size 和 momentum能有效解决)
【2-4】06_Adaptive Learning Rate
loss不再下降,可能不是local minimal(极少遇到几乎不考虑),而是学习率太大反复横跳,太小梯度无法更新
Adam最常用(用pytorch默认的参数 效果 就很好了)
Learning Rate Scheduling(学习率随时间变化,有Decay和Warm up(黑科技))
Warm up(黑科技,学习率先上升后下降,直观的解释是:先探索每个方向,再走下去)
为什么需要Warm up,请参考
小结:Summary of Optimization
【2-5】08_Classification - 损失函数(Loss)也可能有影响
Softmax
loss of classfication(Cross-entropy)
过去上课有讲证明,Classification讲两个多小时,21年简化了精简了。。。
改变loss function 就可以改变optimization的难度
【2-6】07_Batch Normalization
如果输入的x
很小,w
也很小,乘起来也就很小。
尽量loss不要变得椭圆,难train
Feature Normalization
BN(Feature Normalization只对第一层的input处理,那么第二层的呢?第三层…?引出BN)
Batch Normalization的batch要够大
Batch Normalization —— Testing
BN的实验结果:加快训练速度(BN推平了error surface,所以learing rate能够调大一点)
为什么BN会好呢?