使用反向传播的多层神经网络训练原理
程序员文章站
2022-03-01 19:04:09
...
使用反向传播的多层神经网络训练原理
此项目描述了多层神经网络利用反向传播算法的训练过程。为了阐明这个过程,使用了两个输入和一个输出的三层神经网络,如下图展示:
为了训练神经网络,我们需要训练数据集。训练数据集由分配给的相应的目标(期望输出)z的输入信号(x1和x2)组成。网络训练是一个迭代过程。在每次迭代中,使用训练数据集的新数据修改节点的权重系数。使用下面描述的算法来计算修改:每个教学步骤都是从训练集强制输入信号开始的。在此阶段之后,我们可以确定每个网络层中每个神经元的输出信号值。下面的图片说明了信号是如何通过网络传播的,符号w(xm)n 代表网络输入xm 和输入层中神经元n之间连接的权重。符号yn代表神经元n的输出信号。 在隐藏层之间的信号传播。符号wmn代表下一层中神经元m的输出和神经元n的输入之间的连接权重。 输出层之间信号传播。 在下一个算法步骤中,网络输出信号y与期望输出(目标值)比较,期望值可以在训练数据集中找到。它们之间的差异叫作输出层神经元错误信号d。 直接计算内部神经元的误差信号是不可能的,因为这些神经元的输出值是未知的。多年来,训练多层网络的有效方法是未知的。仅在80年代中期,才建立了反向传播算法。其思想是将误差信号d(在单个教学步骤中计算)传播回所有神经元,这些输出信号被输入给正在讨论的神经元。
当每个神经元的错误信号被计算完成,每个神经元的输入节点的权重系数可能被修改。下面的公式df(e)/de代表了神经元激活函数(权重被修改)的导数。 系数h影响网络训练速度。选择这个参数有一些技巧。第一种方法是以较大的参数值开始训练过程。在建立权重系数的同时,参数逐渐减少。第二,更复杂的方法,从小参数值开始训练 。在训练过程中,随着训练的推进,参数逐渐增大,最后又逐渐减小。启动低参数值的训练过程,可以确定权重系数符号。 |
原文出处:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
有任何问题请联系微信
如果您觉得我的文章给了您帮助,请为我买一杯饮料吧!以下是我的支付宝,意思一下我将非常感激!
上一篇: 开始/快速入门