BP算法公式推导

W^l_{ji}表示第l-1层的第i个神经元到第l层的第j个神经元的连接权值,x^l_j表示第l层第j个神经元的输入,y^l_j表示第l层第j个神经元的输出,\Theta^l_j表示l层第j个神经元的偏置,C表示代价函数,

则有:

x^l_j = \sum _k w^l_{ji}y^{l-1}_i + \Theta ^l_j

y^l_j = f\left ( x^l_j \right )

其中,f\left ( \cdot \right )表示激活函数。训练多层网络的目的就是使代价函数C最小化.

定义代价函数为:

C= \frac{1}{2}\left \| Y-y^L \right \|^2

可以看出,这个函数依赖于实际的目标值Yy^L可以看成权值和偏置的函数,通过不断的修改权值和偏置值来改变神经网络的输出值.

接下来更新权值和偏置:

首先定义误差\delta,令\delta ^l_j表示第l层第j个神经元上的误差(?),定义为

\large \delta ^l_j = \delta x^l_j = \frac{\partial C}{\partial x^l_j}

由链式求导法则可得输出层的误差方程为:

\large \delta ^l_j = \delta x^l_j = \frac{\partial C}{\partial y^l_j}{f \left(x^l_j\right)}'

因为当前层神经元的输出是上一层神经元输出的线性组合,由链式法则可通过下层神经元的误差来表示当前层的误差:

\large \delta ^l_j = \delta x^l_j = \frac{\partial C}{\partial x^l_j} = \sum _i \frac{\partial C}{\partial x^{l+1}_i} \frac{\partial x^{l+1}_i}{\partial x^l_j} = \sum _i \frac{\partial x^{l+1}_i}{\partial x^l_j} \delta x^{l+1}_i   # 建立了 前一层误差 和 后一层误差的关系

又因为: 建立了 \large x^{l+1}_i\large x^l_i的联系

\large x^{l+1}_i = \sum _j w^{l+1}_{ij} y^l_j + \theta ^{l+1}_i = \sum _j w^{l+1}_{ij} f\left(x^l_j \right ) + \theta ^{l+1}_i

\large x^l_j求偏导,可得:

\large \frac{\partial x^{l+1}_i}{\partial x^l_j} = w^{l+1}_{ij} f'\left(x^l_j \right )

故有:   前一层误差 和 后一层误差的关系推导

\large \delta ^l_j = \sum _i w^{l+1}_{ij} f'\left(x^l_j \right ) \delta^{l+1}_i

权重和偏置更新公式:

\large \frac{\partial C }{ \partial w^l_{ji}} = \frac{\partial C}{\partial x^l_j} \frac{\partial x^l_j}{\partial w^l_{ji}} = \delta ^l_j y^{l-1}_i

\large \frac {\partial C}{\partial \theta ^l_j} = \frac{\partial C}{\partial x^l_j}\frac{\partial x^l_j}{\partial \theta ^l_j} = \delta^l_j

由梯度下降法可得到更新规则为:

\large w^l_{ji} = w^l_{ji} - \alpha \frac{\partial C}{\partial w^l_{ji}} = w^l_{ji} - \alpha \delta^l_j y^{l-1}_i

\large \theta ^l_j = \theta ^l_j - \alpha\frac{\partial C}{\partial \theta^l_j} = \theta^l_j - \alpha \delta ^l_j

BP反向传播的过程;

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值