反向传播计算梯度与Python环境搭建
1. 反向传播计算梯度
1.1 反向传播概述
在神经网络训练中,计算多层感知器(MLP)成本函数的偏导数的过程被称为反向传播。这是因为从最后一层的权重和偏置开始,反向计算更为高效。反向传播可分为四个步骤:计算最后一层权重、最后一层偏置、隐藏层权重和隐藏层偏置的导数。下面将详细介绍如何计算最后一层权重的偏导数。
1.2 计算最后一层权重相关的成本
设MLP最后一层的索引为L,最后一层的权重矩阵由权重 $w_{ij}^L$ 组成,该层的偏置为 $b_j^L$,激活值标记为 $a_j^L$。最后一层第j个神经元的激活值 $a_j^L$ 的计算公式如下:
[a_j^L = \sigma(b_j^L + \sum_{i=1}^{n_{L - 1}} w_{ij}^L a_{i}^{L - 1})]
其中,$\sigma$ 是Sigmoid函数,$n_{L - 1}$ 是第L - 1层的神经元数量。
给定一个实际的训练示例,理想输出向量 $y$ 在正确的位置为1,其他位置为0。成本是激活向量 $a_j^L$ 与理想输出值 $y_j$ 之间的平方距离,即:
[C = \sum_{j = 1}^{n_L} (a_j^L - y_j)^2]
权重 $w_{ij}^L$ 对成本 $C$ 的影响是间接的。它首先与前一层的激活值相乘,加上偏置,通过Sigmoid函数,最后通过二次成本函数。
1.3 使用链式法则计算最后一层权重的偏导数
为了从 $w_{ij}^L$ 计算到 $C$,可以将其分解为三个步骤:
1. 计
超级会员免费看
订阅专栏 解锁全文
1140

被折叠的 条评论
为什么被折叠?



