- 一、梯度下降法(GD,Gradient Descent)
- 原理
- 缺点
- 优化点
- 二、缩小计算量
- 1.随机梯度下降(SGD)
- 原理
- 证明:
- 2.小批量梯度下降法(MBGD)
- 三、优化梯度下降过程
- 1.牛顿法
- 理解
- 缺点:
- 2.动量法(也叫冲量法),参考了历史数据
- 如何实现?
- 名字的由来
- 3.Nesterov法(又名牛顿冲量法,与牛顿无关,参考未来数据)
- 如何实现?
- 4. AdaGrad(针对学习率的修正)
- 如何实现
- 缺点:
- 5.RMSprop(使用指数加权考虑历史信息的重要性以修正adagrad)
- 6.Adam(RMS+动量法)
求整个数据集的loss,并由链式求导更新权重
缺点理论可行,但训练计算量庞大,耗时严重,实际不可行。
优化点1.缩小计算量
2.优化梯度下降过程
均匀地、随机选取其中一个样本 ( X ( i ) , Y ( i ) ) (X^{(i)},Y^{(i)}) (X(i),Y(i)),用它代表整体样本,即把它的值乘以N,就相当于获得了梯度的无偏估计值。
证明:在一顿猛如虎的计算下,随机梯度在凸问题下,结果如下:
f
(
x
(
k
)
)
−
f
∗
=
O
(
1
k
)
f(x^{(k)})-f^{*}=O(frac{1}{sqrt{k}})
f(x(k))−f∗=O(k
1),意思为在迭代k次后,最后随机梯度下降法所能达到的误差是
1
k
frac{1}{sqrt{k}}
k
1这个级别。
在强凸问题下,结果为
f
(
x
(
k
)
)
−
f
∗
=
O
(
1
k
)
f(x^{(k)})-f^{*}=O(frac{1}{k})
f(x(k))−f∗=O(k1)。
结论:直接使用梯度下降法,收敛速度必然比随机梯度快,但是再快也不会超过1/k,所以在性价比中不如随机梯度下降法。
2.小批量梯度下降法(MBGD)可以视为使用了一个mini-batch的随机梯度下降法
三、优化梯度下降过程 1.牛顿法
即使用一个二次函数拟合梯度下降方向,数学表达如下:
矩阵表达如下:
由泰勒展开理解,最优路线就是贴着山走,将贴着山的曲线泰勒展开,牛顿法相当于两项来逼近曲线,梯度下降相当于一项,更高阶理论上更好,但是复杂度更大了。
可以认为牛顿法本质为对所有的下降路径放在一起,统一考虑,看是否可得更好路径。
计算量太大,理论可行。
2.动量法(也叫冲量法),参考了历史数据 如何实现?用历史数据修正分量
- GD的梯度更新: W t = W t − 1 − η ⋅ ∇ J W_{t}=W_{t-1}-etacdot{nabla{J}} Wt=Wt−1−η⋅∇J
- 若令 △ W ( t ) i = ∂ J ( W ( t − 1 ) i ) ∂ W i triangle{W_{(t)i}}=frac{partial{J}(W_{(t-1)i})}{partial{W_i}} △W(t)i=∂Wi∂J(W(t−1)i)
- 则 W t = W t − 1 − η ⋅ △ W ( t ) i W_{t}=W_{t-1}-etacdot{triangle{W_{(t)i}}} Wt=Wt−1−η⋅△W(t)i
- 此时,加入历史梯度,则有 V ( t ) = V ( t − 1 ) + △ W ( t ) i V_{(t)}=V_{(t-1)}+triangle{W_{(t)i}} V(t)=V(t−1)+△W(t)i,此时 W t = W t − 1 − η ⋅ V ( t ) W_{t}=W_{t-1}-etacdot{V_{(t)}} Wt=Wt−1−η⋅V(t)
- 但是在经过足够多的迭代后,太过久远的梯度已无参考价值,此时直接使用不合理。因此引入加权求和以更新
V
(
t
)
V_{(t)}
V(t)。公式为$
V
(
t
)
=
β
⋅
V
(
t
−
1
)
+
(
1
−
β
)
⋅
△
W
(
t
)
i
V_{(t)}=betacdot{V_{(t-1)}}+(1-beta)cdottriangle{W_{(t)i}}
V(t)=β⋅V(t−1)+(1−β)⋅△W(t)i
为什么此处为 β 和 1 − β beta和1-beta β和1−β?
利用指数加权移动平均法。例: β = 0.9 beta=0.9 β=0.9时
故而越远的影响越忽略不计。
我们可以认为以前的改变具有惯性,我们需要将其抵消才能发生变化。故而在拥有这个历史动量后,出来的效果自然更稳定。
3.Nesterov法(又名牛顿冲量法,与牛顿无关,参考未来数据) 如何实现?冲量法:
V
(
t
)
=
β
⋅
V
(
t
−
1
)
+
(
1
−
β
)
⋅
△
W
(
t
)
i
V_{(t)}=betacdot{V_{(t-1)}}+(1-beta)cdottriangle{W_{(t)i}}
V(t)=β⋅V(t−1)+(1−β)⋅△W(t)i,其中,
△
W
(
t
)
i
=
∂
J
(
W
(
t
−
1
)
i
)
∂
W
i
triangle{W_{(t)i}}=frac{partial{J}(W_{(t-1)i})}{partial{W_i}}
△W(t)i=∂Wi∂J(W(t−1)i),因此:
W
t
=
W
t
−
1
−
η
⋅
V
(
t
)
W_{t}=W_{t-1}-etacdot{V_{(t)}}
Wt=Wt−1−η⋅V(t)
改进:
△
W
(
t
)
i
=
∂
J
(
W
(
t
−
1
)
i
+
γ
V
(
t
−
1
)
)
∂
W
i
triangle{W_{(t)i}}=frac{partial{J}(W_{(t-1)i}+gamma{V_{(t-1)}})}{partial{W_i}}
△W(t)i=∂Wi∂J(W(t−1)i+γV(t−1))
ε
varepsilon
ε为极小量,避免分母为0。迭代次数越多,学习率越偏向于0.
会陷于局部最优解
5.RMSprop(使用指数加权考虑历史信息的重要性以修正adagrad)公式为:



