神经网络
- 格式:docx
- 大小:173.59 KB
- 文档页数:6
BP神经网络介绍
一、什么是BP神经网络
BP神经网络(Back Propagation Neural Network),简称BP网络,是一种多层前馈神经网络。
它对神经网络中的数据进行反向传播,以获得
最小化计算误差的参数,进而得到最终的分类结果。
一般来说,BP网络
由输入层、隐藏层和输出层组成,输入层将输入数据传递给隐藏层,隐藏
层再将这些数据传递给输出层,最终由输出层输出最终的类别结果。
BP网络的运算原理大致可以分为三个步骤:前向传播、误差反向传
播和参数调整。
在前向传播阶段,BP网络从输入层开始,将输入数据依
次传递给各个隐藏层,并将这些数据转化为输出结果。
在误差反向传播阶段,BP网络从后面向前,利用误差函数计算每层的误差,即:将误差从
输出层一层一层向前传播,以计算各层的权值误差。
最后,在参数调整阶段,BP网络以动量法更新网络中的权值,从而使网络更接近最优解。
二、BP神经网络的优缺点
1、优点
(1)BP神经网络具有非线性分类能力。
BP神经网络可以捕捉和利用
非线性的输入特征,从而进行非线性的分类。
(2)BP神经网络可以自动学习,并能够权衡它的“权衡”参数。
深度学习神经网络逼近非线性函数深度研究神经网络是一种强大的机器研究模型,被广泛应用于各个领域,包括图像识别、自然语言处理等。
它通过多层神经元来建模复杂的非线性函数关系,可以实现对非线性函数的逼近。
神经网络基础神经网络由输入层、隐藏层和输出层组成。
输入层接收输入数据,隐藏层负责对输入进行加工和提取特征,输出层则生成最终的预测结果。
每个神经元在隐藏层和输出层都会进行激活函数的运算,将线性变换后的结果转化为非线性的输出。
非线性函数逼近深度研究神经网络能够逼近非线性函数的原因在于其多层结构。
每一层的神经元都可以研究到不同级别的特征表示,通过多层的组合与堆叠,神经网络能够模拟和逼近非常复杂的非线性函数。
激活函数的重要性激活函数是神经网络中非常重要的组成部分,它引入了非线性因素,使得神经网络能够处理非线性问题。
常见的激活函数有Sigmoid函数、ReLU函数等,它们可以将线性变换的结果映射到非线性的输出,增强神经网络的表达能力。
深度研究的训练深度研究神经网络的训练过程通常使用反向传播算法。
该算法通过计算实际输出与期望输出之间的误差,然后根据误差调整神经网络的权重和偏置,以逐渐提高网络的预测准确性。
通过反复迭代训练,神经网络可以逐渐优化和逼近目标非线性函数。
应用领域深度研究神经网络广泛应用于图像识别、语音识别、自然语言处理等领域。
例如,在图像识别中,神经网络可以通过研究大量图像样本来识别物体、人脸等;在自然语言处理中,神经网络可以对文本进行分类、情感分析等任务。
深度研究神经网络的强大逼近能力使得它在这些领域具有很高的应用价值。
结论深度学习神经网络通过多层神经元和非线性激活函数的组合,能够逼近非线性函数。
它是一种强大的机器学习模型,在各个领域都有广泛的应用。
随着深度学习技术的不断发展,我们相信神经网络将会在更多领域展现出强大的能力和应用前景。
神经网络的激活函数
有sigmoid函数、tanh函数、ReLU函数、Leaky ReLU函数、maxout函数等。
1、Sigmoid函数:Sigmoid函数是一种非线性激活函数,用于计算神经元的输出值。
它将实数映射到0,1之间,保证输出结果为概率值。
sigmoid函数可以把任意大小的实数压缩到0,1之间,使神经网络模型具有较低的参数,更快地收敛。
2、tanh函数:tanh函数(双曲正切函数)也是一种常用的非线性激活函数,它把实数从-1到1之间。
tanh函数也可以把任意大小的实数压缩到-1,1之间,使神经网络模型具有较低的参数,更快地收敛。
和sigmoid函数相比,tanh函数的反向传播梯度较大。
3、ReLU函数:ReLU函数是目前最常用的激活函数,由英国牛津大学提出。
ReLU 函数把实数从0到正无穷。
当输入x大于0时,输出为x,当输入x小于或等于0时,输出为0。
ReLU函数的优点是计算简单,计算量小,反向传播较快,可以有效避免梯度爆炸和梯度消失的问题,但是它有一个缺点在输入小于0的情况下反向传播的值为0,可能导致神经元的死亡。
4、LeakyReLU函数:LeakyReLU函数是一种改进版的ReLU函数,它在输入小于0时,输出带有一个非零斜率值,以此来避免ReLU函数导致的神经元死亡问题。
5、Maxout函数:Maxout函数是由Google DeepMind团队提出的一种激活函数,它可以理解为一个比ReLU函数更好的激活函数。
Maxout函数的输出结果为输入列表中的最大值,它在神经网络中代替常见的激活函数,可以显著地提高网络性能。
卷积神经网络与循环神经网络卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)是目前深度学习领域最为流行的两种神经网络架构。
它们分别适用于不同的数据类型和任务,能够有效地处理图像、语音、文本等各种形式的数据。
一、卷积神经网络卷积神经网络是一种专门用于处理格状数据(如图像)的神经网络模型。
它的核心思想是利用卷积操作对输入数据进行特征提取,然后通过池化操作减小特征图的尺寸,最后将提取到的特征输入全连接层进行分类或回归。
卷积神经网络的结构主要包括卷积层、池化层和全连接层。
1.1卷积层卷积层是卷积神经网络的核心组件,它通过卷积操作对输入数据进行特征提取。
卷积操作是指使用一个滤波器(也称为卷积核)在输入数据上进行滑动计算,得到对应位置的输出。
滤波器的参数是在训练过程中通过反向传播算法学习得到的。
在图像处理中,卷积操作可以帮助提取图像中的边缘、纹理、角点等特征。
卷积层一般会使用多个不同的滤波器,从而提取多个不同的特征。
1.2池化层池化层是利用池化操作对卷积层的输出进行降采样,从而减小特征图的尺寸。
常见的池化操作有最大池化和平均池化。
最大池化是保留每个区域内的最大值作为输出,平均池化是计算每个区域内的平均值作为输出。
池化操作的目的是减少计算复杂度和减小过拟合。
1.3全连接层全连接层是卷积神经网络的最后一层,它将池化层的输出作为输入进行分类或回归。
全连接层的每个神经元都与上一层的所有神经元相连,输出一个标量值。
全连接层通常使用一种称为softmax的函数将输出转化为概率分布,再根据不同任务进行相应的损失函数计算和优化。
卷积神经网络通过共享权重和局部感知野的设计,大大减少了模型参数的数量,同时也能够保留输入数据的局部结构特征。
这使得卷积神经网络在图像识别、目标检测、语义分割等计算机视觉任务中取得了很大的成功。
二、循环神经网络循环神经网络是一种专门用于处理序列数据(如语音、文本)的神经网络模型。
神经网络的结构和功能神经网络是一种受到高度关注的人工智能技术,它具有仿真人脑神经系统的特点。
神经网络的结构是由多个人工神经元互相连接组成的,其复杂的结构和强大的计算能力,使得神经网络在图像识别、自然语言处理、机器翻译、语音识别等领域都有广泛的应用。
神经网络的结构神经元是神经网络的基本元素,它是与生物神经元相似的模型。
神经元接收输入信号,经过处理后,产生输出信号,输出信号可以被后续的神经元再次接收作为输入。
神经元之间通过连接互相联系,这种连接称为突触,突触上存储着权值,权值反映了神经元之间的关系强度。
神经网络的结构由多个层次组成,包括输入层、隐藏层和输出层。
其中输入层接受外部信号,隐藏层和输出层都是一组神经元的集合。
输入层输入层是神经网络的第一层,它负责接收外界输入信号。
例如,在图像识别中,输入层可以接收图像的像素点矩阵,认为图像每个像素点对应一个神经元。
隐藏层隐藏层是神经网络中的中间层,它在输入层和输出层之间,可以有多个隐藏层。
每个隐藏层的输出作为下一个隐藏层或输出层的输入,隐藏层的位置和数量都可以根据模型需要进行调整。
隐藏层的主要作用是对输入层的信息进行处理、学习并提取数据特征,因此有时也称为特征层。
输出层输出层是神经网络的最后一层,负责输出神经网络的预测结果。
例如,在图像识别任务中,输出层可以输出具体是哪个图片类别,如“狗”、“猫”等。
输出层的大小和神经元个数取决于问题类型,每个神经元的输出表示相应类别的概率。
神经网络的功能神经网络通过对大量样本的学习来提高对数据的解析能力,从而实现各种复杂任务。
神经网络的功能可以分为图像识别、自然语言处理、机器翻译、语音识别等多个领域。
图像识别图像识别技术是神经网络应用的主要领域之一。
通过将图像像素点作为输入层的神经元,在隐藏层中进行特征提取和学习,最终输出层给出图像的识别结果。
目前常用的神经网络模型包括CNN、ResNet等。
自然语言处理自然语言处理是指将人类的自然语言转换为计算机可以理解和处理的形式。
神经网络的发展历程神经网络作为一种模拟大脑工作方式的计算机技术,可以用来识别图像、语音、自然语言等各种数据,被广泛应用于机器学习、深度学习等领域。
神经网络的发展历程可以追溯到上个世纪初期,下面我们来看一下其发展的历程。
一、早期神经网络神经网络的早期基础可以追溯到1940年代,当时神经科学家McCulloch和Pitts提出了一个简单的神经元模型,即McCulloch-Pitts神经元模型。
这个神经元模型可以接收多个输入,并以非线性的方式进行计算(通常是采用阈值函数),将计算结果输出。
1958年,美国心理学家Frank Rosenblatt发布了第一个可以自我训练的人工神经元模型,即感知机(Perceptron)。
感知机可以接收多个输入信号,并以加权的形式对其进行计算,当计算结果超过阈值时,激活输出。
感知机使用了反向传播算法(Backpropagation)来进行误差的反馈和权重的学习,从而达到了自我训练的目的。
感知机受到了广泛的关注和应用,被誉为“神经网络之父”。
二、神经网络的低谷期1970年代,神经网络遭遇了一次挫折。
当时,美国计算机科学家Marvin Minsky和Seymour Papert发表了《逆境的心理学》一书,批判了感知机模型的局限性,认为它只能用来解决线性可分问题,无法处理非线性问题。
这导致了神经网络的低谷期,研究者们转而研究其他机器学习算法,比如决策树、支持向量机等。
三、神经网络的复兴1980年代,随着计算机技术的进步和神经网络理论的不断完善,神经网络再次引起了广泛的关注。
美国加州大学教授David Rumelhart和Geoffrey Hinton等人提出了BP神经网络模型,该模型可以用来解决非线性问题,并在OCR、语音识别等领域取得了成功。
1990年代,Radial Basis Function(RBF)神经网络、自组织神经网络(Self-Organizing Neural Network,SONN)等模型相继被提出。
神经元与神经网络有何关系在探索人类大脑和现代计算机科学的奥秘时,神经元和神经网络是两个经常被提及的关键概念。
要理解它们之间的关系,我们首先得分别了解一下神经元和神经网络到底是什么。
神经元,简单来说,就像是我们身体里的一个个小信使。
它是构成神经系统的基本单位,形状各异,但通常都有一个细胞体,还有像树枝一样伸展开的树突以及一条长长的轴突。
细胞体是神经元的核心部分,里面包含了细胞核和各种细胞器,就像是一个小小的控制中心。
树突则负责接收来自其他神经元的信号,而轴突则像是一条长长的输出通道,把神经元产生的信号传递给其他神经元或者效应细胞。
那神经网络又是什么呢?想象一下,无数个这样的神经元连接在一起,形成了一个复杂的网络,这就是神经网络。
它不是像我们常见的那种有形的网络,比如蜘蛛网或者交通网络,而是一种由神经元之间相互连接所形成的信息传递和处理的系统。
神经元与神经网络的关系,可以说是个体与整体的关系。
每一个神经元都是神经网络这个庞大系统中的一个基本组成部分。
单个神经元的功能相对有限,但是当它们以特定的方式连接在一起形成神经网络时,就能够实现非常复杂的功能,比如感知、思考、学习和记忆等。
神经元之间的连接方式对于神经网络的功能起着至关重要的作用。
这些连接并不是随机的,而是有着特定的模式和规律。
当一个神经元接收到来自其他神经元的信号时,它会根据这些输入信号的强度和组合方式来决定是否产生输出信号,以及输出信号的强度和频率。
这种信息的传递和处理过程在神经网络中不断地进行,从而实现了对各种信息的分析和处理。
神经网络的强大之处在于它的并行处理能力。
由于有大量的神经元同时工作,能够同时处理多个任务和信息,这使得神经网络在处理复杂问题时具有很高的效率。
比如说,当我们看到一个物体时,我们的大脑能够在瞬间识别出它是什么,这就是神经网络快速并行处理信息的结果。
而神经元的特性和功能也会影响神经网络的性能。
神经元的兴奋性、抑制性、可塑性等特性都会对神经网络的信息传递和处理产生影响。
神经网络与传统算法的比较研究神经网络和传统算法是当前人工智能领域中广泛使用的两种方法。
本文将比较这两种方法在不同场景下的优缺点。
一. 神经网络与传统算法的基本概念神经网络是由一系列的神经元(节点)构成的。
每个神经元可以接受来自其它神经元的输入,并产生一个输出。
神经网络的优点是能够识别模式,并在数据中找到有用的线索。
传统算法则是通过规则和逻辑来执行任务的。
传统算法在已经知道解决方案或规则的场景下运行良好。
二. 神经网络与传统算法的优缺点神经网络的优点是能够学习并预测未来的结果,能够在数据中找到有用的线索,且能够处理非线性问题。
而传统算法的优点是精度高、通用性强、易于调整、易于理解。
在某些情况下,传统算法可能比神经网络更加准确。
当需要对大量数据进行分类或者处理时,使用神经网络可能更好。
然而,当处理的数据规模较小或者问题比较简单时,传统算法的使用可能更为合适。
传统算法适用于已知解决方法的场景下,而神经网络可以发现新的模式和线索。
这一点使得神经网络适用于未知的问题。
三. 神经网络与传统算法的应用场景神经网络在图像、语音识别、机器翻译和自然语言处理等领域应用广泛。
神经网络能够通过大量的数据学习模式并对来自不同数据源的信息进行处理。
传统算法则在工业、金融和行政领域应用广泛。
传统算法常常被用来管理和处理数据。
传统算法处理大量金融数据的效率高,同时精度也非常高。
四. 神经网络与传统算法结合的发展方向神经网络和传统算法都有其优点和缺点。
然而,由于两种方法的不同之处,有些问题使用神经网络更加优秀,有些问题使用传统算法更加优秀。
因此,结合两种技术的优点是一种很有实际意义和探索性的研究方向。
结合神经网络和传统算法的方法被称为混合模型或者半监督学习。
这种方法可以通过将神经网络和传统算法的结果进行组合来提高准确性。
同时,还可以通过神经网络的未知模式和传统算法的已知规则来发现新的应用场景。
总之,神经网络和传统算法两种方法都有自己的优缺点和应用场景。
模糊神经网络简介模糊神经网络(FNN)是一种结合模糊逻辑和神经网络的方法,旨在处理模糊信息与不确定性。
该网络模拟人类大脑处理模糊信息的机制,能够有效地应对现实世界中的模糊问题。
模糊逻辑模糊逻辑是一种处理模糊性的数学工具,它引入了模糊集合和模糊运算,能够描述事物之间的模糊关系。
与传统的逻辑相比,模糊逻辑更符合人类认知过程,能够更好地处理模糊信息。
神经网络神经网络是一种由神经元和连接权重构成的计算模型,它能够通过学习不断优化权重,从而实现对输入数据的自适应建模。
神经网络在模式识别、预测和优化等方面表现出色。
模糊神经网络模糊神经网络将模糊逻辑和神经网络相结合,利用神经网络的自适应学习能力和模糊逻辑的模糊描述能力,有效地处理模糊信息。
FNN将模糊集合映射到神经网络,通过训练调整连接权重,实现对模糊规则的建模与推理。
FNN的特点•模糊描述能力:FNN能够处理模糊和不确定性信息,更适合于现实世界中的复杂问题。
•自适应学习:FNN可以根据输入数据进行权重调整,不断优化网络性能。
•非线性映射:FNN具有非线性映射能力,能够建模复杂的非线性关系。
•规则推理:FNN能够根据事先定义的模糊规则进行推理和决策。
应用领域模糊神经网络在诸多领域得到广泛应用: - 模糊控制:用于处理模糊和不确定性信息的系统控制。
- 模糊识别:用于模糊模式识别和特征提取。
- 模糊优化:用于解决模糊目标函数的优化问题。
- 模糊决策:用于模糊环境中的决策问题。
结语模糊神经网络作为模糊信息处理的有效工具,将模糊逻辑和神经网络的优势相结合,为处理现实世界中的复杂问题提供了一种全新的视角和方法。
随着人工智能技术的不断发展,模糊神经网络有望在更广泛的领域发挥重要作用。
神经网络控制系统(一)神经网络控制系统简介神经网络控制系统是一种基于人工神经网络算法的控制系统,它主要通过对数据的学习和分析,不断优化参数,最终实现对系统的有效控制。
神经网络控制系统由多个神经元构成,每个神经元具有一定的输入和输出,它们之间通过权值连接相互联系。
通过不断地输入训练数据,系统能够自我调整,进而快速、精确地完成控制任务。
(二)神经网络控制系统的基本特点1.自适应性神经网络具有非常高的自适应能力,能自动学习和适应复杂的系统结构和变化。
2.非线性神经网络能够处理高度非线性的系统,并且能够自适应地调整变量之间的关系。
3.分布式处理神经网络是由多个节点组成的分布式处理系统,能够实时地响应和处理输入。
4.模式识别神经网络能够对数据进行有效的分类和识别,并在数据发生变化时及时调整模型。
5.容错性神经网络由多个节点组成,如果某个节点发生故障,其他节点仍然可以正常工作,保证系统的稳定性和可靠性。
(三)神经网络控制系统的应用范围1.智能控制神经网络控制系统能够对复杂的系统进行智能控制,如机器人、工业自动化等。
2.数据处理神经网络控制系统能够对海量数据进行处理和分析,为数据挖掘和决策提供支持。
3.医疗诊断神经网络控制系统能够对医疗数据进行分析,辅助医生进行疾病的诊断和治疗。
4.金融风控神经网络控制系统能够对金融领域的数据进行分析,预测市场趋势和风险,并在投资决策方面提供支持。
5.交通运输神经网络控制系统能够对交通流量进行分析和控制,优化交通路线,减少拥堵和事故。
总之,随着人工智能和大数据技术的不断进步,神经网络控制系统将会在更多的领域得到应用,为我们的生活和工作带来更多的便利和效益。
差分进化的BP神经网络算法在入侵检测中的应用 雷涛 20093913293 华北水利水电学院
摘要:随着Internet的高速发展,入侵检测作为网络安全的一种主动防御技术也愈显重要。
而人工神经网络是一种基于大量神经元广泛互联的数学模型,具有自学习、自组织、自适应的特点。然而,普通神经网络应用于入侵检测依然存在误报率高、漏报等问题。针对这一问题,本文将基于差分进化的BP神经网络算法应用于入侵检测中,利用其算法的全局寻优能力,在较短的时间内提高网络的学习能力,降低误报率及漏报率。 关键词:入侵检测 差分进化算法 BP神经网络
1. 引言 随着在Internet 上开展的各种业务的迅速增加,为了保障信息安全,除了要进行信息的安全保护,还应该重视提高系统的入侵检测能力、系统的事件反应能力以及系统遭到入侵破坏后的快速恢复能力,对信息系统整个生命周期进行防御和恢复。入侵检测(Intrusion Detection)是一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害前发现和响应入侵[1][2]。 BP神经网络(Back Propagation Neural Network)是一种基本的反向传播算法,使用梯度最速下降搜索技术,按代数函数( 网络的实际输出的均方误差)最小的准则递归求解网络的权值和各节点的阈值。因此为了保证入侵检测的准确性,必须先收集具有代表性的数据训练出一个合适的神经网络,然后进行入侵检测以及最终的性能评估[3]。差分进化(Differential Evolution,DE)算法[4]有很强的全局最优能力,不需要借助问题的特征信息,并且收敛速度快。 本文通过将差分进化的BP算法应用于入侵检测中,提高入侵检测的学习能力,提高系统的检测能力,降低系统的误报率和漏报率。本文将在第二部分对入侵检测技术、BP神经网络的发展状况及概念(或算法)作简单介绍;在第三部分将对差分进化的BP算法作较详细的介绍,在将其算法应用于入侵检测中,得出其结合后的算法;第四部分将对算法进行简单的比较分析,并预测其结果。最后,对全文作一个简单的总结。
2. 相关概念及算法 2.1 入侵检测 1980年,James Anderson在为美国空军所做的技术报告《Computer Security Threat Monitoring and Surveillance 》中首次提出了入侵检测的概念,提出可以通过审计踪迹来检测对文件的非授权访问,并给出了一些基本术语的定义,包括威胁、攻击、渗透、脆弱性等等。 入侵检测可以分为两类:异常入侵检测(Anomaly Detection)和误用入侵检测(Misuse Detection)[5]。异常入侵检测是建立正常行为的特征规则库,若当前活动与规则库出现了偏差,则表明系统受到了入侵,其优点是能检测出新的入侵攻击,缺点是误报率高;误用检测主要用来检测己知的攻击类型,判别用户行为特征是否与攻击特征库中的攻击特征匹配。系统建立在各种已知网络入侵方法和系统缺陷知识的基础之上。这种方法由于依据具体特征库进行判断,所以检测准确度很高。主要缺陷在于只能检测已知的攻击模式,当出现针对新漏洞的攻击手段或针对旧漏洞的新攻击方式时,需要由人工或者其它机器学习系统得出新攻击的特征模式,添加到攻击特征库中,才能使系统具备检测新的攻击手段的能力[6]。
2.2 BP神经网络 BP(Back Propagtion)神经网络由Rumelhart,McClelland与1985年最早提出,实现了Minsky的多层网络设想,是一种多层网络的“逆推”学习算法,其学习过程由信号的正向传播和学习逆向反馈组成。BP神经网络的非线性拟合能力强,精度高,并且算法相对简单易懂,应用十分广泛。但同时BP算法也存在不足之处。国内外学者针对BP神经网络的不足进行许多改进。 BP神经网络是一种多层前向型、采用误差反向传播学习算法的神经网络[7],其结构如图1所示。它除了输入层和输出层之外,中间还有一层或多层隐层。误差反向传播法是最小
图1 BP神经网络结构图 均方算法的一种广义形式,BP算法使用梯度搜索技术,按代价函数最小的准则递归来求解网络的权值,代价函数为网络的实际输出和期待输出的均方误差。网络训练开始时,权值初始化为一组随机值,节点输出的期待值是预先规定的,当输入训练数据后,网络的代价函数可以计算出来,通过BP算法,误差逐层向输入层方向逆向传播,使网络不断自适应地修改网络权值,以减小代价函数值。 由于BP网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程,在网络结构较大时不仅计算时间长,而且很容易陷入局部极小点而得不到最优结果。目前虽已有改进BP算法、遗传算法(GA)和模拟退火算法等多种优化方法用于BP网络的训练(从原理上讲可以通过调整某些参数求的全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求的全局极小点[8]。
2.3 神经网络进行入侵检测分析的方法 神经网络进行入侵检测的处理过程主要包括两个阶段:第一阶段构造入侵分析模型的检测器,使用代表用户行为的历史数据进行训练,完成网络的构建和组装;第二阶段是入侵分析模型的实际运作阶段,网络接收输入的事件数据,与参考的历史行为相比较,判断出两者的相似度或偏离度。BP 神经网络是一种基本的反向传播算法,使用梯度最速下降搜索技术,按代数函数( 网络的实际输出的均方误差)最小的准则递归求解网络的权值和各节点的阈值。因此为了保证入侵检测的准确性,必须先收集具有代表性的数据训练出一个合适的神经网络,然后进行入侵检测以及最终的性能评估。
3 差分进化的BP网络算法 3.1 差分进化算法 差分进化算法(Differential Evolution,DE)[9]是一种基于群体差异的启发式随即搜索算法,该算法是Raincr Stom和Kenneth Price为求解切比雪夫多项式而提出的。其原理简单、受控参数少、鲁棒性强等特点。引起了越来越多的学者关注。近年来,DE在约束优化计算、聚类优化计算、非线性优化控制、神经网络优化、滤波器设计、阵列天线方向图综合峒及其它方面得到了广泛的应用。 DE采用实数编码方式,其算法原理与遗传算法较为相似主要包括变异、交叉和选择三个基本进化步骤。E算法中的选择策略通常为锦标赛选择,而交叉操作方式与遗传算法也大体相同,但在变异操作方面使用了差分策略,即:利用种群中个体间的差分向量对个体进行扰动,实现个体的变异。与进化策略(Es)采用Gauss或Cauchy分布作为扰动向量的概率密度函数不同,DE使用的差分策略可根据种群内个体的分布自动调节差分向量(扰动向量)的大小,自适应好;DE的变异方式,有效地利用了群体分布特性,提高了算法的搜索能力,避免了遗传算法中变异方式的不足。其基本步骤为:
1.初始化。生成由NP个个体组成的初始种群000012[,,...,]NPXxxx,种群维数为D,确定
变异算子F和交叉算子CR,确定最大进化数maxG,令0G。 2.对于第G代个体(1,2,...,)GixiNP,计算每个个体的适应度()GiPEx,并计算最优个体Gbestx。
3.变异。对于每个目标向量(1,2,...,)GixiNP,基本差分进化的变异向量产生如下: 123()GGGGirrvxFxx (1)
生成变异后的种群111112[],,...,GGGGNPvvvv。 4.交叉。为了增加干扰参数向量的多言性,引入交叉操作。向量变为(1,2,...,;1,2iNPjD 111112(,,...,)GGGGiiiiDuuuu 11(())()GGiijifrandbjCRorjrnbriuv
(2)
11(())()GGiijifrandbjCRorjrnbriux
(3)
式中,()randbj为产生一个[0,1]之间随机数发生器的第j个估计值;()(1,2,...,)rnbriD为一个随即选择的序列,用它来确保1Giu至少从1Giv获得一个参数。生成交叉后的种群
111112[,,...,]GGGGNPuuuu。
5.选择。为决定试验向量1Gu是否成为下一代中的成员,DE按照贪婪准则将试验向量与当前种群的目标向量Gix进行比较,生成第G+1代种群如下: 1 PP()GGGiiixxu (4)
GGiixx
otherwis (5)
111112[,,...,]GGGGNPuuuu
6. 1GG,重复步骤2到步骤5,直到满足算法的终止条件或maxGG。以上便是最基本的DE步骤。
3.2 差分进化的BP网络学习算法 差分进化算法在搜索过程中F取值在0到2之间的一个固定实数,因为F值比较难确定,所以这也成为了差分进化的一个缺点。若取值太大,最优解易遭到破坏,求出最优解的概率下降。若取值太小,种群的多样性低,就会出现“早熟”现象。文献[10]给出了相关变异因子和学习的算法。
maxmax(1),/()bFaebggg (6)
其中maxg为最大迭代次数,g为当前进化代数,a的取值在0.20.6之间。其差分进化的BP网络学习算法为: 步骤1:初始化BP网络隐层神经元个数s、最大迭代次数maxN、群体数目N、交叉概率CR、变异因子F。
步骤2:在问题域内依正态分布随即生成种群的参向量max(1,2,...,)GiXiG
max(1;;)ForGGGG { (1;,)ForiiNPi {