深度学习进阶课程03---随机梯度下降算法

深度学习进阶课程03---随机梯度下降算法
这是上一篇文章中的一幅图,因变量为C,自变量分别为v1和v2
首先来看变化量:
深度学习进阶课程03---随机梯度下降算法
深度学习进阶课程03---随机梯度下降算法
Cost函数的梯度向量(gradient vector)定义如下:
深度学习进阶课程03---随机梯度下降算法
由以上三个公式可以推出:
深度学习进阶课程03---随机梯度下降算法
为什么要写出这样一个公式,有什么好处呢,继续来看一下
下一步我们设定:
深度学习进阶课程03---随机梯度下降算法
参数表示学习率
把△v代入上面公式:
深度学习进阶课程03---随机梯度下降算法

△C<=0,所以C不断减小
所以v的变化:
深度学习进阶课程03---随机梯度下降算法
再来回顾一下目标函数:
深度学习进阶课程03---随机梯度下降算法
是平均的cost
现在我们套用刚才得到的方程,可以得到权重和偏向更新方程:
深度学习进阶课程03---随机梯度下降算法
对于每个训练实例x,都要计算梯度向量gradient vector,如果训练数据集过大,我们要花费很长时间去更新,学习过程太慢,所以,一个变种为:
随机梯度下降算法(stochastic gradient descent):
基本思想:从所有训练实例中取一个小的采样(sample):x1,x2,…,xm(mini-batch)来估计gradient vector,大大提高学习速度
举例:选举调查
如果样本足够大:
深度学习进阶课程03---随机梯度下降算法

深度学习进阶课程03---随机梯度下降算法
代入更新方程:
深度学习进阶课程03---随机梯度下降算法
然后,重新选择一个mini-batch用来训练,直到用完所有的训练实例,一轮epoch完成

基本的理论部分大概就是这样,下一篇文章写一下如何在Python中实现