Day12 梯度下降法的含义与公式

打印 上一主题 下一主题

主题 822|帖子 822|积分 2468

Day12 梯度下降法的含义与公式

   应用数学最紧张的任务之一就是寻找函数取最小值的点。
  梯度下降法(Gradient Descent)是一种广泛应用于呆板学习和深度学习中的优化算法,重要用于求解最小化目标函数的问题。
  一、梯度下降法的明白

多变量函数的最小值条件



  • 回顾Day9 神经网络的偏导数底子中关于“多变量函数的最小值条件”:对于多变量函数                                             f                               (                                           x                                  1                                          ,                                           x                                  2                                          ,                               …                               ,                                           x                                  n                                          )                                      f(x_1, x_2, \ldots, x_n)                        f(x1​,x2​,…,xn​),取得最小值的须要条件是该函数在该点的所有偏导数都为零,求解公式如下:
                                                                                  ∂                                        f                                                                ∂                                                       x                                           1                                                                         (                                               x                                     1                                     ∗                                              ,                                               x                                     2                                     ∗                                              ,                                  …                                  ,                                               x                                     n                                     ∗                                              )                                  =                                  0                                          \frac{\partial f}{\partial x_1}(x_1^*, x_2^*, \ldots, x_n^*) = 0                           ∂x1​∂f​(x1∗​,x2∗​,…,xn∗​)=0
                                                                                  ∂                                        f                                                                ∂                                                       x                                           2                                                                         (                                               x                                     1                                     ∗                                              ,                                               x                                     2                                     ∗                                              ,                                  …                                  ,                                               x                                     n                                     ∗                                              )                                  =                                  0                                          \frac{\partial f}{\partial x_2}(x_1^*, x_2^*, \ldots, x_n^*) = 0                           ∂x2​∂f​(x1∗​,x2∗​,…,xn∗​)=0
                                                                    ⋮                                                                                           \vdots                           ⋮
                                                                                  ∂                                        f                                                                ∂                                                       x                                           n                                                                         (                                               x                                     1                                     ∗                                              ,                                               x                                     2                                     ∗                                              ,                                  …                                  ,                                               x                                     n                                     ∗                                              )                                  =                                  0                                          \frac{\partial f}{\partial x_n}(x_1^*, x_2^*, \ldots, x_n^*) = 0                           ∂xn​∂f​(x1∗​,x2∗​,…,xn∗​)=0
  • 然而,在实际问题中,上式通常不容易求解,那么该如何解决呢?

    • 梯度下降法是一种具有代表性的替代方法。
    • 该方法不直接求解方程,而是通过慢慢地移动图像上的点进行探索,从而找出函数的最小值。
           本Day后,会发现这里的“慢慢”并不单纯地指移动速度慢,而是指每一次实验移动的距离可能很短,移动的频次可能很麋集,所以导致通过利用梯度下降法追求最小值的过程速度可能会很慢。
       
梯度下降法?“坡度”下降法!



  • 假如                                        f                            (                            x                            ,                            y                            )                                  f(x,y)                     f(x,y)生成的图像是一个凹凸不平的斜坡,在斜坡上放一个篮球,然后轻轻地松开手,球会沿着最陡的坡面开始滚动(参考图中红色箭头反向),待球稍微前进一点后,把球止住,然后从止住的位置再次放手,球会从这个点再次沿着最陡的坡面开始滚动。



  • 把上面这个过程抽象如下:

   增补明白:
  

  • Gradient Descent 作为专业名词 翻译为 “梯度下降法” 并不见得容易让人明白,由于”梯度“是一个纯数学概念,表示某一函数在该点处的方领导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大。
  • 其实Gradient这个单词常见释意是坡度,坡度这个概念更贴近生存,缺少了专业数学界说反而容易让人明白,结合上面两张图像说明,可以不专业称之为“坡度下降法”:就是沿着最陡坡面下降的方法。
  • 坡度就是坡的陡峭程度,就是梯度,详细指的就是该点的导数。
  • 实在对梯度不"感冒"的话,不妨在大脑里将梯度明白为“最陡的坡度方向”。
  用”成龙跳空调“表明梯度下降法

场景设定

在电影《宝贝计划》中,成龙有一个经典的片断,他被人追杀到大厦楼顶,需要从高楼外跳踩空调机,一层一层地跳下来。

