深度学习之梯度下降法,用excel体验梯度下降法


  深度学习的过程中经常需要求函数的最小值,而求最小值的最常用的方法之一就是梯度下降法。

什么是梯度下降法?

  我们由一个简单的例子出发。已知 z = f ( x , y ) z=f(x,y) z=f(x,y),如何求该函数的最小值?根据偏导数的含义,当 z z z取最小值的必要条件如下: ∂ f ( x , y ) ∂ x = 0 ∂ f ( x , y ) ∂ y = 0 \frac{\partial f(x,y)}{\partial x}=0 \qquad \frac{\partial f(x,y)}{\partial y}=0 ∂x∂f(x,y)​=0∂y∂f(x,y)​=0
  但通常情况下,函数会很复杂,求偏导也会十分复杂。
  想象一下兵乓球在斜坡上会如何下降。在斜坡上释放兵乓球时,兵乓球会沿着最陡的方向下降,下降一段后,将兵乓球暂停再释放,兵乓球还是会沿着最陡的坡度下降,以此方式最终到达最低点。其下降的过程要点在于“释放一段路程,暂停,再释放”。每次释放兵乓球都会重新寻找最陡的坡度下降,我们将这种方法称为“梯度下降法”。在数学层面,由于上述下降的路径也是最短的路径,也被称为“最短路径法”。
  联系近似公式(关于近似公式可参考这篇多变量近似公式)、向量的性质,有如下式子: Δ z = f ( x + Δ x , y + Δ y ) − f ( x , y ) = ∂ f ∂ x ⋅ Δ x + ∂ f ∂ y ⋅ Δ y \Delta z=f(x+\Delta x,y+\Delta y)-f(x,y)=\frac{\partial f}{\partial x} ·\Delta x+\frac{\partial f}{\partial y} ·\Delta y Δz=f(x+Δx,y+Δy)−f(x,y)=∂x∂f​⋅Δx+∂y∂f​⋅Δy

  表达成内积的形式为 Δ z = ( ∂ f ∂ x , ∂ f ∂ y ) . ( Δ x , Δ y ) \Delta z=(\frac{\partial f}{\partial x} ,\frac{\partial f}{\partial y} ).(\Delta x,\Delta y) Δz=(∂x∂f​,∂y∂f​).(Δx,Δy)
  其中的 Δ z \Delta z Δz就是“每次兵乓球下降的距离”,也就是每次更新的大小。因此,根据向量的性质,当 Δ z \Delta z Δz下降(减少)得最快时,向量 ( ∂ f ∂ x , ∂ f ∂ y ) (\frac{\partial f}{\partial x} ,\frac{\partial f}{\partial y} ) (∂x∂f​,∂y∂f​)与 ( Δ x , Δ y ) (\Delta x,\Delta y) (Δx,Δy)须满足以下关系: ( Δ x , Δ y ) = − η ⋅ ( ∂ f ∂ x , ∂ f ∂ y ) η 为 正 的 微 小 常 数 (\Delta x,\Delta y)=- \eta ·(\frac{\partial f}{\partial x} ,\frac{\partial f}{\partial y} )\qquad \eta为正的微小常数 (Δx,Δy)=−η⋅(∂x∂f​,∂y∂f​)η为正的微小常数

  同时也称 ( ∂ f ∂ x , ∂ f ∂ y ) (\frac{\partial f}{\partial x} ,\frac{\partial f}{\partial y} ) (∂x∂f​,∂y∂f​)为梯度
  推广到多变量: ( Δ x 1 , Δ x 2 , ⋯   , Δ x n ) = − η ⋅ ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯   , ∂ f ∂ x n ) ( 1 ) ( \Delta x_1,\Delta x_2,\cdots,\Delta x_n)=-\eta·(\frac{\partial f}{\partial x_1} ,\frac{\partial f}{\partial x_2},\cdots, \frac{\partial f}{\partial x_n})\qquad (1) (Δx1​,Δx2​,⋯,Δxn​)=−η⋅(∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)(1)

  为了使表达式更简洁

  1. 哈密顿算子的定义如下

∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯   , ∂ f ∂ x n ) ( 函 数 对 所 有 变 量 的 微 分 ) \nabla f=(\frac{\partial f}{\partial x_1} ,\frac{\partial f}{\partial x_2},\cdots, \frac{\partial f}{\partial x_n})\qquad(函数对所有变量的微分) ∇f=(∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)(函数对所有变量的微分)
  2. 引入位移向量 Δ x = ( Δ x 1 , Δ x 2 , ⋯   , Δ x n ) \Delta x=( \Delta x_1,\Delta x_2,\cdots,\Delta x_n) Δx=(Δx1​,Δx2​,⋯,Δxn​)
  (1)式可化简为 Δ x = − η ∇ f η 为 正 的 微 小 常 数 \Delta x=- \eta \nabla f \qquad \eta为正的微小常数 Δx=−η∇fη为正的微小常数
   η \eta η称为学习率,若设置过大则可能跳过最小值,若设置国小则可能在极小值(“小山谷”)中出不来,只能通过反复试验来寻找恰当的值。

用excel体验梯度下降法

  求 z = x 2 + y 2 的 z=x^2+y^2 的 z=x2+y2的最小值

  1. 初始设定
    在这里插入图片描述

  2. 计算位移向量
      由 z = x 2 + y 2 z=x^2+y^2 z=x2+y2计算 z z z对 x x x和 y y y的偏导,可得 ∂ f ∂ x = 2 x ∂ f ∂ y = 2 y ( 2 ) \frac{\partial f}{\partial x}=2x \quad \frac{\partial f}{\partial y}=2y \qquad (2) ∂x∂f​=2x∂y∂f​=2y(2)
    Δ x = − η ∇ f η 为 正 的 微 小 常 数 ( 3 ) \Delta x=- \eta \nabla f \qquad \eta为正的微小常数 \qquad(3) Δx=−η∇fη为正的微小常数(3)
      根据学习率和初始位置( x x x和 y y y的值)计算梯度[式2]以及位移向量[式3],并最终得到函数值。
    在这里插入图片描述

  3. 更新位置
    根据梯度下降法,由上一次的位置 ( x i , y i ) (x_i,y_i) (xi​,yi​)和位移向量 ( Δ x , Δ y ) (\Delta x,\Delta y) (Δx,Δy)计算得到目前最新的位置 ( x i + 1 , y i + 1 ) (x_{i+1},y_{i+1}) (xi+1​,yi+1​)
      
    ( x i + 1 , y i + 1 ) = ( x i , y i ) + ( Δ x , Δ y ) (x_{i+1},y_{i+1})=(x_i,y_i)+(\Delta x,\Delta y) (xi+1​,yi+1​)=(xi​,yi​)+(Δx,Δy)
    在这里插入图片描述

  4. 反复执行2-3的操作
      反复执行2-3的操作,到30次之后可以看到求得的函数值为0, x x x和 y y y的值也为0。
    在这里插入图片描述

上一篇: 多变量函数的近似公式
下一篇: SSL/TLS原理
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值