李宏毅 机器学习(2017)学习笔记——7-反向传播算法

目录

1. 反向传播算法在梯度下降法中的运作原理

2. 链式法则

3. 反向传播算法


1. 反向传播算法在梯度下降法中的运作原理

    我们在使用梯度下降法训练神经网络时需要使用反向传播算法。

    在梯度下降法中,有超参数w和b。首先选定初试参数,计算对损失函数的梯度,也就是计算神经网络中每一个参数的对损失函数的偏微分。计算完可以进行参数的更新。持续进行这一过程得到最优参数。

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第1张图片

    因为在神经网络中参数数量较多,所以使用反向传播算法有效的计算梯度。

2. 链式法则

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第2张图片

3. 反向传播算法

    反向传播的损失函数是李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第3张图片,其中之间的距离,越大表示损失值越大。为了求得损失值的最小值,我们对损失函数进行求偏导李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第4张图片

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第5张图片    

    首先拿出一个神经元进行考虑,这个神经元的输入是外界的输入李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第6张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第7张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第8张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第9张图片分别乘上权重李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第10张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第11张图片再加上b得到z。得到z之后通过激活函数并通过进一步处理得到最终的输出李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第12张图片按照链式法则可以拆成两项李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第13张图片。计算称为正推法,但是计算称为反推法

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第14张图片

  •     怎么计算呢?

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第15张图片    

    这个是可以秒解的。规律在于:计算时,看w前面接的是什么微分后就是什么。如下图所示。

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第16张图片

  •     怎么计算呢?

    这一项显然是不太好算的,我们需要使用链式法则对这项进行拆解。

    首先假设激活函数是sigmoid函数,z通过sigmoid函数后得到a,a会通过权重再加上其他的值之后得到,a还会通过权重加上其他值得到

   李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第17张图片

   所以李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第18张图片就是sigmoid函数的微分,李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第19张图片

    但是李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第20张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第21张图片我们无法算出,我们假设我们知道这两项的值,所以李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第22张图片

  •     我们可以从另外一个观点看待这个式子。

    我们可以想象有另外一个不在神经网络中的神经元,简化成下图中的三角形。这个神经元的输入就是李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第23张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第24张图片,第一个输入李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第25张图片乘上,第二个输入李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第26张图片乘上,求和后再乘上激活函数就得到

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第27张图片

    其实是一个常数,以内z在计算正推法的时候就已经被决定好了。

    其实,只要能计算出李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第28张图片李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第29张图片,问题就可以迎刃而解。

  •     那么怎么计算这两项呢?

    情况一:假设两个红色的神经元是输出层

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第30张图片

    所以李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第31张图片

    情况二:假设两个红色的神经元不是输出层

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第32张图片

    我们同样可以使用反向传播进行计算

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第33张图片

    可是我们又不知道如何计算的偏微分。如果不是最后一层,一直不断的计算,直到最后一层是输出层。

    上面的方法听起来计算量很大,实际上,我们只需要换一个方向,从输出层的,往回计算。

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第34张图片

    总结:

    首先做一个正向传播,可以算出。在反向传播中,把原来的神经网络的方向倒过来,每一个神经元的输出就是,把他们乘起来得到

    李宏毅 机器学习(2017)学习笔记——7-反向传播算法_第35张图片

 

你可能感兴趣的:(李宏毅_机器学习(2017),神经网络,深度学习,机器学习)