跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
取样电阻捷比信 · 专业器件主题站

多层神经网络反向传播原理的解释

最简单的神经网络仅由一个“神经元”组成。所谓的神经网络连接许多单个“神经元”。在一起,这样一个“神经元”的输出就可以了。可以是“神经元”的另一个输入。本文介绍了使用反向传播算法训练多层神经网络的学习过程。为了说明此过程,使用了一个具有两个输入和一个输出的三层神经网络,如下图所示:每个神经元都由两部分组成。第一部分是输入信号和加权系数的加权和。第二部分是非线性函数,称为神经元激活函数。信号e是加权和信号的输出(加法器的输出)。 y = f(e)是非线性函数(分量)的输出信号。信号y也是神经元的输出信号。为了训练神经网络,我们需要“训练数据集”。训练数据集由对应于目标z(所需输出)的输入信号(x_1和x_2)组成。神经网络的训练是一个反复的过程。在每次迭代中,都使用来自训练数据集的新数据来修改网络节点的加权系数。整个迭代包括两个过程:前向计算和后向传播。正向计算:每个学习步骤都从训练集中的两个输入信号开始。完成前向计算后,我们可以确定网络每一层中每个神经元的输出信号值(翻译器的注意:隐藏层神经元没有错误,因为训练数据中没有隐藏层目标值放)。下图显示了信号如何通过网络传播。符号w(xm)表示网络输入x_m和神经元n之间的连接权重。符号y_n代表神经元n的输出信号。隐藏层信号传播。符号w_mn表示下一层神经元m的输出与神经元n的输入之间的连接权重。输出层中的信号传播:在下一步算法中,将网络y的输出信号与训练数据集中的输出值(目标)进行比较。将该差异称为误差信号& delta;。输出层神经元。由于隐藏层神经元的输出值(没有隐藏层的训练集的目标值)未知,因此无法直接计算内部神经元的误差信号。多年以来,尚未找到训练多层神经网络的有效方法。直到1980年代中期,才开发了反向传播算法。反向传播算法传播误差信号δ。 (在单个训练步骤中计算)返回到所有神经元。对于神经元,错误信号会传播回去。用于传播误差的权重系数w_mn等于在正向计算中使用的权重系数,但是数据流的方向会发生变化(信号从输出到输入逐一传播)。此技术在所有网络层中都使用。如果错误来自多个神经元,请将它们加起来。如下图所示:计算每个神经元的误差信号,该信号用于修改每个神经元输入连接的加权系数。在以下公式中,df(e)/ de表示神经元激活函数的导数。除了神经元激活函数的导数之外,影响权重的因素还包括反向传播的误差信号和连接到神经元输入方向的先前神经元。 (译者注:这里忽略了推导过程,而直接给出了权重修改方法。关于具体的推导过程,请参阅我的上一篇文章:“误差反向传播算法简介”。原理相同,并且影响重量的三个因素相同(该因素反映在下面的公式中)。系数& eta;影响网络训练速度。有几种技术可以选择此参数。第一种方法是从较大的参数值开始。当建立权重系数时,参数逐渐减小。第二种方法是从较小的参数值开始训练。在训练过程中,参数逐渐增加,然后在最后阶段再次减小。以低参数值开始训练过程可以确定权重系数。