反向传播

神经网络大致可以分成三部分:前向传播、反向传播、参数更新。
前向传播是指有一个输入经过神经网络中的各个层之后计算出LOSS值(在之前的文章已经详细讲解计算过程)
反向传播是指从LOSS值往回看在神经网络中各个参数应该朝着什么方向去调节能够使得结果是朝着优化的方向去的,(也就是求梯度下降方向)。
参数更新就是沿着刚刚求出来的梯度反方向乘上一个步长或者学习率实际的对参数进行更新。

这里我们用一个简单的例子来讲解反向传播。
在这里插入图片描述
假设这里的f值就是我们求得的LOSS值,x,y,z为参数项,反向传播就是为了计算参数应该朝着什么方向去更新。
f=q*z;
q=x+y;
第一步:我们算一下z这个参数应该怎么进行更新,根据前面的公式就是f对z求偏导数,
在这里插入图片描述
就是指我们的z这个参数增大一倍会使结果增大3倍。要使LOSS值减小,所以z的变化方向应该是减小的方向。
第二步:我们要计算x的更新方向,由于x没有直接和f连接在一起,二是x和y先进行了一个组合等于q之后q和z进行组合得到最终的f。这里我们就需要分层去做,也就是链式法则在我们进行反向传播的过程当中,我们的实际求导是基于从后往前一步一步往前去做的。
所以这里我们首先要计算q对f做了多大的贡献,之后计算x对q做了多大贡献。
在这里插入图片描述
在这里插入图片描述
所以这里就是x增大一倍最终的结果会减小4倍,要使LOSS值减小,所以x的变化方向应该是增大的方向。同理可以求出y的更新方向。
链式法则:
在这里插入图片描述
这里就是梯度传播的计算方式,我们要算X和Y对于最终L的贡献(换句话说就是反向传播到X和Y的梯度的大小)要先算前面一层传播到X和Y的梯度再去计算X和Y自身的梯度。
在我们的反向传播过程中:
加法门单元:均等分配
MAX门单元:给最大的
乘法门单元:互换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值