[2022]李宏毅深度学习与机器学习第二讲(选修)听课笔记
做笔记的目的
1、监督自己把50多个小时的视频看下去,所以每看一部分内容做一下笔记,我认为这是比较有意义的一件事情。
2、路漫漫其修远兮,学习是不断重复和积累的过程。怕自己看完视频不及时做笔记,学习效果不好,因此想着做笔记,提高学习效果。
3、因为刚刚入门深度学习,听课的过程中,理解难免有偏差,也希望各位大佬指正。
Gradient Descent
前期知识点
SGD,就是非常非常普通的optimization 方法
SGDM是在SGD的基础上加上Momentum,是因为让前面的gradient作用到当前,可以跳出局部最优解,方法如下:
Adagrad 是一种让学习率在平坦的地方走的快一点,在狭窄的地方走的慢一点的一种技术,方法如下图:
RMSProp优化方法是在Adagrad的基础上进行了改进,为的是当从平缓的地方进入狭窄的地方时让学习率快一点变小,从狭窄的地方进入平缓的地方时让学习率快一点变大,方法如下:
Adam优化器,这个优化器应用的比较广泛,时SGDM和RMSProp的合并版本,方法如下图:
应用情况
之前介绍的优化方法都是比较早提出来的,后面提出的优化方法比较少,主流的还是SGDM和Adam,一些常见的模型也都是用这些优化器。
Adam vs SGDM
从这两个图中可以Adam在训练集上训练速度比较快而且,同时SGDM在验证集的结果上比较不错。
ResNet-34上测试的结果
所以可能,是因为Adam更容易进入到狭窄的最优解。所以一种改进方法SWATS,先用Adam训练,在用SGDM训练,但是什么时候换SGDM训练,论文中并没有给出明确的科学方法。
AMSGrad和AdaBound
主要是改进Ada方法
改进SGDM
learn rate的取值和正确率
可以周期性的调整学习率,两种方法Cyclical LR和SGDR以及One-cycle LR
RAdam
应用Warm-up
RAdam和SWATS的比较,两个初衷并不一样,RAdam是为了让一开始跟新的别太快,SWATS就是单纯的结合两个优点,Adam比较快,但是SGDM比较稳,训练和测试的结果相差不多。
K-step forward,1 step back
这个方法是一个通用方法,外层循环更新参数,a取什么值都关系不是很大,只要不是很离谱就可以。
结果更加更加平稳,更加好,可以用在很多地方
提前看到前一个时刻的梯度
改进SGDM和Adam
正则化在优化里的应用如果
如何加上L2正则化,并且在优化的时候用到了momentum就会涉及到要不要把L2正则化加入到momentum里。
总结
这一页PPT总的来说就是增加随机性,让模型更具有探索性。
这一页动态的调整学习率
SGD和Adam的比较,和应用的场景