目录
1. 从 Logistic Regression 中理解反向传播
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~
花书+吴恩达深度学习(一)前馈神经网络(多层感知机 MLP)
花书+吴恩达深度学习(二)非线性激活函数(ReLU, maxout, sigmoid, tanh)
0. 前言
在神经网络中,通过前向传播,将线性拟合和非线性激活的计算结果传递至最后一层 。
然后通过反向传播,从最后一层进行梯度计算,每一层使用到了后面一层的计算结果对各自的参数进行修改,直到输入层。
本篇文章通过几个例子层层递进,理解反向传播算法。
1. 从 Logistic Regression 中理解反向传播
如下图所示,为单个样本通过 LR 单元:
其中,样本有两个特征,前向传播通过线性单元和非线性激活函数 sigmoid ,得出结果,然后计算损失函数。
损失函数采用:
在反向传播中,首先对最后一层的输出计算梯度:
其次,对倒数第二层的输出计算梯度:
然后,求出了对 的梯度之后,可以计算对参数的梯度:
最后,就可以使用梯度下降的方法对参数进行修改。
在每一层计算梯度的过程中,都使用到了后面一层的计算结果,可以看成是梯度的计算从后面不断的往前面传递的反向传播。
2. 两层神经网络中单个样本的反向传播
在 logistic regression 的例子中,可以看成是一个神经元的反向传播。
现在,我们构建一个两层多个神经元的神经网络:
我们对其进行向量化,单个样本表示为 ,维度 。
第一层网络中,参数权重表示为 ,维度