Java教程

2021-06-16

本文主要是介绍2021-06-16,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#BP神经网络的快速理解

##引言
理解bp神经网络,这里不讨论那些复杂的生物学和神经科学。其实很简单,从下面三个例子里面可以了解。

  • 我们人类之所以可以让飞机上天,是因为”学习“了从理论力学,信号系统再到导航控制的一系列知识。

  • 作家之所以可以写出伟大的著作,那是因为他学习了语言,比如英语汉语德语法语,也学习过李白杜甫,莎士比亚。

  • 狗狗之所以能知道要听见主人喊一个苹果加一个苹果要喊两声(之后可以得到一块炖牛肉),也是学习的结果。

    那么学习的过程,核心问题是什么?答案是误差

比如你是一个备考高三数学的学生。你本身就会2+2=4,你把这个训练一万遍有用么?没用。你要做的就是找到自己不行的地方,找到自己的漏洞,有针对性的去突破和训练。这就是用误差来学习。人类的过程也是一样的。学习,有误差然后有反馈,我们通过这些误差反馈来学习。

##一、BP神经网络是什么

BP(back propagation)神经网络是一种按误差**反向**传播(简称误差反传)训练的**多层**前馈网络。
  • 反向:这是bp神经网络最重要的点!!!!反向传播的东西是误差,通过反向传播的误差来调整神经元的权重。这样生成一个可以模拟出原始问题的人工神经网络系统。

  • 通俗的说,BP神经网络是人工神经网络的BP算法。BP神经网络是应用最广泛的神经网络模型之一。

    人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。

###1.1 人工神经网络

1.1.1 人工神经网络组成

人工神经网络主要架构是由神经元、层和网络三个部分组成。整个人工神经网络包含一系列基本的神经元、通过权重相互连接。

1.1.2 神经元

神经元是人工神经网络最基本的单元。层是由神经元组成的,每一层的每个神经元和前一层、后一层的神经元连接,共分为输入层、输出层和隐藏层,三层连接形成一个神经网络。

1.1.3 输入层 输出层 隐藏层

  • 输入层(input): 只从外部环境接收信息,是由输入单元组成,而这些输入单元可接收样本中各种不同的特征信息。该层的每个神经元相当于自变量,不完成任何计算,只为下一层传递信息;
  • 隐藏层(hide layer): 介于输入层和输出层之间,这些层完全用于分析,其函数联系输入层变量和输出层变量,使其更配适数据。
  • 输出层(output layer): 生成最终结果,每个输出单元会对应到某一种特定的分类,为网络送给外部系统的结果值,整个网络由调整链接强度的程序来达成学习的目的。

在这里插入图片描述

##二、BP神经网络基本原理
###2.1 基本思想

  • 梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。

###2.2 过程

  • 前向传播 : 正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。
  • 误差的反向传播 : 误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。

###2.3 结构
具体参照人工神经网络的部分。

  • BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。

##三、BP神经网络的具体流程
依据信号的前向传播和误差的反向传播来构建整个网络

bp神经网络具体数学推导过程详见:https://blog.csdn.net/weixin_40355324/article/details/80543391

在这里插入图片描述

PS:单纯收集整理为了方便自己理解!

这篇关于2021-06-16的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!