怎样理解神经网络的反向传播算法-ML Note 53
Posted 讲编程的高老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样理解神经网络的反向传播算法-ML Note 53相关的知识,希望对你有一定的参考价值。
本文是吴恩达《机器学习》视频笔记第53篇,对应第5周第3个视频。
“Neural Networks: Learning——Backpropagation intuition”
01
—
笔记
上一小节讲了神经网络的反向传播算法,晦涩难懂!那有没有办法直观地去理解它呢?
很多时候,因为我们是调用库或者包来实现神经网络的,所以大多时候把神经网络看成一个黑盒子、训练的事情交给库来实现就可以了!但是,在学习的时候我们还是要有个大概的思路的,知道它的内部实现机理才能更好的使用它。
相比于前面讲的线性回归、逻辑回归,神经网络没有那么容易理解。那有没有办法通过了解反向传播的一些步骤理解这个算法呢?我们看一下。
前向传播
假设有下图这样的网络,
两个输入、一个输出,中间有两个隐藏层。
中间隐藏层的每一个单元,都是前面的输入求和后输入给激活函数的,依次往后传播计算,当然在输入上都会乘以一个系数。如下图:
具体地,隐藏层上的一个单元的输入如下图:
反向传播
反过来由输出计算输入的过程类似,计算方向不同而已。
再回顾一下总的代价函数(Cost function):
如果简化一下,只有一个输出并忽略掉正则化项呢?如下图:
上图中,可以看出这个代价函数其实就是反映神经网络的输出与实际值的接近程度,可以近似看成是方差函数。
再回过头来看看反向传播是干嘛的。
到了这里,具体到某一层的某个神经元,这个反向传播的项好像是反映了这个单元上激活项的误差。进一步的说,它是一种一层又一层求偏导的过程。
更具体地,就是我们为了让神经网络的输出更接近目标值,我们需要对这些权值做些怎样的变化。这个思想和前面的梯度下降法是类似的。
那这些参数怎样变化呢?我们就从最后面的那个输出的误差一步步反过来往前推算前面的误差,如下图这样一个反向传播的过程。
以上是关于怎样理解神经网络的反向传播算法-ML Note 53的主要内容,如果未能解决你的问题,请参考以下文章