《深度学习:卷积神经网络从入门到精通》——2.5 反向传播算法

举报
华章计算机 发表于 2019/06/05 23:32:55 2019/06/05
【摘要】 本书摘自《深度学习:卷积神经网络从入门到精通》——书中第2章,第2.5.1节,作者是李玉鑑、张婷、单传辉、刘兆英等。

2.5 反向传播算法

卷积神经网络是一种特殊的前馈神经网络,通常也是一种深度神经网络。深度学习则是在克服反向传播算法对深度神经网络的训练困难过程中逐步发展和建立起来的。而深度神经网络的基本学习训练方法是反向传播算法。因此,有必要提前介绍一下反向传播算法的具体内容。作为一种有监督学习算法,反向传播算法在本质上是一种具有递归结构的梯度下降算法,往往需要给定足够多的训练样本,才能获得满意的效果。下面先给出任意前馈神经网络的通用反向传播算法,再讨论深层神经网络的逐层反向传播算法。这两个反向传播算法是读者理解其他各种神经网络的反向传播算法的基础。

2.5.1 通用反向传播算法

不妨设前馈神经网络共包含N个节点{u1, u2, …, uN},只有从编号较小的神经元才能连接到编号较大的神经元,没有反馈连接。

image.png

图2.1给出了前馈神经网络的一种可能的连接结构,共包含10个节点,其中两个为输入。一般地,用xn, l表示第n个节点对第l个输入样本的输出,其中1≤n≤N且1≤l≤L。

如果un是输入节点,那么它对第l个输入样本的输入为netn, l = xn, l;否则,un是隐含节点或输出节点,相应的输入为,输出为。其中,表示从第k个节点到第n个节点的有向连接k→n的权值,fn表示第n个节点的激活函数,比如sigmoid函数。此外,若令x0, l = 1,则可用w0→n表示非输入节点un的偏置值。最后,用OUT表示所有输出神经元的集合,且对任意n∈OUT,用yn, l表示xn, l的期望值,用en, l表示编号为n的输出神经元对第l个输入样本产生的输出误差。因此,关于样本l的输出误差可以表示为

image.png(2.49)

总的输出误差为

image.png(2.50)

如果定义第n个神经元关于第l个样本的反传误差信号(backpropagated error signal)或灵敏度(sensitivity)如下:

image.png(2.51)

那么利用链式法不难得到:

image.png(2.52)

(2.53)

如果对输出节点选择平方误差?,那么

image.png(2.54)

                                                                                                                 (2.55)

因此,相应的通用反向误差传播算法可以总结为算法2.2。

注意,在算法2.2中,epoch表示迭代次数,在实际应用中可能需要几十次、几百次,甚至成千上万次迭代,才能获得令人满意的学习训练效果。

算法2.2 通用反向传播算法

image.png

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。