
神经网络的正向传播和反向传播梯度下降的推导过程其实在吴恩达机器学习公开课第五周:https://zhuanlan.zhihu.com/p/74167352 已经推导过了,不过之前的例子不够通用,重点在于解释反向传播的过程。这次我们进行更通用点的推导。
首先,我们总结一下单个神经网络和简单神经网络的向量化表示,然后对一个2层神经网络进行前向传播 + 反向传播的公式推导;最后总结出一个更一般的神经网络反向传播推导公式。
1. 神经网络的向量化表示
1.1 单个神经元:

我们用L 表示层数,上图:L = 2表示神经网络层数为2,输入层有三个变量,同时
中间的隐藏层有4个神经元
,隐藏层激活后的结果矩阵
;输出层有1个神经元
1.2.1单样本向量化表示
用方程式表示隐藏层的z和激活结果a,如上图右边的方程式,看起来很直观,不过实际计算时,不可能一个个地根据上述方程来计算,而是用向量化地方式表示。
,
,
,
1.2.2 多样本向量化表示
1.2.1中的公式适用于单个样本,当我们有多个样本(mini-batch)时,假设有m批样本,则我们就需要从i = 1~m,重复计算这四个过程。实际情况没那么复杂,我们可以直接用多样本向量化的公式表示如下:

注:此处中[1]表示神经网络第一层,(i)表示第i批样本
2.简单神经网络的推导
损失函数Cost function公式:
正向传播forward propagation:
反向传播back propagation:
dW的公式推导:
1.这里需要注意的是,我们会repeaat i次(i从1~m),每次都会计算dW,推导公式中的 表示第i次过程汇总的损失。故
2.是pxq矩阵,其中p表示第二层神经元数量、q表示第一层神经元数量;
是px1矩阵;
是qx1矩阵,为了保持队形,故将其转置。
3.神经网络反向传播推导
3.1前向传播
,b为偏差,第l层的结果矩阵:
,g(z)为激活函数
向量化地表示:
我们从l = 0 开始,即 来表示输入层矩阵,开始计算
,重复此过程直到最后的输出层:
,便完成了整个前向传播的推导
3.2反向传播
完成前向传播的推导后,我们知道了神经网络每一层的激活值,于是可以根据激活值从后往前逐层推导每一层的偏导。
向量化表示的步骤如下:
(6)
(7)
(8)
(9)
网友评论