53、反向传播计算梯度与Python环境搭建

反向传播计算梯度与Python环境搭建

1. 反向传播计算梯度

在神经网络训练中,计算成本函数的偏导数是关键步骤,这个过程被称为反向传播。反向传播可以分为四个步骤:计算最后一层权重、最后一层偏置、隐藏层权重和隐藏层偏置的导数。这里主要介绍如何计算最后一层权重的偏导数。

1.1 计算最后一层权重的成本

设多层感知器(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。成本 $C$ 是激活向量 $a_j^L$ 与理想输出值 $y_j$ 之间的平方距离,即:
$C = \sum_{j = 1}^{n_L} (a_j^L - y_j)^2$

权重 $w_{ij}^L$ 对 $C$ 的影响是间接的。它首先与前一层的激活值相乘,加上偏置,通过 sigmoid 函数,最后通过二次成本函数。

1.2 使用链式法则计算最后一层权重的偏导数

为了从 $w_{ij}^L$ 计算到 $C$,可以将其分解为三个步骤:
1. 计算输入到 sigmoid 函数的值 $z_j^L$:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值