李宏毅机器学习(3)

Gradient Descent

Tip1:Tuning your learning rate(η)

θ θ θ L ( θ ) L(θ) L(θ)的参数集,例:

θ 0 = [ θ 0 , 1 θ 0 , 2 ] θ_0=\left[ \begin{matrix}θ_{0,1} \\θ_{0,2} \\\end{matrix} \right] θ0=[θ0,1θ0,2]
θ n + 1 = θ n − η [ α L ( θ n , 1 ) α θ 1 α L ( θ n , 2 ) α θ 2 ] = θ n − η • ∇ L ( θ ) θ_{n+1}=θ_n-η\left[\begin{matrix}\frac{αL(θ_{n,1})}{αθ_1} \\\frac{αL(θ_{n,2})}{αθ_2}\\\end{matrix}\right]=θ_n-η•∇L(θ) θn+1=θnη[αθ1αL(θn,1)αθ2αL(θn,2)]=θnηL(θ)

在这里插入图片描述

当参数过多时,无法visualize(可视化)函数图像。
但可以可视化不同learning rate(η)下Loss函数值的变化。

Adaptive Learning Rate:

前几次迭代时将η调大一些。因为初始时离正确答案比较远,应该加大步长。
当其不下降或者下降不明显时,再调小η值,使其步长变小,进行微调。
1/t decay就是一种做法,它的公式: η t = η t + 1 η_t=\frac{η}{\sqrt{t+1}} ηt=t+1 η

Adagrad(自适应梯度算法)

均方根(root mean square): x 1 2 + x 2 2 + . . . + x n 2 n \sqrt{\frac{x_1^2+x_2^2+...+x_n^2}{n}} nx12+x22+...+xn2
在自适应梯度算法中,每个参数的learning rate都不相同:首先算出 η t = η t + 1 η_t=\frac{η}{\sqrt{t+1}} ηt=t+1 η,然后用 η t η_t ηt除以对应参数过去所有微分值的均方根。
例:

w 1 = w 0 − η 0 σ 0 g 0 , σ 0 = g 0 2 w_1=w_0-\frac{η_0}{σ_0}g_0,σ_0=\sqrt{g_0^2} w1=w0σ0η0g0,σ0=g02
w 2 = w 1 − η 1 σ 1 g 1 , σ 1 = 1 2 ( g 0 2 + g 1 2 ) w_2=w_1-\frac{η_1}{σ_1}g_1,σ_1=\sqrt{\frac{1}{2}(g_0^2+g_1^2)} w2=w1σ1η1g1,σ1=21(g02+g12)
w 3 = w 2 − η 2 σ 2 g 2 , σ 2 = 1 3 ( g 0 2 + g 1 2 + g 2 2 ) w_3=w_2-\frac{η_2}{σ_2}g_2,σ_2=\sqrt{\frac{1}{3}(g_0^2+g_1^2+g_2^2)} w3=w2σ2η2g2,σ2=31(g02+g12+g22)
因此, w t + 1 = w t − η t σ t g t , σ t = 1 t + 1 ∑ i = 0 t g i 2 , η t = η t + 1 w_{t+1}=w_t-\frac{η_t}{σ_t}g_t,σ_t=\sqrt{\frac{1}{t+1}\sum_{i=0}^{t}{g_i^2}},η_t=\frac{η}{\sqrt{t+1}} wt+1=wtσtηtgt,σt=t+11i=0tgi2 ,ηt=t+1 η

在这里插入图片描述

当然,除了Adagrad之外,还有其他的做法。

Tip2:Stochastic Gradient Descent(Make training faster)

Gradient Descent:

L = ∑ n ( y ^ n − ( b + ∑ w i x n , i ) ) 2 , θ n = θ n − 1 − η ▽ L ( θ n − 1 ) L=\sum_{n}{(\widehat{y}_n-(b+\sum{w_ix_{n,i}}))^2},θ_n=θ_{n-1}-η▽L(θ_{n-1}) L=n(y n(b+wixn,i))2,θn=θn1ηL(θn1)

