其他分享
首页 > 其他分享> > 李宏毅机器学习--P6梯度下降法

李宏毅机器学习--P6梯度下降法

作者:互联网

Review: gradient Descent
在上一个视频里,已经介绍了使用梯度下降法求解Loss function
θ ∗ = a r g m i n   L ( θ ) \theta^*=argmin\ L(\theta) θ∗=argmin L(θ)
L:loss function θ \theta θ:参数
在这里插入图片描述
梯度下降过程中的可视化
在这里插入图片描述
Learning rates给优化过程中带来的影响
在这里插入图片描述
自适应调整learning rate 的方法

  1. Adagrad
    以权重 w w w的更新过程为例
    w t + 1 ← w t − η t σ t g t w^{t+1}\leftarrow w^t-\frac{\eta^t}{\sigma^t}g^t wt+1←wt−σtηt​gt
    其中 η t = η t + 1 \eta^t=\frac{\eta}{\sqrt{t+1}} ηt=t+1 ​η​, σ t = 1 t + 1 ∑ i = 0 t ( g i t ) 2 \sigma^t=\sqrt{\frac{1}{t+1}\sum_{i=0}^t(g_i^t)^2} σt=t+11​∑i=0t​(git​)2 ​.
    在这里插入图片描述
    如何理解Adagrad的物理意义呢?
    如下图所示,当只有一个参数时,微分越大说明当前参数距离最优参数越远
    在这里插入图片描述
    当时当需要同时考虑多个参数时,考虑微分越大当前参数距离最优参数越远是一种不正确的想法,可见绿色的线中 c c c点相比于蓝色的线中 a a a点的微分值大,但 c c c距离最优解比 a a a近。
    在这里插入图片描述
    那么为了同时考虑好几个参数时,我们应该将描述一阶微分变化的二次微分也需要考虑进来. f r i s t   d e r i v a t i v e s e c o n d   d e r i v a t i v e \frac{frist \ derivative}{second \ derivative} second derivativefrist derivative​
    在这里插入图片描述
    在Adagrad中, σ t = 1 t + 1 ∑ i = 0 t ( g i t ) 2 \sigma^t=\sqrt{\frac{1} {t+1}\sum_{i=0}^t(g_i^t)^2} σt=t+11​∑i=0t​(git​)2 ​, 具有体现反差的效果。
    在这里插入图片描述
    我认为Adagrad具有这样的作用:损失函数在最优解处的微分值为0,在最优解附近的邻域内其他点处微分也应该较缓。Adagrad让一直陡峭突然变缓时,让函数快点走走,避免陷入局部最优解。一直平缓突然陡峭时让函数变慢点,别跨越最优解了。
  2. Stochastic Gradient Descent
    在这里插入图片描述
    在这里插入图片描述
  3. Feature Scaling
    归一化不同数据的分布,可以看出没有归一化是找最优解是需要拐弯才能到,但是绿色线直走就能到。
    在这里插入图片描述
    归一化的方法:
    在这里插入图片描述
    梯度下降法的背后理论基础
    假设在损失函数中,我们需要更新两个参数 θ 1 , θ 2 \theta_1,\theta_2 θ1​,θ2​.
    对于一个二阶可微函数 L ( θ 1 , θ 2 ) L(\theta_1,\theta_2) L(θ1​,θ2​),在 ( a , b ) (a,b) (a,b)附近的一个邻域内, L ( θ 1 , θ 2 ) L(\theta_1,\theta_2) L(θ1​,θ2​)可以被表述如下
    L ( θ 1 , θ 2 ) ≈ = s + u ( θ 1 − a ) + v ( θ 2 − b ) L(\theta_1,\theta_2)\approx=s+u(\theta_1-a)+v(\theta_2-b) L(θ1​,θ2​)≈=s+u(θ1​−a)+v(θ2​−b)
    其中 s = L ( a , b ) s=L(a,b) s=L(a,b), u = ∂ L ( a , b ) ∂ θ 1 u=\frac{\partial L(a,b)}{\partial\theta_1} u=∂θ1​∂L(a,b)​, v = ∂ L ( a , b ) ∂ θ 2 v=\frac{\partial L(a,b)}{\partial\theta_2} v=∂θ2​∂L(a,b)​。
    在这里插入图片描述

那么为了使得整体的L最小,我们就需要
把向量 ( ( θ 1 − a ) , ( θ 2 − b ) ) ((\theta_1-a) ,(\theta_2-b)) ((θ1​−a),(θ2​−b))置于与 ( u , v ) (u,v) (u,v)相反。
在这里插入图片描述
在这里插入图片描述
红色圈的半径就是学习率 η \eta η。当红色圈过大时, L ( θ 1 , θ 2 ) ≈ = s + u ( θ 1 − a ) + v ( θ 2 − b ) L(\theta_1,\theta_2)\approx=s+u(\theta_1-a)+v(\theta_2-b) L(θ1​,θ2​)≈=s+u(θ1​−a)+v(θ2​−b)就会误差过大。

图源:李宏毅机器学

标签:frac,--,李宏毅,微分,参数,theta,P6,最优,Adagrad
来源: https://blog.csdn.net/luralying/article/details/120355990