反向传播算法的理解

导读

写这篇文章的目的,是为了记录一下我个人对反向传播算法传输到底做了一件什么事情这一问题的一些理解。反向传播算法是用来计算神经网络中的损失函数对其各个权重的偏导数,核心思想是链式法则
一个简单的神经网络
在这里插入图片描述
在这里插入图片描述

损失函数的定义

首先要明确一件事情,因为神经网络做的是分类,实质上它的损失函数应该是(式1)的形式,但很多博客里都是(式2)的形式,即回归的损失函数,这是出于简化计算的目的,不必过于纠结,本文也会使用(式2)的形式。

单个节点的计算

首先说明一件事情,在本文中,所有没带下标的变量都是向量形式,所有带下标的变量都是标量形式

我们以损失函数对W112的偏导数计算为例。(式3)实际上就是对(式2)的求导,即损失函数J对a13的求导,其中a13与hw(x)是等价的。

再看(式4),它是a13对z13的求导,而a13=Sigmoid(z13),所以求导结果就是Sigmoid函数的求导。Sigmoid函数求导的结果很神奇,而且求导过程也并不难,这里就不展开。

最后看(式5),它是z13对W112的求导,这是对一个简单的线性组合进行求导,结果就是上一层的节点输出值a12

看到这里,相信大家都已经看出来了,损失函数J对W112的偏导数正是(式3)、(式4)、(式5)相乘得到的结果,即(式6)的内容。顺便一提,这里的原理就是链式法则。

反向传播的目的

那么扩展地看,反向传播算法的目的是什么?目的就是求出损失函数J对所有权重Wji的偏导数

那么我们看最后的(式7),它计算的是损失函数J对a12的求导。把(式7)和(式3)比较一下,是不是发现两条公式几乎一模一样,只要沿用上边的步骤继续往下计算,就可以得到损失函数J对倒数第二层权重的偏导数,然后以此类推,就可以倒数第三层、倒数第四层、直至第一层。

大家可以看到,我唯独对(式7)进行展开,它的展开是一个很简单的线性组合,但注意一下它的形式,是不是很眼熟?没错,它的形式和前向传播几乎一模一样,如果我们反过来,将y看作输入,将x看作输出,那么它就是一个前向传播。所以,反向传播中的“反向”就是这么来的。

得到损失函数J对所有权重Wji的偏导数后,就可以通过梯度下降法和其他更加高级的优化算法对损失函数进行最小化。

所有节点的计算

在这里插入图片描述
这里再强调一次,没有下标的变量都是向量形式

我在这里定义了一个变量δi,在其他文章或视频中,喜欢把δi叫做误差或偏差,其实单从式子的形式看,δ3中可以明显地看出有误差的计算a3-y,但δ2跟误差有关系吗,怎么能也把它叫作误差呢?事实上,δ2里包含着δ3,既然δ3与误差有关,那么δ2自然也与误差有关。所以我个人更愿意称这个变量为传播误差或传播偏差

现在我们看(式9),损失函数J对偏差Wji的偏导数是所有样本的偏导数之和,所以用了+=。就单个样本而言,损失函数J对偏差Wji的偏导数是ai(l)j(l+1),其中l代表神经网络的层数。

实际上,ai(l)就相当于(式5),δj(l+1)相当于(式3)和(式4)的乘积。

注意我这里使用的下标,是ji而不是ij,这一点非常重要,Wji是用来连接两个节点的,j是下一层节点的序号,而i是上一层节点的序号,如果不清楚的话,把前向传播的矩阵写出来就比较容易理解。

再看最后的向量化,对单个样本的第l层的权重矩阵而言,W(l)(l+1)*(a(l))T,其中δ(l+1)是(j,1)的矩阵,(a(l))T是(1,i)的矩阵,所以W(l)是(j,i)的矩阵,由于j是下一层节点的序号,而i是上一层节点的序号,所以这个结果是正确的。

可能很多人会对这一节中的下标感到头疼,我的建议是以向量形式做一遍前向传播的推导,理解权重矩阵W中的每一个下标的意义,这样才能更好地理解这一节的内容。

总结

这是我在CSDN的第一篇博文,如果有写错的或者写得不好的,希望大家可以予以指出。

Anyway,最后总结一句,反向传播算法,实质上就是使用链式法则求解每一层的中间变量(传播误差)δ(l),并利用δ(l)计算损失函数J对每一层的权重矩阵W(l)中的每一个权重Wji的偏导数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值