BP神经网络训练实例
1. BP神经网络
关于BP神经网络在我的上一篇博客《CV学习笔记-推理和训练》中已有介绍,在此不做赘述。本篇中涉及的一些关于BP神经网络的概念与基础知识均在《CV学习笔记-推理和训练》中,本篇仅推演实例的过程。

BP的算法基本思想:

①将训练集数据输入到神经网络的输入层,经过隐藏层,最后达到输出层并输出结果,这就是前向传播过程。
②由于神经网络的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;
③在反向传播的过程中,根据误差调整各种参数的值(相连神经元的权重),使得总损失函数减小。
④迭代上述三个步骤(即对数据进行反复训练),直到满足停止准则。
2. 训练实例
1. 实例设计




**2. 训练过程

  1. 前向传播
    输入层->隐藏层:


隐藏层->输出层:**


至此,一个完整的前向传播过程结束输出值为[ 0.751365069 , 0.772928465 ]与实际值[ 0.01 , 0.99 ]误差还比较大,需要对误差进行反向传播,更新权值后重新计算。

2. 反向传播
计算损失函数:

传递误差需要经过损失函数的处理,来估计出合适的传递值进行反向传播并合理的更新权值。


隐藏层->输出层的权值更新:









隐藏层->隐藏层的权值更新:






至此,一次反向传播的过程结束。

训练过程就是这样反复迭代,正向传播后得误差,在反向传播更新权值,再正向传播,这样反复进行,本例再第一次迭代后总误差从0.298371109下降到了0.291027924,在迭代10000次后,总误差降至0.000035085。输出为[0.015912196,0.984065734]