想象一下,成龙站在一栋大楼的顶层,他的目标是跳到地面上(即找到函数的最小值点,这里地面代表最低点或最优解)。但是,他不能直接跳下去,由于那样太危险了(直接跳到最低点通常不现实,也可能错过最优解)。大楼的每一层都代表函数值的一个点,楼层越高,函数值越大;楼层越低,函数值越小,直到地面代表最小值。
梯度下降过程


  • 初始位置:成龙一开始站在楼顶,这就像梯度下降法中的初始参数值。这些参数值是随机初始化的,大概是根据某种策略设置的。
  • 观察梯度:在每一次跳跃前,成龙需要确定下一步往哪个方向跳才气更靠近地面。这相称于盘算损失函数关于当前参数的梯度。
  • 迈出一步:根据观察到的梯度,成龙决定向哪个方向跳(即沿着梯度下降的方向)。他不会一次性跳到地面,而是选择跳到下一层或几层下的某个位置,这个位置使得他的高度(即函数值)有所下降。
  • 重复过程:每跳到一层新的楼层,成龙都会重复上述过程:观察新的梯度,决定下一步的跳跃方向,然后再次跳跃。这个过程会不停持续,直到他跳到地面(或靠近地面的某个位置,这取决于算法的停止条件,比如梯度靠近于零或到达了预设的迭代次数)。
  • 到达地面:最终,通过一步步的小心跳跃,成龙成功到达了地面(或靠近最优解的位置)。这个过程就是梯度下降法寻找函数最小值的直观体现。
关键点对应



  • 成龙:代表算法中的“搜刮者”或“优化器”。
  • 大楼的楼层:代表函数值的不同点。
  • 梯度:指示函数值下降最快的方向。
  • 跳跃:代表算法在每一步中沿着梯度方向进行的更新。
  • 到达地面:代表找到函数的局部最小值。
通过这个类比,我们可以更直观地明白梯度下降法的工作原理和过程。它就像成龙在复杂地形中不停寻找最佳路径以安全到达地面一样,梯度下降法也在不停地调整参数以最小化损失函数。
   在数值分析领域,梯度下降法也称为最速下降法。这个名称表示沿着图像上的最短路径下降。
  
二、梯度下降法的公式表示

多变量函数的近似公式



  • 回顾Day11 梯度下降法的底子:多变量函数的近似公式中“多变量函数的近似公式”:
                                         若有:                            f                            (                            x                            +                            △                            x                            ,                            y                            +                            △                            y                            )                            ≐                            f                            (                            x                            ,                            y                            )                            +                                                   ∂                                  f                                  (                                  x                                  ,                                  y                                  )                                                      ∂                                  x                                                 △                            x                            +                                                   ∂                                  f                                  (                                  x                                  ,                                  y                                  )                                                      ∂                                  y                                                 △                            y                                  若有:f(x+\triangle x, y+\triangle y)\doteq f(x, y)+\frac{{\partial}f(x, y)}{\partial x}\triangle x+\frac{{\partial}f(x, y)}{\partial y}\triangle y                     若有:f(x+△x,y+△y)≐f(x,y)+∂x∂f(x,y)​△x+∂y∂f(x,y)​△y
                                         界说:                            z                            =                            f                            (                            x                            ,                            y                            )                            ,                            △                            z                            =                            f                            (                            x                            +                            △                            x                            ,                            y                            +                            △                            y                            )                            −                            f                            (                            x                            ,                            y                            )                                  界说:z= f(x,y),\triangle z=f(x+\triangle x, y+\triangle y)-f(x, y)                     界说:z=f(x,y),△z=f(x+△x,y+△y)−f(x,y)
                                         可得:                            △                            z                            =                                                   ∂                                  z                                                      ∂                                  x                                                 △                            x                            +                                                   ∂                                  z                                                      ∂                                  y                                                 △                            y                                  可得:\triangle z=\frac{{\partial}z}{\partial x}\triangle x+\frac{{\partial}z}{\partial y}\triangle y                     可得:△z=∂x∂z​△x+∂y∂z​△y
近似公式的向量表示



  • 回顾Day11 梯度下降法的底子:多变量函数的近似公式中“近似公式的向量表示”:
                                         若有:                            z                            =                            f                            (                            x                            ,                            y                            )                            ,                            △                            z                            =                                                   ∂                                  z                                                      ∂                                  x                                                 △                            x                            +                                                   ∂                                  z                                                      ∂                                  y                                                 △                            y                                  若有:z =f(x,y),\triangle z=\frac{{\partial}z}{\partial x}\triangle x+\frac{{\partial}z}{\partial y}\triangle y                     若有:z=f(x,y),△z=∂x∂z​△x+∂y∂z​△y
                                         界说:向量                            ∇                            z                            =                            (                                                   ∂                                  z                                                      ∂                                  x                                                 ,                                                   ∂                                  z                                                      ∂                                  y                                                 )                            ,                            向量                            △                            x                            =                            (                            △                            x                            ,                            △                            y                            )                                  界说:向量\nabla z=(\frac{{\partial}z}{\partial x},\frac{{\partial}z}{\partial y}),向量\bigtriangleup x=(\bigtriangleup x,\bigtriangleup y)                     界说:向量∇z=(∂x∂z​,∂y∂z​),向量△x=(△x,△y)
                                         则:近似公式可以表示为两个向量的内积                            (                                                   ∇                                  z                                          ⃗                                      ⋅                                                   △                                  x                                          ⃗                                      )                            的情势,即:                            △                            z                            =                                                   ∇                                  z                                          ⃗                                      ⋅                                                   △                                  x                                          ⃗                                            则:近似公式可以表示为两个向量的内积(\vec{\nabla z}\cdot \vec{\bigtriangleup x})的情势,即:\triangle z = \vec{\nabla z}\cdot \vec{\bigtriangleup x}                     则:近似公式可以表示为两个向量的内积(∇z              ⋅△x              ​)的情势,即:△z=∇z              ⋅△x              ​
