avatar

Catalog
梯度下降法

基础知识

梯度

梯度的方向总是平行于xOy平面。假设在这样一个二维曲面上,紫色箭头就是图中红色点P的梯度,两条黄色的箭头就是x和y的偏导。

沿着紫色箭头的方向垂直于xOy平面将原曲面切开,将会在原曲面上得到一条曲线,如图中的蓝色曲线(是曲线的一部分),求点P在该曲线上的导数,就是P点在梯度方向的方向导数。

v2-2370004ffcbcfb29eff636e829a21df4_hd

总结以下四点:

  • P点在平行于xOy平面的360°都有方向
  • 每个方向都有导数,就是方向导数
  • 方向导数取到最大值的方向就叫做梯度方向

  • 求梯度方向的方向导数的值,就是梯度的值

泰勒展开式

我们知道,所有的函数都可以用泰勒展开式展开。

  • 只含有一个参数的函数展开如下:

微信截图_20200215223932

  • 含有两个参数的泰勒展开如下:

微信截图_20200215224022

  • 多个参数依次类推。。。

公式推导

假设NN现在只包含两个参数θ1和θ2,设损失函数为L(θ),那么在以点(a,b)为圆心,η为半径的范围内,(a和b就是梯度下降前的θ1和θ2,η就是学习率)有:

微信截图_20200215225156

根据我们上一篇博客对梯度的介绍,可以看出(u,v)就是点(a,b)处的梯度。

我们的目标就是最小化损失函数L(θ),L(θ)=常量+点积。当点积(u,v)(θ1-a,θ2-b)最小时,有(θ1-a,θ2-b)和(u,v)反向,且(θ1-a,θ2-b)的模为η。

所以有微信截图_20200215230954,即微信截图_20200215231128

批梯度下降法和随机梯度下降法

批梯度下降法

假设现在有10个数据样本,依次将这10个数据输入神经网络,依次计算出每个数据输入后的w的梯度,总共算出10个梯度,将这10个梯度累加,得到1个梯度。利用该梯度对w进行更新。

随机梯度下降法

假设现在有10个数据样本,将一个数据输入网络,计算出w的梯度,立即利用该梯度对w进行更新,重复10次。

对比

批梯度下降和随机梯度下降过程中,前向传播和反向传播的次数没有变化,每一个数据都要进行前向传播和反向传播。不同之处在于,批梯度下降要等所有数据的反向传播完成后,累加所有梯度,再对w进行更新。而随机梯度下降每次有一个数据反向传播完成,就立即利用该次反向传播得到的梯度对w进行更新。


Q: 假如一个批梯度下降的批是2,那么批一次之后的模型,和利用随机梯度下降法下降两次之后的模型一样吗?

A: 不一样。假设未进行梯度下降之前的模型是模型M1,批梯度下降在计算第一个数据的梯度时,利用的是模型M1,计算 第二个模型的梯度时,利用的还是模型M1。而随机梯度下降法先根据模型M1得到第一个数据的梯度,进行更新后,得到模型M2,再利用模型M2,计算第二个数据的梯度。所以在都经过两个数据后,批梯度下降法利用了一个模型,随机梯度下降法利用了两个模型,所以得到的新模型不一样。

Author: realLiuSir
Link: http://yoursite.com/2020/02/15/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