李宏毅机器学习(2021版)_P5-6:小梯度处理

目录

  • 相关资料
  • 1、优化失败原因 Optimization Fails
    • 1.1、critical point
    • 1.2、数学解释
    • 1.3、鞍点处理
    • 1.4、临界点数量比例
  • 2、Batch and Momentum
    • 2.1、Batch 批次
    • 2.2、Small Batch v.s. Large Batch
      • 2.2.1、计算速度
      • 2.2.2、训练优化效果
      • 2.2.3、测试检测效果
      • 2.2.4、综合比对
    • 2.3、Momentum
  • 3、结论

相关资料

视频链接:https://www.bilibili.com/video/BV1JA411c7VT

原视频链接:https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.html

Leeml-notes开源项目:https://github.com/datawhalechina/leeml-notes

1、优化失败原因 Optimization Fails

李宏毅机器学习(2021版)_P5-6:小梯度处理_第1张图片

1.1、critical point

gradient is zero,梯度为0的点,称为critical point。包含两类,local minima,saddle point,如下:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第2张图片

1.2、数学解释

采用多元函数泰勒展开,()在 = ′处展开如下:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第3张图片
g为函数梯度,为一个向量;H为函数的海森矩阵,表示对不同参数的二阶矩阵:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第4张图片
在critical point处,梯度g=0,简化如下:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第5张图片
Critical Point类型有三类,minima,maxima,Saddle point,依靠 ^ vTHv大小判断:
^ vTHv>0:()> (′),minima
^ vTHv<0:()< (′),maxima
^ vTHv>0 及 <0:Saddle point
也可以通过H的特征值正负性判断三类特殊点。李宏毅机器学习(2021版)_P5-6:小梯度处理_第6张图片举例: = 1 2 = _1_2 y=w1w2x, 数据(1,1)
损失函数: = ( ^ − 1 2 ) 2 = ( 1 − 1 2 ) 2 = (\hat − _1_2)^2 = (1- _1_2)^2 L=(y^w1w2x)2=(1w1w2)2;
计算g与H如下:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第7张图片

1.3、鞍点处理

依靠海森矩阵H确定鞍点优化方向, may tell us parameter update direction。数学的假设推理如下:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第8张图片
寻找海森矩阵H的一个负的特征向量u,即为L下降方向。
举例:
上述函数,找到鞍点并且寻找下降方向:

  • 在(0,0),海森矩阵H特征值2,-2。有正负,判断(0,0)为鞍点。
  • 选取海森矩阵H特征值-2对应的一个特征向量 = [1, 1],即为更新方向。
    但是,因为计算量比较大,上述方法比较少用。
    李宏毅机器学习(2021版)_P5-6:小梯度处理_第9张图片

1.4、临界点数量比例

李宏毅机器学习(2021版)_P5-6:小梯度处理_第10张图片
M i n i m u m r a t i o = N u m b e r    o f    P o s i t i v e    E i g e n    v a l u e s N u m b e r    o f    E i g e n    v a l u e s Minimum ratio = \frac {Number \; of \; Positive \; Eigen \;values} {Number\; of \;Eigen \;values} Minimumratio=NumberofEigenvaluesNumberofPositiveEigenvalues
上图中,通过实证研究,大部分的critical point为鞍点,local minima很少(横坐标1处,为绝对minima)。

2、Batch and Momentum

2.1、Batch 批次

一个训练epoch分为数个batch,每一个batch均可以对损失函数参数 θ \theta θ进行更新。每个epoch的batch均会重新分配。
李宏毅机器学习(2021版)_P5-6:小梯度处理_第11张图片

2.2、Small Batch v.s. Large Batch

2.2.1、计算速度

采用GPU并行计算,小批次和大批次在一定范围内耗时基本一致:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第12张图片
但是不同batch之间转换需要更多时间,所以小批次epoch内需要时间更长:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第13张图片

2.2.2、训练优化效果

大批次训练,容易导致优化错误(Optimization Fails);小批次训练性能更好:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第14张图片
原因:大批次参数更新次数少,容错率低;小批次参数更新的次数多,可以有更多可能跳出local minima。
李宏毅机器学习(2021版)_P5-6:小梯度处理_第15张图片

2.2.3、测试检测效果

小批量测试数据要好,实验结果如下:SB表示小批次,LB表示大批次。
李宏毅机器学习(2021版)_P5-6:小梯度处理_第16张图片
原因仍然是参数更新的问题,train与test的损失函数,认为有一定平移;小批次更容易陷入Sharp Minima,无法更新:
李宏毅机器学习(2021版)_P5-6:小梯度处理_第17张图片

2.2.4、综合比对

李宏毅机器学习(2021版)_P5-6:小梯度处理_第18张图片

2.3、Momentum

Momentum:学习率动量,在更新参数时,不仅考虑函数的梯度,也考虑之前更新的各个梯度方向:
t = λ t − 1 − η t − 1 ^t = \lambda ^{t-1} − \eta ^{t-1} mt=λmt1ηgt1
综合考虑梯度下降和学习率动量,参数更新如下:李宏毅机器学习(2021版)_P5-6:小梯度处理_第19张图片
在计算中,可以发现,动量 m i m^i mi包含 g 0 g^0 g0 g i g^i gi的各个权重之和;
i = − ( λ i − 1 η g 0 + λ i − 2 η 2 g 1 + . . . + λ η i − 1 g i − 2 ) − η g i − 1 ^i = -(\lambda^{i-1} \eta g^0 + \lambda^{i-2} \eta^2 g^1+...+\lambda \eta^{i-1} g^{i-2})-\eta g^{i-1} mi=(λi1ηg0+λi2η2g1+...+ληi1gi2)ηgi1

3、结论

  • 临界点Critical points出梯度为0。
  • 临界点可以是鞍点和局部最小值。
    可以由海赛矩阵H决定。
    可以沿着海赛矩阵的特征向量的方向逃脱鞍点。
    局部最小值可能是罕见的。
  • 小批量和动量更新有助于逃脱临界点。

你可能感兴趣的:(李宏毅机器学习(2017版),机器学习,算法,人工智能)