JAVAEE与人工智能实战之--BP神经网络的训练过程
2019-04-05 本文已影响7人
山东大葱哥
神经网络的训练过程分为两个过程:1、正向传播得到预测数据;2、反向传播更新权重。如下图所示:
image.png
正向传播得到预测数据
正向传播的过程,即数据从输入层输入,经过隐含层,输出层的计算得到预测值,预测值为输出层的输出结果。网络层的输出即该层中所有节点(神经元)的输出值的集合。我们以图一的神经网络结构为例,分析正向传播过程。
-
得到隐含层的输出y1,y2,y3
image.png
image.png
image.png -
获取到第二层的隐含层输出y4,y5
image.png image.png
获取到第二层的隐含层输出y4,y5,输入的数据也就是第一层隐含层的输出数据y1,y2,y3。 -
通过输出层得到最后的预测值y
image.png
反向传播计算各层误差
根据样本的真实类标,计算模型预测的结果与真实类标的误差。然后将该误差反向传播到各个隐含层。计算出各层的误差,再根据各层的误差,更新权重。
-
计算输出层的误差
image.png
其中z为该样本的类标
-
计算第二层隐含层的误差
image.png
image.png -
计算第一次隐含层的误差
image.png
image.png
image.png
更新偏置及权重**
- 新的偏置=原偏置+该节点的误差×激活函数的导函数的值
- 新的权重=原权重+学习速率×该节点的误差×激活函数的导函数的值(f(e)的倒数)×与该节点相连的输入值
-
更新输入层与第一层隐含层之间的权重
image.png
image.png
image.png -
更新第一层隐含层与第二层隐含层之间的权重
image.png
image.png -
更新第二层隐含层与输出层之间的权重
image.png
以上就是反向传播的过程。误差从输出层反向的传到输入层,然后再从输入层向前更新权重。
上一篇 | JAVAEE与人工智能目录 | 下一篇 |
---|