当前位置:   article > 正文

使用反向传播算法训练多层神经网络(图示)_启用记忆电阻交叉棒神经形态处理器的反向传播训练

启用记忆电阻交叉棒神经形态处理器的反向传播训练
本文为翻译内容,如下给出原文链接。

原文:Principles of training mult-layer neural network using backpropagation

链接:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html


本文描述了使用反向传播算法训练多层神经网络的过程。为了更直观的说明该训练过程,使用如下图所示的三层神经网络,其中只有两个输入,一个输出。

每个神经元由两个单元组成:

    第一个单元表示输入信号的加权和(Xi为输入信号,Wi为权重系数);

    第二个单元实现非线性函数(也称为神经元激活函数);

如下图,信号e为线性输出,y=f(e)为非线性输出,y也是当前神经元的输出信号。


在训练神经网络时,我们需要用到训练数据集。训练数据集中包含输入信号(X1和X2)以及相应的目标输出(Z)。网络训练是一个迭代过程,在每次的迭代中,节点的权重系数会根据训练集中的新数据进行修正。

一、计算初始参数

最初的权重系数按如下方法进行计算:
  • 强制从训练集的所有输入信号开始(本例中只有X1和X2)
  • 然后我们就能确定每一层网络中每个神经元的输出信号
符号 w(xm)n表示,网络输入 xm和神经元 n之间的连接权重。符号 yn表示神经元 n的输出信号。

下面三个图演示了输入信号在网络中是如何传递到第一层神经元的。





下面两张图是信号在隐藏层之间的传递,前一层的输出作为后一层的输入。符号 wmn表示神经元m与下一层神经元n之间的连接权重。





下图是输出层的信号传递。


二、计算误差信号

将网络的输出信号y与训练集的目标输出z进行比较,二者的差值称为输出层神经元的误差信号 d

输出层神经元的误差信号是很好计算的,但是对于隐藏层来说,直接计算误差信号是不可能的,因为隐藏层神经元的目标输出是未知的。在80年代中期反向传播方法出现之前,都没有什么训练多层网络的有效方法。而反向传播的思想就是,将输出层的误差信号反向传播给所有的神经元,意味着所有神经元的输出与输入反向。

如下两张图是误差信号传递到最后一个隐藏层的过程。



如下是隐藏层再向输入方向的神经元进行误差传递,权重系数 wmn 依然用于连接神经元m和神经元n,只是计算方向不同。





三、参数更新

当所有神经元的误差信号都计算完成,就可以用于修正每个神经元输入节点的权重系数了。在下面几张图的公式中, df(e)/de 表示神经元激活函数的导数。







系数 h 影响神经网络的学习速率,有一些方法可以用来选择该参数。第一种方法是,选择一个较大的学习速率,当初始权重系数确定之后,逐渐减小学习速率。第二种方法比较复杂,选择一个较小的学习速率,在训练过程中逐渐增大,最后阶段再减小。采用第二种方法能够确定权重系数的符号。

References
Ryszard Tadeusiewcz "Sieci neuronowe", Kraków 1992




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/59924
推荐阅读
相关标签
  

闽ICP备14008679号