5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】

当我们在谈论深度学习的“学习过程”的时候,我们在谈论什么?

对,在谈论梯度下降(Gradient Descent)

如果你还不知道什么是梯度下降,可以看看之前的梯度下降(Gradient Descent)的技巧和原理 https://blog.csdn.net/qq_36459893/article/details/82290553。

 5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第1张图片

下面是梯度下降的一般过程。由于神经网络独特的结构,所以对它做梯度下降有一丢丢复杂,需要引入一个技术:反向传播算法(Backpropogation)

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第2张图片

在进入正题前,先复习一下微积分的链式求导法则。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第3张图片

梯度下降的关键是求梯度,简单来说就是求损失函数(Loss function)对所有参数求偏导组成的向量。

求L对w的偏导,也就是求每一项C对w的偏导。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第4张图片

\frac{\partial C}{\partial w}可以分解为两步:

1、\frac{\partial z}{\partial w} ,这是个Forward pass(这个其实是求导的最后一步,可以从前向后直接得到)

2、\frac{\partial C}{\partial z} ,这是个Backward pass(这部分不能直接求出来,需要运用递归思想,从后向前计算)

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第5张图片

先来看Forward pass部分,这个偏导很容易求,对wi的偏导就是其对应的前一层的输入xi或者ai。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第6张图片

这张图可以看得更清楚一些:

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第7张图片

forward pass就是这么简单,下面来看backword pass的过程。

\frac{\partial C}{\partial z} 可以分解为\frac{\partial a}{\partial z}\frac{\partial C}{\partial a}两部分,其中\frac{\partial a}{\partial z}可以直接求出来,关键是求出\frac{\partial C}{\partial a}

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第8张图片

\frac{\partial C}{\partial a}进一步分解,变成求\frac{\partial C}{\partial z'}\frac{\partial C}{\partial z''}的问题了,而这里的z'和z''是后一层的z,在性质上和z完全相同。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第9张图片

这里暂停一下,我们先假设\frac{\partial C}{\partial z'}\frac{\partial C}{\partial z''}已经求出来了,然后看看\frac{\partial C}{\partial z}到目前为止被分解成了什么样的形式。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第10张图片

case 1: 假设z'和z''是output层的输入,那么\frac{\partial C}{\partial z'}\frac{\partial C}{\partial z''}可以直接求出来。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第11张图片

case2:还没到output层的情况下,z'后面还连着z_az_b,是不是熟悉的感觉,熟悉的配方!

之前是z后面连着z'和z'',现在又出现了相同的形式。

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第12张图片

反向传播的精髓就是:递归的计算\frac{\partial C}{\partial z}, 直到递归到输出层!

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第13张图片

来通过图片直观的感受一下这个过程~

先从前往后递归:

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第14张图片

再从后往前计算:

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第15张图片

OK,Forward Pass和Backward Pass成功会师!

5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】_第16张图片

这就是反向传播算法的全部内容。怎么样,5分钟你学会了吗?

你可能感兴趣的:(Machine,Learning)