当前位置:网站首页 > 技术博客 > 正文

神经网络bp算法 python



采用BP算法的多层感知器是至今为止应用最广泛的神经网络,在多层感知器的应用中,以图3-15所示的单隐层网络的应用最为普遍。一般习惯将单隐层前馈网称为三层感知器,所谓三层包括了输入层、隐层和输出层。

ccf3ad15226793b8a921f60efb4ffb35.png

ce5dc92037da0eb09a2de03279fa5f0b.png

算法最终结果采用梯度下降法,具体详细过程此处就省略了!

 

0eb1293ea048be5f3a8df48815284c66.png

标准BP算法在调整权值时,只按t时刻误差的梯度降方向调整,而没有考虑t时刻以前的梯度方向,从而常使训练过程发生振荡,收敛缓慢。为了提高网络的训练速度,可以在权值调整公式中增加一动量项。若用W代表某层权矩阵,X代表某层输入向量,则含有动量项的权值调整向量表达式为

f89955a52d0b785fbe416676fd186911.png

可以看出,增加动量项即从前一次权值调整量中取出一部分迭加到本次权值调整量中,α称为动量系数,一般有a∈ (0,1)。动量项反映了以前积累的调整经验,对于t时刻的调整起阻尼作用。当误差曲面出现骤然起伏时,可减小振荡趋势,提高训练速度。目前,BP算法中都增加了动量项,以致于有动量项的BP算法成为一种新的标准算法。

 

这里为了运用算法,简要的举了一个例子(不需归一化或标准化的例子)

为了便于查看结果我们输出把结果绘制为图形,如下:

dcc63b98f755705a5e713e408cbf0524.png

其中黄线和蓝线代表着训练完成后的输出与输入

 

来源:小凌のBlog—Good Times|一个不咋地的博客

[1]   韩力群,人工神经网络理论及应用 [M]. 北京:机械工业出版社,2016.

 

版权声明


相关文章:

  • 《java并发编程实战》2025-04-03 11:01:05
  • 同步 异步2025-04-03 11:01:05
  • ipad键盘快捷键怎么调出来2025-04-03 11:01:05
  • 明牛云智能网关2025-04-03 11:01:05
  • ubuntu怎么从root切换到普通用户2025-04-03 11:01:05
  • springboot集成testng2025-04-03 11:01:05
  • java值类型和引用类型的区别2025-04-03 11:01:05
  • mysql数据库的事务2025-04-03 11:01:05
  • webhook作用2025-04-03 11:01:05
  • java实现链表2025-04-03 11:01:05