李宏毅 Gradient Descent总结

Review

在解决问题时一般分为三个步骤:
步骤一:选择一个function set
步骤二:找到loss function
步骤三:最小化loss function找到function set中最优的function。

步骤三中常用的方法就是梯度下降(Gradient Descent)。

θ ∗ = a r g   min ⁡ θ L ( θ ) \theta^*=arg\,\min_{\theta}L(\theta) θ=argminθL(θ)
L: loss function
θ \theta θ: parameters
目标是最小化loss function,并找到使loss function 最小的 θ \theta θ,其中 θ \theta θ是function set的参数组成的vector。
假设θ有两个参数{θ1,θ2},梯度下降的做法如下:

  1. 随机从loss function上任意一点开始,随机的使 θ = θ 0 \theta=\theta_0 θ=θ0,其中 θ 0 = [ θ 1 0 θ 2 0 ] \theta_0=\begin{bmatrix} \theta_1^0 \\ \theta_2^0 \\ \end{bmatrix} θ0=[θ10θ20]
  2. 更新 θ \theta θ
  • θ 1 = [ θ 1 1 θ 2 1 ] = [ θ 1 0 θ 2 0 ] − η [ ∂ L ( θ 1 0 ) ∂ θ 1 ∂ L ( θ 2 0 ) ∂ θ 2 ] \theta_1=\begin{bmatrix} \theta_1^1 \\ \theta_2^1 \\ \end{bmatrix}=\begin{bmatrix} \theta_1^0 \\ \theta_2^0 \\ \end{bmatrix}-\eta \begin{bmatrix} \frac {\partial L(\theta_1^0 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2^0 )}{\partial \theta_2} \\ \end{bmatrix} θ1=[θ11θ21]=[θ10θ20]η[θ1L(θ10)θ2L(θ20)]
  • θ 2 = [ θ 1 2 θ 2 2 ] = [ θ 1 1 θ 2 1 ] − η [ ∂ L ( θ 1 1 ) ∂ θ 1 ∂ L ( θ 2 1 ) ∂ θ 2 ] \theta_2=\begin{bmatrix} \theta_1^2 \\ \theta_2^2 \\ \end{bmatrix}=\begin{bmatrix} \theta_1^1 \\ \theta_2^1 \\ \end{bmatrix}-\eta \begin{bmatrix} \frac {\partial L(\theta_1^1 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2^1 )}{\partial \theta_2} \\ \end{bmatrix} θ2=[θ12θ22]=[θ11θ21]η[θ1L(θ11)θ2L(θ21)]
  • 将这个动作一直重复下去…
    可以简写为: θ k + 1 = θ k − η ∇ L ( θ k ) \theta^{k+1}=\theta^k-\eta\nabla L(\theta^k) θk+1=θkηL(θk)
    ∇ L ( θ ) = [ ∂ L ( θ 1 ) ∂ θ 1 ∂ L ( θ 2 ) ∂ θ 2 ] \nabla L(\theta)=\begin{bmatrix} \frac {\partial L(\theta_1 )}{\partial \theta_1} \\ \frac {\partial L(\theta_2 )}{\partial \theta_2} \\ \end{bmatrix} L(θ)=[θ1L(θ1)θ2L(θ2)]

直观理解就是对每个参数在当前位置上求偏微分,这个偏微分就是当前点在这个参数方向上的梯度,向这个梯度的反方向走就可以走到一个更低的点,这个更低的点代表着loss function的值更小。如下图,横轴是 θ 1 \theta_1 θ1纵轴是 θ 2 \theta_2 θ2,初始点 θ 0 \theta_0 θ0是随机选择的。
在这里插入图片描述

Learning Rate: η \eta η

learning rate可以理解为步长,就是在梯度反方向上走多长,learning rate是监督学习中重要的超参,它决定了能否走到一个足够优的点,也决定了多久能走到一个足够优的点,就是他决定了目标函数能否收敛到局部最小值也决定了收敛速度,所以learning rate的选择十分重要。
在这里插入图片描述
蓝色的线表示一个比较小的learning rate,这就导致目标函数收敛速度非常慢;绿线和黄线表示了一个比较大的learning rate,这就导致目标函数无法收敛甚至会发散。红色的线是比较合适的learning rate。

Adaptive Learning Rates

假设在一个不规则的曲面上进行梯度下降,在每个方向上的梯度都是不断变化的,这种情况下,使用统一的learning rate会导致在梯度较小的时候收敛太慢,在梯度较大的时候learning rate又相对过大,会出现无法收敛甚至发散的情况。
比较常用且简单的方法:每隔几步就将学习率降低一些。

  • 一开始离目的地很远,所以我们使用较大的学习率
  • 经过几次下降后,我们离目的地很近,所以我们降低了学习率
  • 例如: 1 t \frac 1t t1decay: η t = η t + 1 \eta^t=\frac \eta{\sqrt{t+1}} ηt=t+1 η
    Learning rate cannot be one-size-fits-all,所以对于不同的参数要有不同的learning rates

Adagrad

adagrad也是一种梯度下降方法,在普通的梯度下降的基础上对于learning rates: η \eta η除以之前所有一阶微分的RME。
在这里插入图片描述
在这里插入图片描述

Stochastic Gradient Descent

随机梯度下降法不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。
Gradient Descent:对于全部的样本进行求和
L = ∑ n ( y ^ n − ( b + ∑ w i x i n ) ) 2 L=\sum_n(\hat y^n-(b+\sum w_ix_i^n))^2 L=n(y^n(b+wixin))2
θ i = θ i − 1 − η ∇ L ( θ i − 1 ) \theta^i=\theta^{i-1}-\eta\nabla L(\theta^{i-1}) θi=θi1ηL(θi1)
Stochastic Gradient Descent:随机选择一个样本 x n x^n xn
L n = ( y ^ n − ( b + ∑ w i x i n ) ) 2 L^n=(\hat y^n-(b+\sum w_ix_i^n))^2 Ln=(y^n(b+wixin))2
θ i = θ i − 1 − η ∇ L ( θ i − 1 ) \theta^i=\theta^{i-1}-\eta\nabla L(\theta^{i-1}) θi=θi1ηL(θi1)
所以SGD的速度更快。
在这里插入图片描述

Feature Scaling

对于不同的特征,很可能比例不同,例如一个模型 y = b + w 1 x 1 + w 2 x 2 y=b+w_1x_1+w_2x_2 y=b+w1x1+w2x2,有两个特征 x 1 x_1 x1 x 2 x_2 x2 x 1 x_1 x1的范围是[-1,1], x 2 x_2 x2的范围[-100,100],这导致 x 1 x_1 x1 x 2 x_2 x2对目标函数的不同,同时可能梯度下降的速度会减慢。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值