使用反向传播训练多层神经网络的原理

2017 年 10 月 8 日 数盟

文章《Principles of training multi-layer neural network using backpropagation 》提供了直观理解反向传播的完整例子。以下是原文翻译。

文章描述采用反向传播算法训练多层神经网络的学习过程。为了说明这个过程,使用了具有两个输入和一个输出的三层神经网络,如下图所示:

每个神经元由两部分组成。第一部分是输入信号和权重系数的加权和。第二部分是非线性函数,称为神经元激活函数。信号e是加权和的输出(加法器的输出)信号。y=f(e)是非线性函数(元件)的输出信号。信号y也是神经元的输出信号。

要训练神经网络,我们需要“训练数据集”。训练数据集是由对应目标z(期望输出)的输入信号(x_1和 x_2)组成。神经网络的训练是一个迭代过程。在每个迭代中,使用来自训练数据集的新数据修改网络节点的加权系数。整个迭代由前向计算和反向传播两个过程组成。

前向计算:每个学习步骤从来自训练集的两个输入信号开始。前向计算完成之后,我们可以确定每层网络中每个神经元的输出信号值(译者注:隐藏层神经元的误差是没有的,因为训练数据集中没有隐藏层的目标值)。下图显示了信号如何通过网络传播,符号w(xm) 表示网络输入x_m和神经元n之间的连接权重。符号y_n 表示神经元n的输出信号。

隐藏层信号传播。符号w_mn表示神经元m的输出和后一层神经元n的输入之间的连接权重 。

输出层信号传播:

在下一个算法步骤中,将网络y的输出信号与训练数据集中的输出值(目标)进行比较。差异称为输出层神经元的误差信号δ。

因为隐层神经元的输出值(训练集没有隐藏层的目标值)是未知的,所以不可能直接计算内部神经元的误差信号。多年来,一直没有找到训练多层神经网络的有效方法。直到在八十年代中期,反向传播算法才被制定出来。反向传播算法是将误差信号δ(在单个训练步骤中计算)传播回所有神经元,对于神经元来说,误差信号反向传播。

用于传播误差的权重系数w_mn等于前向计算使用的权重系数,只是数据流的方向改变(信号从输出到输入一个接一个地传播)。该技术用于所有网络层。如果误差是来自多个神经元,则把它们加起来(译者注:反向来看,也是加权和)。下图所示:

计算每个神经元的误差信号,用于修改每个神经元输入连接的加权系数。在下面的公式中, df(e)/de表示神经元激活函数的导数。影响权重的因素除了神经元激活函数的导数之外,还有反向传播的误差信号,以及神经元输入方向连接的前一个神经元。(译者注:这里忽略了推导过程,直接给出权重的修改方法。具体的推导过程参考我的前一篇文章:《误差反向传播算法浅解》。原理是一样的,影响权重的三个因素体现在下面的公式中。)。

其中系数η影响网络训练速度。有几种技术来选择此参数。第一种方法是开始具有较大参数值。当权重系数正在建立时,参数逐渐减少。第二个方法是开始用小参数值进行训练。在训练过程中,参数逐渐增加,然后在最后阶段再次下降。开始具有低参数值的训练过程能够确定权重系数。


媒体合作请联系:

邮箱:contact@dataunion.org



登录查看更多
2

相关内容

反向传播一词严格来说仅指用于计算梯度的算法,而不是指如何使用梯度。但是该术语通常被宽松地指整个学习算法,包括如何使用梯度,例如通过随机梯度下降。反向传播将增量计算概括为增量规则中的增量规则,该规则是反向传播的单层版本,然后通过自动微分进行广义化,其中反向传播是反向累积(或“反向模式”)的特例。 在机器学习中,反向传播(backprop)是一种广泛用于训练前馈神经网络以进行监督学习的算法。对于其他人工神经网络(ANN)都存在反向传播的一般化–一类算法,通常称为“反向传播”。反向传播算法的工作原理是,通过链规则计算损失函数相对于每个权重的梯度,一次计算一层,从最后一层开始向后迭代,以避免链规则中中间项的冗余计算。
最新《自动微分手册》77页pdf
专知会员服务
102+阅读 · 2020年6月6日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
26+阅读 · 2020年5月7日
专知会员服务
45+阅读 · 2020年3月6日
一文搞懂反向传播
机器学习与推荐算法
18+阅读 · 2020年3月12日
神经网络训练tricks
极市平台
6+阅读 · 2019年4月15日
干货 | 深入理解深度学习中的激活函数
计算机视觉life
16+阅读 · 2019年1月29日
误差反向传播——RNN
统计学习与视觉计算组
18+阅读 · 2018年9月6日
谷歌官方:反向传播算法图解
新智元
9+阅读 · 2018年6月29日
基于Numpy实现神经网络:反向传播
论智
5+阅读 · 2018年3月21日
理解神经网络的激活函数
论智
7+阅读 · 2018年1月8日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
Arxiv
45+阅读 · 2019年12月20日
Arxiv
5+阅读 · 2018年9月11日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年1月29日
Arxiv
5+阅读 · 2018年1月16日
Arxiv
7+阅读 · 2018年1月10日
Arxiv
24+阅读 · 2017年3月9日
VIP会员
相关资讯
一文搞懂反向传播
机器学习与推荐算法
18+阅读 · 2020年3月12日
神经网络训练tricks
极市平台
6+阅读 · 2019年4月15日
干货 | 深入理解深度学习中的激活函数
计算机视觉life
16+阅读 · 2019年1月29日
误差反向传播——RNN
统计学习与视觉计算组
18+阅读 · 2018年9月6日
谷歌官方:反向传播算法图解
新智元
9+阅读 · 2018年6月29日
基于Numpy实现神经网络:反向传播
论智
5+阅读 · 2018年3月21日
理解神经网络的激活函数
论智
7+阅读 · 2018年1月8日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
相关论文
Arxiv
45+阅读 · 2019年12月20日
Arxiv
5+阅读 · 2018年9月11日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年1月29日
Arxiv
5+阅读 · 2018年1月16日
Arxiv
7+阅读 · 2018年1月10日
Arxiv
24+阅读 · 2017年3月9日
Top
微信扫码咨询专知VIP会员