向量的内积



  • 回顾Day6 神经网络的向量底子中"向量的内积":
          

梯度下降法的基本式



  • 根据对近似公式和向量内积的回顾,可以得出:

    • 当                                                                                    ∇                                           z                                                      ⃗                                                           \vec{\nabla z}                              ∇z                 和                                                                                     △                                           x                                                      ⃗                                                           \vec{\bigtriangleup x}                              △x                 ​这两个向量反向正好相反时,                                                       △                                     z                                              \triangle z                              △z取得最小值,此时函数                                                       z                                              z                              z减小得最快

  • 综上所述,从点                                             (                               x                               ,                               y                               )                                      (x, y)                        (x,y) 向点                                              (                               x                               +                               ∆                               x                               ,                               y                               +                               ∆                               y                               )                                      (x + ∆x, y +∆y)                        (x+∆x,y+∆y) 移动时,当满足以下关系式时,函数                                              z                               =                               f                               (                               x                               ,                               y                               )                                      z = f (x, y)                        z=f(x,y) 减小得最快,这个关系式就是二变量函数的梯度下降法的基本式:
                                                       (                                  Δ                                  x                                  ,                                  Δ                                  y                                  )                                  =                                  −                                  η                                               (                                                                  ∂                                           f                                           (                                           x                                           ,                                           y                                           )                                                                     ∂                                           x                                                                ,                                                                  ∂                                           f                                           (                                           x                                           ,                                           y                                           )                                                                     ∂                                           y                                                                )                                                      (\Delta x, \Delta y) = -{\eta} \left( \frac{\partial f(x, y)}{\partial x}, \frac{\partial f(x, y)}{\partial y} \right)                           (Δx,Δy)=−η(∂x∂f(x,y)​,∂y∂f(x,y)​)
                                                                                  △                                        x                                                  ⃗                                              =                                  −                                  η                                                             ∇                                        z                                                  ⃗                                                      \vec{\bigtriangleup x} = -{\eta}\vec{\nabla z}                           △x                ​=−η∇z               
    此中,                                             η                                      \eta                        η(读作                                             i                               t                               a                                      ita                        ita)是一个正的微小常数,用于表示变化的程度。
           在实际利用盘算机进行盘算时,如何恰本地确定这个 η 是一个大问题。
    η 可以看作人移动时的“步长”,根据 η 的值,可以确定下一步移动到哪个点。假如步长较大,那么可能会到达最小值点,也可能会直接跨过了最小值点(左图)。而假如步长较小,则可能会滞留在极小值点(右图)。
       

              在神经网络的世界中,η 称为学习率。遗憾的是,它的确定方法没有明确的标准,只能通过反复试验来寻找恰当的值。
  • 上面式子中的向量                                                  (                                                             ∂                                        f                                        (                                        x                                        ,                                        y                                        )                                                                ∂                                        x                                                           ,                                                             ∂                                        f                                        (                                        x                                        ,                                        y                                        )                                                                ∂                                        y                                                           )                                          (\frac{\partial f(x, y)}{\partial x}, \frac{\partial f(x, y)}{\partial y})                           (∂x∂f(x,y)​,∂y∂f(x,y)​)或                                                  ∇                                  z                                          \nabla z                           ∇z表示的就是函数                                                  f                                  (                                  x                                  ,                                  y                                  )                                          f(x, y)                           f(x,y) 在点                                                   (                                  x                                  ,                                  y                                  )                                          (x, y)                           (x,y) 处的梯度(gradient),可以开始解决问题了:
    ①给定函数                                             f                               (                               x                               ,                               y                               )                                      f(x, y)                        f(x,y)以及起始点                                              (                               x                               ,                               y                               )                                      (x, y)                        (x,y)盘算出梯度
    ②根据梯度下降法,盘算出向量                                             (                               Δ                               x                               ,                               Δ                               y                               )                                      (\Delta x, \Delta y)                        (Δx,Δy)和                                             (                               x                               +                               Δ                               x                               ,                               y                               +                               Δ                               y                               )                                      (x+\Delta x, y+\Delta y)                        (x+Δx,y+Δy)
    ③根据梯度的界说,从点                                             (                               x                               ,                               y                               )                                      (x,y)                        (x,y)向点                                             (                               x                               +                               Δ                               x                               ,                               y                               +                               Δ                               y                               )                                      (x+\Delta x, y+\Delta y)                        (x+Δx,y+Δy)移动,代表沿着函数减小得最快的方向移动。
    ④反复重复①②③,不出意外的话就能找到该函数的最小值点。
   针对以上步调,下一Day会利用最简朴的工具(Excel)来体验梯度下降法的迭代过程
  
