- 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、结论
1、优化失败原因 Optimization Fails 1.1、critical point
gradient is zero,梯度为0的点,称为critical point。包含两类,local minima,saddle point,如下:
采用多元函数泰勒展开,퐿(휽)在휽 = 휽′处展开如下:
g为函数梯度,为一个向量;H为函数的海森矩阵,表示对不同参数的二阶矩阵:
在critical point处,梯度g=0,简化如下:
Critical Point类型有三类,minima,maxima,Saddle point,依靠
풗
푇
퐻
풗
풗^푇퐻풗
vTHv大小判断:
풗
푇
퐻
풗
풗^푇퐻풗
vTHv>0:퐿(휽)> 퐿(휽′),minima
풗
푇
퐻
풗
풗^푇퐻풗
vTHv<0:퐿(휽)< 퐿(휽′),maxima
풗
푇
퐻
풗
풗^푇퐻풗
vTHv>0 及 <0:Saddle point
也可以通过H的特征值正负性判断三类特殊点。举例:
푦
=
푤
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=(1−w1w2)2;
计算g与H如下:
依靠海森矩阵H确定鞍点优化方向,퐻 may tell us parameter update direction。数学的假设推理如下:
寻找海森矩阵H的一个负的特征向量u,即为L下降方向。
举例:
上述函数,找到鞍点并且寻找下降方向:
- 在(0,0),海森矩阵H特征值2,-2。有正负,判断(0,0)为鞍点。
- 选取海森矩阵H特征值-2对应的一个特征向量풖 = [1, 1],即为更新方向。
但是,因为计算量比较大,上述方法比较少用。
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)。
一个训练epoch分为数个batch,每一个batch均可以对损失函数参数
θ
theta
θ进行更新。每个epoch的batch均会重新分配。
采用GPU并行计算,小批次和大批次在一定范围内耗时基本一致:
但是不同batch之间转换需要更多时间,所以小批次epoch内需要时间更长:
大批次训练,容易导致优化错误(Optimization Fails);小批次训练性能更好:
原因:大批次参数更新次数少,容错率低;小批次参数更新的次数多,可以有更多可能跳出local minima。
小批量测试数据要好,实验结果如下:SB表示小批次,LB表示大批次。
原因仍然是参数更新的问题,train与test的损失函数,认为有一定平移;小批次更容易陷入Sharp Minima,无法更新:
Momentum:学习率动量,在更新参数时,不仅考虑函数的梯度,也考虑之前更新的各个梯度方向:
풎
t
=
λ
풎
t
−
1
−
η
품
t
−
1
풎^t = lambda 풎^{t-1} − eta 품^{t-1}
mt=λmt−1−ηgt−1
综合考虑梯度下降和学习率动量,参数更新如下:
在计算中,可以发现,动量
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=−(λi−1ηg0+λi−2η2g1+...+ληi−1gi−2)−ηgi−1
- 临界点Critical points出梯度为0。
- 临界点可以是鞍点和局部最小值。
可以由海赛矩阵H决定。
可以沿着海赛矩阵的特征向量的方向逃脱鞍点。
局部最小值可能是罕见的。 - 小批量和动量更新有助于逃脱临界点。



