吴恩达机器学习:神经网络反向传播算法——理解和补充
前言
看反向传播视频的时候被里面突然出来的一堆公式整懵了,为方便理解在此简单的梳理补充一下关于反向传播算法的公式推导,本人数学水平不高,如有理解不到位的地方欢迎大家指出
(文中字母上标表示层数,下标表示该层的第几个元素)
链式求导法则
首先先说链式求导,假设,其中
可以写出J相对于的偏导
由公式可以看出,将每个偏导看成一个整体的话,链式求导法则和神经网络的传播过程相似,图示为
其中每条线上对应的权重为
反向传播算法
同样定义与上图中相同的神经网络结构,设J为,其他条件为(与视频中的定义基本一致,以下公式中的i,j,k重,与前一部分的i,j,k不同)
(g为sigmoid函数)
定义**项误差δ为
个人感觉这里视频中并没有说清楚,如图
视频中显示的输出层误差,实际上算的是
,而下面计算隐藏层的误差
,算的却是
,其关系为:
因而这两者不能等同理解,视频中采用同一个符号容易造成误解
计算出的**项误差之后,就很容易计算得到代价函数J关于参数Θ 的偏导