概述
当我们在谈论深度学习的“学习过程”的时候,我们在谈论什么?
对,在谈论梯度下降(Gradient Descent)。
如果你还不知道什么是梯度下降,可以看看之前的梯度下降(Gradient Descent)的技巧和原理 https://blog.csdn.net/qq_36459893/article/details/82290553。
下面是梯度下降的一般过程。由于神经网络独特的结构,所以对它做梯度下降有一丢丢复杂,需要引入一个技术:反向传播算法(Backpropogation)
在进入正题前,先复习一下微积分的链式求导法则。
梯度下降的关键是求梯度,简单来说就是求损失函数(Loss function)对所有参数求偏导组成的向量。
求L对w的偏导,也就是求每一项C对w的偏导。
求可以分解为两步:
1、 ,这是个Forward pass(这个其实是求导的最后一步,可以从前向后直接得到)
2、 ,这是个Backward pass(这部分不能直接求出来,需要运用递归思想,从后向前计算)
先来看Forward pass部分,这个偏导很容易求,对wi的偏导就是其对应的前一层的输入xi或者ai。
这张图可以看得更清楚一些:
forward pass就是这么简单,下面来看backword pass的过程。
可以分解为和两部分,其中可以直接求出来,关键是求出。
对进一步分解,变成求和的问题了,而这里的z'和z''是后一层的z,在性质上和z完全相同。
这里暂停一下,我们先假设和已经求出来了,然后看看到目前为止被分解成了什么样的形式。
case 1: 假设z'和z''是output层的输入,那么和可以直接求出来。
case2:还没到output层的情况下,z'后面还连着和,是不是熟悉的感觉,熟悉的配方!
之前是z后面连着z'和z'',现在又出现了相同的形式。
反向传播的精髓就是:递归的计算, 直到递归到输出层!
来通过图片直观的感受一下这个过程~
先从前往后递归:
再从后往前计算:
OK,Forward Pass和Backward Pass成功会师!
这就是反向传播算法的全部内容。怎么样,5分钟你学会了吗?
最后
以上就是从容小天鹅为你收集整理的5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】的全部内容,希望文章能够帮你解决5分钟看懂反向传播算法(Backpropogation) |李宏毅机器学习【7】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复