×

bp神经网络原理 神经网络

BP神经网络的工作原理?什么是机器学习和深度学习是什么关系

admin admin 发表于2022-07-09 22:48:47 浏览106 评论0

抢沙发发表评论

BP神经网络的工作原理


人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。
所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。
如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。
如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输出层。它的特点是:各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,构成具有层次结构的前馈型神经网络系统。单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。


什么是机器学习和深度学习是什么关系


机器学习(Machine Learning,ML)是人工智能的子领域,也是人工智能的核心。它囊括了几乎所有对世界影响最大的方法(包括深度学习)。机器学习理论主要是设计和分析一些让计算机可以自动学习的算法。

深度学习(DeepLearning,DL)属于机器学习的子类。它的灵感来源于人类大脑的工作方式,是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并非是一个全新的概念,可理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法以及激活函数等方面做出了调整。其目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据,如文本、图像、声音。-bp神经网络原理

1、应用场景

机器学习在指纹识别、特征物体检测等领域的应用基本达到了商业化的要求。

深度学习主要应用于文字识别、人脸技术、语义分析、智能监控等领域。目前在智能硬件、教育、医疗等行业也在快速布局。

2、所需数据量

机器学习能够适应各种数据量,特别是数据量较小的场景。如果数据量迅速增加,那么深度学习的效果将更加突出,这是因为深度学习算法需要大量数据才能完美理解。

3、执行时间

执行时间是指训练算法所需要的时间量。一般来说,深度学习算法需要大量时间进行训练。这是因为该算法包含有很多参数,因此训练它们需要比平时更长的时间。相对而言,机器学习算法的执行时间更少。

4、解决问题的方法

机器学习算法遵循标准程序以解决问题。它将问题拆分成数个部分,对其进行分别解决,而后再将结果结合起来以获得所需的答案。深度学习则以集中方式解决问题,而不必进行问题拆分。


遗传神经网络识别原理


4.3.1 遗传BP简介

遗传识别是遗传算法+神经网络的一种新兴的寻优技术,适合于复杂的、叠加的非线性系统的辨识描述。神经网络算法是当前较为成熟的识别分类方法,但网络权值的训练一直存在着缺陷。为此结合具体应用,在对遗传算法进行改进的基础上,本文采用了一种基于遗传学习权值的神经网络识别方法,并取得了较好的效果。-神经网络

尽管常规遗传算法是稳健的,但针对一个具体问题遗传算法只有和其他方法(或称原有算法)有效地结合在一起,组成一个新的混合算法,才能在实际中得到广泛应用。混合算法既要保持原有算法的长处,又要保持遗传算法的优点,因此常规遗传算法中的适应值函数、编码、遗传算子等必须做适当的修改以适应混合算法的要求。-bp神经网络原理

4.3.1.1 适应值信息

常规算法中,适应值常被表示为全局极小,用欧氏距离来实现。例如,适应值常被表示为如下形式:

储层特征研究与预测

式中:)Yi为第i 个样本的实际输出,Yi为第i 个样本的期望输出,N 为学习样本数。这种表示法的单点拟合能力较强,能够满足精度要求,但大多数情况下,还要考虑样本整体的一些性质,如方差、连续性等。适应值作为GA中的惟一使用信息,除了体现样本的差异性,还 应当兼顾样本间的相关性。这样就在一定程度上克服了剧烈振荡、网络容错能力差等弱点。因此,我们将灰色系统的灰关联引入进来,在保证样本的遗传操作的同时,加强样本间横向上的联系,从而更有效地选择权值。-神经网络

设 X0={X0(K),K=1,2,…,n}为母序列,Xi={Xi(K),K=1,2,…,n i=1,2,…,m}为子序列。

则关联系数为:

储层特征研究与预测

关联度为:

储层特征研究与预测

4.3.1.2 编码问题

二进制位串编码是GA中常见的编码技术。但在实际编程中,采用浮点数直接表示更有利。主要有以下原因:

(1)避免了因网络权值范围不明确,难以进行编码的困难;

(2)取消了编码、译码过程,提高了学习算法的速度;

(3)十进制数字串的引入,在数字串长度不变的情况下,计算精度可以大为提高。例如,用七位二进制数字串来表示(-10,10)之间的数值,则精度最高为:

储层特征研究与预测

用同样长度的十进制数字串来表示(-10,10)之间的数值,去掉符号位和小数点所占用的一位,余下的四位表示小数值,则精度最高可以达到0.0001。

4.3.1.3 修改杂交算子

由于编码方式的改变,杂交算子可以设计为具有数值特点的向量的线性组合。通常表示为如下形式:

若有两个个体Sa、Sb杂交,则产生的个体为

储层特征研究与预测

其中u的取值在(0,1),也可根据情况适当缩小取值范围。当u取常数时,杂交算子即为一致杂交,当u随代数变化时,杂交算子则为非一致杂交。

在遗传算法中,随着迭代次数的增加,个体的平均性能逐步提高,个体间的差异缩小。为了防止个体趋向一致,影响算法的收敛性能,本文对u作了如下改变,令

储层特征研究与预测

其中t为当前代数,T为预置最大代数,随着代数的增加,u从1到0变化,完成杂交的渐变过程。

4.3.1.4 修改变异算子

设个体x=(v1,v2,…,vn),则每个分量以一定概率进行变异,一次变异后的结果为(v1,…,,…,vn),1<=K<=n,的值按下面的随机方式决定:

