神经网络分类原理(神经网络分类原理图)
大家好!今天让创意岭的小编来大家介绍下关于神经网络分类原理的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、机器学习之人工神经网络算法
机器学习中有一个重要的算法,那就是人工神经网络算法,听到这个名称相信大家能够想到人体中的神经。其实这种算法和人工神经有一点点相似。当然,这种算法能够解决很多的问题,因此在机器学习中有着很高的地位。下面我们就给大家介绍一下关于人工神经网络算法的知识。
1.神经网络的来源
我们听到神经网络的时候也时候近一段时间,其实神经网络出现有了一段时间了。神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法诞生以后,神经网络的发展进入了一个热潮。
2.神经网络的原理
那么神经网络的学习机理是什么?简单来说,就是分解与整合。一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正确的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。所以可以看出神经网络有很明显的优点。
3.神经网络的逻辑架构
让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
4.神经网络的应用。
图像识别领域是神经网络中的一个著名应用,这个程序是一个基于多个隐层构建的神经网络。通过这个程序可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。可以看出,随着层次的不断深入,越深的层次处理的细节越低。但是进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机算法取代了神经网络的地位。
在这篇文章中我们大家介绍了关于神经网络的相关知识,具体的内容就是神经网络的起源、神经网络的原理、神经网络的逻辑架构和神经网络的应用,相信大家看到这里对神经网络知识有了一定的了解,希望这篇文章能够帮助到大家。
二、神经网络浅谈
人工智能技术是当前炙手可热的话题,而基于神经网络的深度学习技术更是热点中的热点。去年谷歌的Alpha Go 以4:1大比分的优势战胜韩国的李世石九段,展现了深度学习的强大威力,后续强化版的Alpha Master和无师自通的Alpha Zero更是在表现上完全碾压前者。不论你怎么看,以深度学习为代表的人工智能技术正在塑造未来。
下图为英伟达(NVIDIA)公司近年来的股价情况, 该公司的主要产品是“图形处理器”(GPU),而GPU被证明能大大加快神经网络的训练速度,是深度学习必不可少的计算组件。英伟达公司近年来股价的飞涨足以证明当前深度学习的井喷之势。
好,话不多说,下面简要介绍神经网络的基本原理、发展脉络和优势。
神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系,是机器学习算法大类中的一种。首先让我们来看人脑神经元细胞:
一个神经元通常具有多个树突 ,主要用来接受传入信息,而轴突只有一条,轴突尾端有许多轴突末梢,可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。
下图是一个经典的神经网络(Artificial Neural Network,ANN):
乍一看跟传统互联网的拓扑图有点类似,这也是称其为网络的原因,不同的是节点之间通过有向线段连接,并且节点被分成三层。我们称图中的圆圈为神经元,左边三个神经元组成的一列为输入层,中间神经元列为隐藏层,右边神经元列为输出层,神经元之间的箭头为权重。
神经元是计算单元,相当于神经元细胞的细胞核,利用输入的数据进行计算,然后输出,一般由一个线性计算部分和一个非线性计算部分组成;输入层和输出层实现数据的输入输出,相当于细胞的树突和轴突末梢;隐藏层指既不是输入也不是输出的神经元层,一个神经网络可以有很多个隐藏层。
神经网络的关键不是圆圈代表的神经元,而是每条连接线对应的权重。每条连接线对应一个权重,也就是一个参数。权重具体的值需要通过神经网络的训练才能获得。我们实际生活中的学习体现在大脑中就是一系列神经网络回路的建立与强化,多次重复的学习能让回路变得更加粗壮,使得信号的传递速度加快,最后对外表现为“深刻”的记忆。人工神经网络的训练也借鉴于此,如果某种映射关系出现很多次,那么在训练过程中就相应调高其权重。
1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP:
符号化后的模型如下:
Sum函数计算各权重与输入乘积的线性组合,是神经元中的线性计算部分,而sgn是取符号函数,当输入大于0时,输出1,反之输出0,是神经元中的非线性部分。向量化后的公式为z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。
但是,MP模型中,权重的值都是预先设置的,因此不能学习。该模型虽然简单,并且作用有限,但已经建立了神经网络大厦的地基
1958年,计算科学家Rosenblatt提出了由两层神经元组成(一个输入层,一个输出层)的神经网络。他给它起了一个名字–“感知器”(Perceptron)
感知器是当时首个可以学习的人工神经网络。Rosenblatt现场演示了其学习识别简单图像的过程,在当时引起了轰动,掀起了第一波神经网络的研究热潮。
但感知器只能做简单的线性分类任务。1969年,人工智能领域的巨擘Minsky指出这点,并同时指出感知器对XOR(异或,即两个输入相同时输出0,不同时输出1)这样的简单逻辑都无法解决。所以,明斯基认为神经网络是没有价值的。
随后,神经网络的研究进入低谷,又称 AI Winter 。
Minsky说过单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。
下图为两层神经网络(输入层一般不算在内):
上图中,输出层的输入是上一层的输出。
向量化后的公式为:
注意:
每个神经元节点默认都有偏置变量b,加上偏置变量后的计算公式为:
同时,两层神经网络不再使用sgn函数作为激励函数,而采用平滑的sigmoid函数:
σ(z)=1/(1+e^(-z) )
其图像如下:
理论证明: 两层及以上的神经网络可以无限逼近真实的对应函数,从而模拟数据之间的真实关系 ,这是神经网络强大预测能力的根本。但两层神经网络的计算量太大,当时的计算机的计算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带动了业界使用两层神经网络研究的热潮。
但好景不长,算法的改进仅使得神经网络风光了几年,然而计算能力不够,局部最优解,调参等一系列问题一直困扰研究人员。90年代中期,由Vapnik等人发明的SVM(Support Vector Machines,支持向量机)算法诞生,很快就在若干个方面体现出了对比神经网络的优势:无需调参;高效;全局最优解。
由于以上原因,SVM迅速打败了神经网络算法成为主流。神经网络的研究再一次进入低谷, AI Winter again 。
多层神经网络一般指两层或两层以上的神经网络(不包括输入层),更多情况下指两层以上的神经网络。
2006年,Hinton提出使用 预训练 ”(pre-training)和“微调”(fine-tuning)技术能优化神经网络训练,大幅度减少训练多层神经网络的时间
并且,他给多层神经网络相关的学习方法赋予了一个新名词–“ 深度学习 ”,以此为起点,“深度学习”纪元开始了:)
“深度学习”一方面指神经网络的比较“深”,也就是层数较多;另一方面也可以指神经网络能学到很多深层次的东西。研究发现,在权重参数不变的情况下,增加神经网络的层数,能增强神经网络的表达能力。
但深度学习究竟有多强大呢?没人知道。2012年,Hinton与他的学生在ImageNet竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性。
同时,科研人员发现GPU的大规模并行矩阵运算模式完美地契合神经网络训练的需要,在同等情况下,GPU的速度要比CPU快50-200倍,这使得神经网络的训练时间大大减少,最终再一次掀起了神经网络研究的热潮,并且一直持续到现在。
2016年基于深度学习的Alpha Go在围棋比赛中以4:1的大比分优势战胜了李世石,深度学习的威力再一次震惊了世界。
神经网络的发展历史曲折荡漾,既有被捧上神坛的高潮,也有无人问津的低谷,中间经历了数次大起大落,我们姑且称之为“三起三落”吧,其背后则是算法的改进和计算能力的持续发展。
下图展示了神经网络自发明以来的发展情况及一些重大时间节点。
当然,对于神经网络我们也要保持清醒的头脑。由上图,每次神经网络研究的兴盛期持续10年左右,从最近2012年算起,或许10年后的2022年,神经网络的发展将再次遇到瓶颈。
神经网络作为机器学习的一种,其模型训练的目的,就是使得参数尽可能的与真实的模型逼近。理论证明,两层及以上的神经网络可以无限逼近真实的映射函数。因此,给定足够的训练数据和训练时间,总能通过神经网络找到无限逼近真实关系的模型。
具体做法:首先给所有权重参数赋上随机值,然后使用这些随机生成的参数值,来预测训练数据中的样本。假设样本的预测目标为yp ,真实目标为y,定义值loss,计算公式如下:
loss = (yp -y) ^2
这个值称之为 损失 (loss),我们的目标就是使对所有训练数据的损失和尽可能的小,这就转化为求loss函数极值的问题。
一个常用方法是高等数学中的求导,但由于参数不止一个,求导后计算导数等于0的运算量很大,所以常用梯度下降算法来解决这样的优化问题。梯度是一个向量,由函数的各自变量的偏导数组成。
比如对二元函数 f =(x,y),则梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函数值上升最快的方向。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。下图为梯度下降的大致运行过程:
在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用 反向传播 (Back Propagation)算法。反向传播算法利用了神经网络的结构进行计算,不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。当然,梯度下降只是其中一个优化算法,其他的还有牛顿法、RMSprop等。
确定loss函数的最小值后,我们就确定了整个神经网络的权重,完成神经网络的训练。
在神经网络中一样的参数数量,可以用更深的层次去表达。
由上图,不算上偏置参数的话,共有三层神经元,33个权重参数。
由下图,保持权重参数不变,但增加了两层神经元。
在多层神经网络中,每一层的输入是前一层的输出,相当于在前一层的基础上学习,更深层次的神经网络意味着更深入的表示特征,以及更强的函数模拟能力。更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。
如上图,第一个隐藏层学习到“边缘”的特征,第二个隐藏层学习到“边缘”组成的“形状”的特征,第三个隐藏层学习到由“形状”组成的“图案”的特征,最后的隐藏层学习到由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。
前面提到, 明斯基认为Rosenblatt提出的感知器模型不能处理最简单的“异或”(XOR)非线性问题,所以神经网络的研究没有前途,但当增加一层神经元后,异或问题得到了很好地解决,原因何在?原来从输入层到隐藏层,数据发生了空间变换,坐标系发生了改变,因为矩阵运算本质上就是一种空间变换。
如下图,红色和蓝色的分界线是最终的分类结果,可以看到,该分界线是一条非常平滑的曲线。
但是,改变坐标系后,分界线却表现为直线,如下图:
同时,非线性激励函数的引入使得神经网络对非线性问题的表达能力大大加强。
对于传统的朴素贝叶斯、决策树、支持向量机SVM等分类器,提取特征是一个非常重要的前置工作。在正式训练之前,需要花费大量的时间在数据的清洗上,这样分类器才能清楚地知道数据的维度,要不然基于概率和空间距离的线性分类器是没办法进行工作的。然而在神经网络中,由于巨量的线性分类器的堆叠(并行和串行)以及卷积神经网络的使用,它对噪声的忍耐能力、对多通道数据上投射出来的不同特征偏向的敏感程度会自动重视或忽略,这样我们在处理的时候,就不需要使用太多的技巧用于数据的清洗了。有趣的是,业内大佬常感叹,“你可能知道SVM等机器学习的所有细节,但是效果并不好,而神经网络更像是一个黑盒,很难知道它究竟在做什么,但工作效果却很好”。
人类对机器学习的环节干预越少,就意味着距离人工智能的方向越近。神经网络的这个特性非常有吸引力。
1) 谷歌的TensorFlow开发了一个非常有意思的神经网络 入门教程 ,用户可以非常方便地在网页上更改神经网络的参数,并且能看到实时的学习效率和结果,非常适合初学者掌握神经网络的基本概念及神经网络的原理。网页截图如下:
2) 深度学习领域大佬吴恩达不久前发布的《 神经网络和深度学习 》MOOC,现在可以在网易云课堂上免费观看了,并且还有中文字幕。
3) 《神经网络于深度学习》(Michael Nielsen著)、《白话深度学习与TensorFlow》也是不错的入门书籍。
三、BP神经网络原理
人工神经网络有很多模型,但是日前应用最广、基本思想最直观、最容易被理解的是多层前馈神经网络及误差逆传播学习算法(Error Back-Prooaeation),简称为BP网络。
在1986年以Rumelhart和McCelland为首的科学家出版的《Parallel Distributed Processing》一书中,完整地提出了误差逆传播学习算法,并被广泛接受。多层感知网络是一种具有三层或三层以上的阶层型神经网络。典型的多层感知网络是三层、前馈的阶层网络(图4.1),即:输入层、隐含层(也称中间层)、输出层,具体如下:
图4.1 三层BP网络结构
(1)输入层
输入层是网络与外部交互的接口。一般输入层只是输入矢量的存储层,它并不对输入矢量作任何加工和处理。输入层的神经元数目可以根据需要求解的问题和数据表示的方式来确定。一般而言,如果输入矢量为图像,则输入层的神经元数目可以为图像的像素数,也可以是经过处理后的图像特征数。
(2)隐含层
1989年,Robert Hecht Nielsno证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射。增加隐含层数虽然可以更进一步的降低误差、提高精度,但是也使网络复杂化,从而增加了网络权值的训练时间。误差精度的提高也可以通过增加隐含层中的神经元数目来实现,其训练效果也比增加隐含层数更容易观察和调整,所以一般情况应优先考虑增加隐含层的神经元个数,再根据具体情况选择合适的隐含层数。
(3)输出层
输出层输出网络训练的结果矢量,输出矢量的维数应根据具体的应用要求来设计,在设计时,应尽可能减少系统的规模,使系统的复杂性减少。如果网络用作识别器,则识别的类别神经元接近1,而其它神经元输出接近0。
以上三层网络的相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接,连接强度构成网络的权值矩阵W。
BP网络是以一种有教师示教的方式进行学习的。首先由教师对每一种输入模式设定一个期望输出值。然后对网络输入实际的学习记忆模式,并由输入层经中间层向输出层传播(称为“模式顺传播”)。实际输出与期望输出的差即是误差。按照误差平方最小这一规则,由输出层往中间层逐层修正连接权值,此过程称为“误差逆传播”(陈正昌,2005)。所以误差逆传播神经网络也简称BP(Back Propagation)网。随着“模式顺传播”和“误差逆传播”过程的交替反复进行。网络的实际输出逐渐向各自所对应的期望输出逼近,网络对输入模式的响应的正确率也不断上升。通过此学习过程,确定下各层间的连接权值后。典型三层BP神经网络学习及程序运行过程如下(标志渊,2006):
(1)首先,对各符号的形式及意义进行说明:
网络输入向量Pk=(a1,a2,...,an);
网络目标向量Tk=(y1,y2,...,yn);
中间层单元输入向量Sk=(s1,s2,...,sp),输出向量Bk=(b1,b2,...,bp);
输出层单元输入向量Lk=(l1,l2,...,lq),输出向量Ck=(c1,c2,...,cq);
输入层至中间层的连接权wij,i=1,2,...,n,j=1,2,...p;
中间层至输出层的连接权vjt,j=1,2,...,p,t=1,2,...,p;
中间层各单元的输出阈值θj,j=1,2,...,p;
输出层各单元的输出阈值γj,j=1,2,...,p;
参数k=1,2,...,m。
(2)初始化。给每个连接权值wij、vjt、阈值θj与γj赋予区间(-1,1)内的随机值。
(3)随机选取一组输入和目标样本
(4)用输入样本
基坑降水工程的环境效应与评价方法
bj=f(sj) j=1,2,...,p (4.5)
(5)利用中间层的输出bj、连接权vjt和阈值γt计算输出层各单元的输出Lt,然后通过传递函数计算输出层各单元的响应Ct。
基坑降水工程的环境效应与评价方法
Ct=f(Lt) t=1,2,...,q (4.7)
(6)利用网络目标向量
基坑降水工程的环境效应与评价方法
(7)利用连接权vjt、输出层的一般化误差dt和中间层的输出bj计算中间层各单元的一般化误差
基坑降水工程的环境效应与评价方法
(8)利用输出层各单元的一般化误差
基坑降水工程的环境效应与评价方法
(9)利用中间层各单元的一般化误差
基坑降水工程的环境效应与评价方法
(10)随机选取下一个学习样本向量提供给网络,返回到步骤(3),直到m个训练样本训练完毕。
(11)重新从m个学习样本中随机选取一组输入和目标样本,返回步骤(3),直到网路全局误差E小于预先设定的一个极小值,即网络收敛。如果学习次数大于预先设定的值,网络就无法收敛。
(12)学习结束。
可以看出,在以上学习步骤中,(8)、(9)步为网络误差的“逆传播过程”,(10)、(11)步则用于完成训练和收敛过程。
通常,经过训练的网络还应该进行性能测试。测试的方法就是选择测试样本向量,将其提供给网络,检验网络对其分类的正确性。测试样本向量中应该包含今后网络应用过程中可能遇到的主要典型模式(宋大奇,2006)。这些样本可以直接测取得到,也可以通过仿真得到,在样本数据较少或者较难得到时,也可以通过对学习样本加上适当的噪声或按照一定规则插值得到。为了更好地验证网络的泛化能力,一个良好的测试样本集中不应该包含和学习样本完全相同的模式(董军,2007)。
四、遗传神经网络识别原理
4.3.1 遗传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,这样选取的函数允许这个算子在算法的开始阶段一致搜索整个空间,而在算法的后阶段进行局部搜索。
储层特征研究与预测
式中: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的学习过程实际上是连接权的重组优化过程,因此在保持网络结构的前提下,寻找一种能使连接权达到最优组合的学习方法,具有一定的实际意义。
利用GA的优点来克服BP算法收敛慢和易局部收敛的缺陷,同时与BP算法的结合,也解决了单独利用GA往往只能在短时间内寻找到接近最优解的近优解这一问题,引入BP算法的梯度信息将会避免这种现象。GA与BP算法可以有多种不同的组合方法:
先BP后GA:先用BP培训一个预先选定结构的ANN(人工神经网络)直到平均误差不再有意义地减少时为止,然后在此基础上再用GA进行若干代的优化。重复进行这样的搜索,直到误差范围达到满意的要求或者发现搜索不收敛为止。这种组合方法的基本思想是先用BP确定使误差函数取极小值的参数组合在参数空间的位置,再利用GA摆脱掉可能的局部极小。应用这种组合必须事先选定ANN的结构。即只能用它确定ANN的连接权重。显然,如果事先选择的ANN结构不合理或有关的参数(如学习率等)不合适,可能会导致搜索不收敛。
先GA后BP:先用GA反复优化描述ANN模型的参数组合,直到适应函数的平均不再有意义地增加为止。在此基础上再用 BP算法对它们进行优化。这种组合方法的基本思想是先用GA粗选ANN模型,再用 BP算法精细与优化。这种组合方法的优点是通用性好,既可像前一组合方法那样用来优选指定结构下的部分参数,也可用来优选其他的参数,例如 ANN 的结构、学习率等,甚至还可用于优选它们的组合。
图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所示。
以上就是关于神经网络分类原理相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: