基础知识
梯度
梯度的方向总是平行于xOy平面。假设在这样一个二维曲面上,紫色箭头就是图中红色点P的梯度,两条黄色的箭头就是x和y的偏导。
沿着紫色箭头的方向垂直于xOy平面将原曲面切开,将会在原曲面上得到一条曲线,如图中的蓝色曲线(是曲线的一部分),求点P在该曲线上的导数,就是P点在梯度方向的方向导数。
总结以下四点:
- P点在平行于xOy平面的360°都有方向
- 每个方向都有导数,就是方向导数
方向导数取到最大值的方向就叫做梯度方向
求梯度方向的方向导数的值,就是梯度的值、
泰勒展开式
我们知道,所有的函数都可以用泰勒展开式展开。
- 只含有一个参数的函数展开如下:
- 含有两个参数的泰勒展开如下:
- 多个参数依次类推。。。
公式推导
假设NN现在只包含两个参数θ1和θ2,设损失函数为L(θ),那么在以点(a,b)为圆心,η为半径的范围内,(a和b就是梯度下降前的θ1和θ2,η就是学习率)有:
根据我们上一篇博客对梯度的介绍,可以看出(u,v)就是点(a,b)处的梯度。
我们的目标就是最小化损失函数L(θ),L(θ)=常量+点积。当点积(u,v)(θ1-a,θ2-b)最小时,有(θ1-a,θ2-b)和(u,v)反向,且(θ1-a,θ2-b)的模为η。
批梯度下降法和随机梯度下降法
批梯度下降法
假设现在有10个数据样本,依次将这10个数据输入神经网络,依次计算出每个数据输入后的w的梯度,总共算出10个梯度,将这10个梯度累加,得到1个梯度。利用该梯度对w进行更新。
随机梯度下降法
假设现在有10个数据样本,将一个数据输入网络,计算出w的梯度,立即利用该梯度对w进行更新,重复10次。
对比
批梯度下降和随机梯度下降过程中,前向传播和反向传播的次数没有变化,每一个数据都要进行前向传播和反向传播。不同之处在于,批梯度下降要等所有数据的反向传播完成后,累加所有梯度,再对w进行更新。而随机梯度下降每次有一个数据反向传播完成,就立即利用该次反向传播得到的梯度对w进行更新。
Q: 假如一个批梯度下降的批是2,那么批一次之后的模型,和利用随机梯度下降法下降两次之后的模型一样吗?
A: 不一样。假设未进行梯度下降之前的模型是模型M1,批梯度下降在计算第一个数据的梯度时,利用的是模型M1,计算 第二个模型的梯度时,利用的还是模型M1。而随机梯度下降法先根据模型M1得到第一个数据的梯度,进行更新后,得到模型M2,再利用模型M2,计算第二个数据的梯度。所以在都经过两个数据后,批梯度下降法利用了一个模型,随机梯度下降法利用了两个模型,所以得到的新模型不一样。