储层特征研究与预测

式中:LB,UB为第K个变量的左、右邻居,函数Δ(t,y)返回(0,y)上的一个值,并使这个值随着代数t的增大而接近于0,这样选取的函数允许这个算子在算法的开始阶段一致搜索整个空间,而在算法的后阶段进行局部搜索。-bp神经网络原理

储层特征研究与预测

式中:r为[0,1]上的随机数,T为预置的最大代数,t为当前代数,b是决定非一致程度的参数,这里取为0.5。

4.3.1.5 成熟前收敛问题

成熟前收敛是指GA不能再产生性能超过父代的后代,尽管尚未达到全局最优解,主要表现形式是连续数代或数十代适应值不发生变化。它与其他方法中的局部极值问题很相似,但又不同,因为它并不一定出现在局部极小点。目前解决这一问题的方法主要有:重新启动法、动态参数编码法、混合法等。为了便于程序表现,我们引进了一个动态记忆窗口W,W用来记录从当前代开始最优目标值保持连续不变的代数。当W达到某个给定的值时,就认为出现了成熟前收敛,这时就令杂交算子和变异算子突然增大,实现基因的重组。当然用这种方法来判别收敛问题是不严格的,对一个算法收敛性能的评价主要应体现在时间复杂性和空间复杂性上。对于像GA这样带有随机搜索性质的具体方法,理论上说,只有当随机数字完全取尽,目标值仍未改变才可认为是成熟前收敛。但在实际中是不可能这样做的。因此可根据随机数的总个数,每次计算出最多取多少个随机参数,来大致估算所需的次数,这个次数就可认为是动态记忆机制W。-神经网络

4.3.2 遗传BP网络结构

遗传算法一般可以通过两种方式应用到神经网络中。一种方式是利用遗传算法训练已知结构的网络,优化网络的连接权;另一种方式是利用遗传算法寻找网络的规模、结构和学习参数。目前这种方法在理论上还不完全成熟,寻优机理、学习效率等有待进一步研究,离实际应用还有一定的距离。-bp神经网络原理

对多层前馈神经网络,目前用得最多的学习算法是BP算法。然而由于BP本身固有的学习机理的限制,从根本上改进BP算法是很困难的。BP的学习过程实际上是连接权的重组优化过程,因此在保持网络结构的前提下,寻找一种能使连接权达到最优组合的学习方法,具有一定的实际意义。-神经网络

利用GA的优点来克服BP算法收敛慢和易局部收敛的缺陷,同时与BP算法的结合,也解决了单独利用GA往往只能在短时间内寻找到接近最优解的近优解这一问题,引入BP算法的梯度信息将会避免这种现象。GA与BP算法可以有多种不同的组合方法:-bp神经网络原理

先BP后GA:先用BP培训一个预先选定结构的ANN(人工神经网络)直到平均误差不再有意义地减少时为止,然后在此基础上再用GA进行若干代的优化。重复进行这样的搜索,直到误差范围达到满意的要求或者发现搜索不收敛为止。这种组合方法的基本思想是先用BP确定使误差函数取极小值的参数组合在参数空间的位置,再利用GA摆脱掉可能的局部极小。应用这种组合必须事先选定ANN的结构。即只能用它确定ANN的连接权重。显然,如果事先选择的ANN结构不合理或有关的参数(如学习率等)不合适,可能会导致搜索不收敛。-神经网络

先GA后BP:先用GA反复优化描述ANN模型的参数组合,直到适应函数的平均不再有意义地增加为止。在此基础上再用 BP算法对它们进行优化。这种组合方法的基本思想是先用GA粗选ANN模型,再用 BP算法精细与优化。这种组合方法的优点是通用性好,既可像前一组合方法那样用来优选指定结构下的部分参数,也可用来优选其他的参数,例如 ANN 的结构、学习率等,甚至还可用于优选它们的组合。-bp神经网络原理

图4-4 GABP结构图

上面两种组合GA与 BP的方法是比较基本的两种,以它们为基础可以衍生出多种具体的实现方案。但由于 BP 算法本身也有许多参数需要选定,而且选择方法也无规则可循,因而组合 GA 与BP在一定程度上也使待解决的问题更加复杂化。为此,这里提出了一种改进的GABP方法,即利用 BP网络的非线性分类能力和网络结构来设计分类器,将遗传学习的结果直接送入网络,不再经过BP优化,通过网络结构输出结果。这种改进既体现了系统的非线性,与前面的处理方法相衔接,又通过GA的学习优化了权值,提高了运算速度。该网络为一个三层 BP 网络,结构如图4-4所示。-神经网络

4.3.3 遗传BP计算过程

遗传BP算法的具体步骤:

(1)随机产生N组(-1,1)区间内取值的初始网络权值。

(2)用BP算法对这N组始值分别进行训练,若这N组权值中至少已有一组满足精度要求,则算法结束;否则转入步骤(3)。

(3)分别依据经过训练的这N组较好的权值所对应的上下限确定取值区间,在区间内再随机生产成N组新的权限,连同经过训练的N组权值在一起,构成一个完整的基因群体,共2*N组权值。

(4)从这2*N组权值进行选择、交叉、变异等遗传操作。

(5)从经过遗传操作的这2*N组权值中选出N组较好的,回复到步骤(2)。

图4-5 改进的 GABP计算流程图

GABP的计算过程图如图4-5所示。