Gradient Descent
假设我们有一个函数,我们需要找到它的最小值。
其中x,y是数据集,是常量;w,b是变量,那么C函数的偏差值可以表示为:
同时C函数的 Gradient Vector 为:
如果我们可以使
\Delta w = -\eta \frac{\partial C}{\partial w} \tag{1}\Delta b = -\eta \frac{\partial C}{\partial b} \tag{2}那么可以实现 C 一直保持向下减小:
Back-propagation
那么,到底怎么去求式(1)和式(2)呢?这就需要依赖 Back-propagation 了。实际上,Back-propagation 就是一种快速求Gradient的方法。
我们定义一个值,称之为 error:
\delta^l_j \equiv \frac{\partial C}{\partial z^l_j}\tag{error}Back-propagation 的核心就是说,只要我们可以计算出 error 值,我们就可以通过下面的简单计算得出每一个参数的 Gradient:
\delta^l_j = \frac{\partial C}{\partial a^l_j} \sigma'(z^l_j) \tag{BP1}\delta^l = ((w^{l+1})^T \delta^{l+1}) \odot \sigma'(z^l) \tag{BP2}\frac{\partial C}{\partial b^l_j} = \delta^l_j \tag{BP3}\frac{\partial C}{\partial w^l_{jk}} = a^{l-1}_k \delta^l_j\tag{BP4}