梯度下降法的推广



  • 二变量函数的梯度下降法的基本式可以很容易地推广到三个变量以上的情形。
  • 当函数                                         f                                  f                     f 由                                         n                                  n                     n 个自变量                                                    x                               1                                      ,                                       x                               2                                      ,                            ⋯                             ,                                       x                               n                                            x_1, x_2, \cdots, x_n                     x1​,x2​,⋯,xn​ 构成时,梯度下降法的基本式可以像下面这样进行推广:

    • 设                                                   η                                          \eta                           η 为正的微小常数,变量                                                                x                                     1                                              ,                                               x                                     2                                              ,                                  ⋯                                   ,                                               x                                     n                                                      x_1, x_2, \cdots, x_n                           x1​,x2​,⋯,xn​ 改变为                                                                x                                     1                                              +                                  △                                               x                                     1                                              ,                                               x                                     2                                              +                                  △                                               x                                     2                                              ,                                  ⋯                                   ,                                               x                                     n                                              +                                  △                                               x                                     n                                                      x_1 + \triangle x_1, x_2 + \triangle x_2, \cdots, x_n + \triangle x_n                           x1​+△x1​,x2​+△x2​,⋯,xn​+△xn​,当满足以下关系式时,函数                                                   f                                          f                           f 减小得最快。

                                         (                            △                                       x                               1                                      ,                            △                                       x                               2                                      ,                            ⋯                             ,                            △                                       x                               n                                      )                            =                            −                            η                                       (                                                        ∂                                     f                                                           ∂                                                   x                                        1                                                                   ,                                                        ∂                                     f                                                           ∂                                                   x                                        2                                                                   ,                               ⋯                                ,                                                        ∂                                     f                                                           ∂                                                   x                                        n                                                                   )                                            (\triangle x_1, \triangle x_2, \cdots, \triangle x_n) = -\eta \left(\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \cdots, \frac{\partial f}{\partial x_n}\right)                     (△x1​,△x2​,⋯,△xn​)=−η(∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)
这里,向量                                   (                                              ∂                               f                                                 ∂                                           x                                  1                                                       ,                                              ∂                               f                                                 ∂                                           x                                  2                                                       ,                         ⋯                          ,                                              ∂                               f                                                 ∂                                           x                                  n                                                       )                              (\frac{\partial f}{\partial x_{1}}, \frac{\partial f}{\partial x_{2}}, \cdots, \frac{\partial f}{\partial x_{n}})                  (∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)称为函数                                    f                              f                  f 在点                                    (                                   x                            1                                  ,                                   x                            2                                  ,                         ⋯                          ,                                   x                            n                                  )                              (x_1, x_2, \cdots, x_n)                  (x1​,x2​,⋯,xn​) 处的梯度。
   与二变量函数的情况一样,假如从点                                        (                                       x                               1                                      ,                                       x                               2                                      ,                            ⋯                             ,                                       x                               n                                      )                                  (x_{1}, x_{2}, \cdots, x_{n})                     (x1​,x2​,⋯,xn​)向点                                        (                                       x                               1                                      +                            △                                       x                               1                                      ,                                       x                               2                                      +                            △                                       x                               2                                      ,                            ⋯                             ,                                       x                               n                                      +                            △                                       x                               n                                      )                                  (x_{1}+\triangle x_{1}, x_{2}+\triangle x_{2}, \cdots, x_{n}+\triangle x_{n})                     (x1​+△x1​,x2​+△x2​,⋯,xn​+△xn​)移动就能够沿着函数减小得最快的方向移动。因此,反复云云移动,就能够在 n 维空间中找到最小值点。这就是 n 变量情况下的梯度下降法。
  
三、回顾梯度下降法的要点


  • 初始化参数:选择得当的初始值作为优化的起点。
  • 盘算梯度:根据目标函数盘算当前点的梯度。
  • 更新参数:按照梯度的反方向和步长更新参数。
  • 判断停止条件:根据预设的停止条件(如迭代次数、目标函数值的变化量等)判断是否停止迭代。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表