反向传播算法的微分详细证明过程

Posted 各各他

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向传播算法的微分详细证明过程相关的知识,希望对你有一定的参考价值。

看了andrew ng 老师的机器学习教程,在关于反向传播算法进行讲解时,微分过程被省略掉了,只是说这个过程非常复杂。网上找了一些资料,有一篇比较详细的讲解,在http://axon.cs.byu.edu/resources/backprop_derived.pdf可以下载。这里也贴出来。微分过程中记法和andrew ng教程不太一样。不过貌似看着也蛮方便的。第20-24步的过程正好是δ反向传播的过程。

注意h(θ)这个假设函数,是关于输入向量的l层复合函数。

向量形式大概是这个样子    h(θ) = g(θ2 * g(θ1*xi )),这里是一个三层神经网络的简单示意。其中g代表激活函数,andrew ng的示例使用的是logistic function作为激活函数。i代表输入层向量。θ1和θ2代表第一层和第二层的权重矩阵。n层的时候是类似的复合过程。求偏导的过程其实是E(h(θ), y)对θij求偏导的过程。

还有一点区别就是cost函数J(θ) 的选择不太一样,andrew ng采用的是逻辑回归的cost函数,而本文采用的是线性回归的代价函数。

andrew ng老师的反向传播δ的计算过程如下:

 

它其实是20-24步过程的一个向量化的形式。 

注意,由于J(θ)的选择本文和andrew ng 不一样,输出层的δ计算结果也不一样,andrew ng 输出层的δ的结果为上面的δ(4) = a(4) - y。详细的计算过程可以参考一下这个网页。http://mooc.guokr.com/note/16702/。但是第n-1层的δ和第n层的δ关系则是一样的,向量化形式如上面的图所示。

下面是详细过程,enjoy it.....

 

好吧,说的比较乱,有错误的地方大家不吝指教。

 

以上是关于反向传播算法的微分详细证明过程的主要内容,如果未能解决你的问题,请参考以下文章

第二节,神经网络中反向传播四个基本公式证明——BackPropagation

反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别?

反向传播算法的算法简介

(超详细) Gradient Descent(梯度下降)和Back propagation(反向传播)的关系

反向传播

经典反向传播算法公式详细推导