SGD:

随机选一个example x n x_n xn
L n = ( y ^ n − ( b + ∑ w i x n , i ) ) 2 , θ n = θ n − 1 − η ▽ L n ( θ n − 1 ) L_n=(\widehat{y}_n-(b+\sum{w_ix_{n,i}}))^2,θ_n=θ_{n-1}-η▽L_n(θ_{n-1}) Ln=(y n(b+wixn,i))2,θn=θn1ηLn(θn1)
即只考虑一个example来计算Loss函数,这样可以使计算更快,一般不会影响准确度。

在这里插入图片描述

Tip3: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 2 x_2 x2规模较大,则对于同样的变化值 △ w △w w,改变 w 2 w_2 w2比改变 w 1 w_1 w1 y y y的影响更大,画出图像是一个椭圆。
右图中,将 x 2 x_2 x2缩放成了与 x 1 x_1 x1相同的规模,图像变成了一个圆。在Gradient Descent中,圆比椭圆更容易下降。
在这里插入图片描述

怎么缩放

在这里插入图片描述
m i m_i mi x 1 , i , x 2 , i , . . . , x R , i x_{1,i},x_{2,i},...,x_{R,i} x1,i,x2,i,...,xR,i的平均值(mean)
σ i σ_i σi为标准差(Standard Deviation)
x r , i ′ = x r , i − m i σ i x_{r,i}^{'}=\frac{x_{r,i}-m_i}{σ_i} xr,i=σixr,imi

Theory 为什么可以这么做

考虑泰勒级数(Taylor Series)
L ( θ ) ≈ L ( a , b ) + α L ( a , b ) α θ 1 ( θ 1 − a ) + α L ( a , b ) α θ 2 ( θ 2 − b ) L(θ)≈L(a,b)+\frac{αL(a,b)}{αθ_1}(θ_1-a)+\frac{αL(a,b)}{αθ_2}(θ_2-b) L(θ)L(a,b)+αθ1αL(a,b)(θ1a)+αθ2αL(a,b)(θ2b)
S = L ( a , b ) , u = α L ( a , b ) α θ 1 , v = α L ( a , b ) α θ 2 ( θ 2 − b ) S=L(a,b),u=\frac{αL(a,b)}{αθ_1},v=\frac{αL(a,b)}{αθ_2}(θ_2-b) S=L(a,b),u=αθ1αL(a,b),v=αθ2αL(a,b)(θ2b),则 L ( θ ) ≈ S − u a − v b + u θ 1 + v θ 2 L(θ)≈S-ua-vb+uθ_1+vθ_2 L(θ)Suavb+uθ1+vθ2
( θ 1 , θ 2 ) ∈ ○ ( θ 1 − a ) 2 + ( θ 2 − b ) 2 ≤ d 2 (θ_1,θ_2)∈○(θ_1-a)^2+(θ_2-b)^2 \leq d^2 (θ1,θ2)(θ1a)2+(θ2b)2d2,为了 L L L取最小值, ( θ 1 − a , θ 2 − b ) (θ_1-a,θ_2-b) (θ1a,θ2b)应该与 ( u , v ) (u,v) (u,v)方向相反。
在这里插入图片描述

[ △ θ 1 △ θ 2 ] = − η [ u v ] — — > [ θ 1 θ 2 ] = [ a b ] − η [ u v ] \left[ \begin{matrix}△θ_1 \\△θ_2 \\\end{matrix} \right]=-η\left[ \begin{matrix}u \\v \\\end{matrix} \right]——>\left[ \begin{matrix}θ_1 \\θ_2 \\\end{matrix} \right]=\left[ \begin{matrix}a \\b \\\end{matrix} \right]-η\left[ \begin{matrix}u \\v \\\end{matrix} \right] [θ1θ2]=η[uv]>[θ1θ2]=[ab]η[uv]
当然,如果泰勒展开到二次项或更多,还有其他的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值