本文主要摘自《神经网络和深度学习》一书
梯度下降
对于一个很简单的代价函数:
C(w,b)=12∑x||y(x)−a||2
我们把C称作二次代价函数或者均方误差或者MSE
我们想要找到一系列能让代价尽可能小的权重和偏置。采用梯度下降算法达到这个目的。
若求导是负的则可以使得球体向下滚落
△C≈∂C∂v1△v1+∂C∂v2△v2
定义 ▽C 来表示梯度向量,
▽C=(∂C∂v1,∂C∂v2)T
所以
△C
可以写作:
△C≈▽C●△v
只要满足
△v=−n▽C
,则
△C
就是 负的,所以
我们就用它来更新规则,持续减小C。
v就是系数 w和b。
总结,梯度下降就是不断的计算梯度 ▽C ,然后更新系数v,保证求导一直是负的,小球沿着山谷滚落。
这里对每个训练输入x单独计算梯度值 ▽Cx ,然后求平均值,这样很慢。随其梯度下降通过随机选取小批量数据训练,比较好。
反向传播
反向传播是用来计算上述中梯度的快速算法。
反向传播的整个过程: