神经网络作业2676吴戈林电子0901班.docx
《神经网络作业2676吴戈林电子0901班.docx》由会员分享,可在线阅读,更多相关《神经网络作业2676吴戈林电子0901班.docx(14页珍藏版)》请在冰豆网上搜索。
神经网络作业2676吴戈林电子0901班
神经网络原理及其应用
——基于BP人工神经网络的图像分割器
学校:
东北大学
班级:
电子信息工程0901班
姓名:
吴戈林
学号:
20092676
指导老师:
王斐
时间:
2012年12月
目录
人工神经网络3
一、特点与优势3
二、人工神经网络的主要研究方向4
三、人工神经网络的应用分析4
四、人工神经网络在图像分割中的应用7
1.问题概述7
2.基于BP人工神经网络的图像分割器8
2.1神经网络结构的确定9
2.2神经网络结构的改进9
2.3BP神经网络的图像分割基本训练9
2.4BP神经网络的针对性训练10
3.网络应用10
4.结论11
五、课程收获与感想11
六、参考文献12
人工神经网络
人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(ConnectionistModel),是对人脑或自然神经网络(NaturalNeuralNetwork)若干基本特性的抽象和模拟。
人工神经网络以对大脑的生理研究成果为基础的,其目的在于模拟大脑的某些机理与机制,实现某个方面的功能。
国际著名的神经网络研究专家,第一家神经计算机公司的创立者与领导人HechtNielsen给人工神经网络下的定义就是:
“人工神经网络是由人工建立的以有向图为拓扑结构的动态系统,它通过对连续或断续的输入作状态相应而进行信息处理。
”这一定义是恰当的。
人工神经网络的研究,可以追溯到1957年Rosenblatt提出的感知器模型(Perceptron)。
它几乎与人工智能——AI(ArtificialIntelligence)同时起步,但30余年来却并未取得人工智能那样巨大的成功,中间经历了一段长时间的萧条。
直到80年代,获得了关于人工神经网络切实可行的算法,以及以VonNeumann体系为依托的传统算法在知识处理方面日益显露出其力不从心后,人们才重新对人工神经网络发生了兴趣,导致神经网络的复兴。
目前在神经网络研究方法上已形成多个流派,最富有成果的研究工作包括:
多层网络BP算法,Hopfield网络模型,自适应共振理论,自组织特征映射理论等。
人工神经网络是在现代神经科学的基础上提出来的。
它虽然反映了人脑功能的基本特征,但远不是自然神经网络的逼真描写,而只是它的某种简化抽象和模拟。
一、特点与优势
人工神经网络的以下几个突出的优点使它近年来引起人们的极大关注:
(1)可以充分逼近任意复杂的非线性关系;
(2)所有定量或定性的信息都等势分布贮存于网络内的各神经元,故有很强的鲁棒性和容错性;
(3)采用并行分布处理方法,使得快速进行大量运算成为可能;
(4)可学习和自适应不知道或不确定的系统;
(5)能够同时处理定量、定性知识。
人工神经网络的优越性,主要表现在三个方面:
第一,具有自学习功能。
例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。
自学习功能对于预测有特别重要的意义。
预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。
第二,具有联想存储功能。
用人工神经网络的反馈网络就可以实现这种联想。
第三,具有高速寻找优化解的能力。
寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。
二、人工神经网络的主要研究方向
神经网络的研究可以分为理论研究和应用研究两大方面。
理论研究可分为以下两类:
1).利用神经生理与认知科学研究人类思维以及智能机理。
2).利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能,如:
稳定性、收敛性、容错性、鲁棒性等;开发新的网络数理理论,如:
神经网络动力学、非线性神经场等。
应用研究可分为以下两类:
1).神经网络的软件模拟和硬件实现的研究。
2).神经网络在各个领域中应用的研究。
这些领域主要包括:
模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。
随着神经网络理论本身以及相关理论、相关技术的不断发展,神经网络的应用定将更加深入。
三、人工神经网络的应用分析
神经网络近来越来越受到人们的关注,因为它为解决大复杂度问题提供了一种相对来说比较有效的简单方法。
神经网络可以很容易的解决具有上百个参数的问题(当然实际生物体中存在的神经网络要比我们这里所说的程序模拟的神经网络要复杂的多)。
神经网络常用于两类问题:
分类和回归。
在结构上,可以把一个神经网络划分为输入层、输出层和隐含层(见图1)。
输入层的每个节点对应一个个的预测变量。
输出层的节点对应目标变量,可有多个。
在输入层和输出层之间是隐含层(对神经网络使用者来说不可见),隐含层的层数和每层节点的个数决定了神经网络的复杂度。
图1 一个神经元网络
除了输入层的节点,神经网络的每个节点都与很多它前面的节点(称为此节点的输入节点)连接在一起,每个连接对应一个权重Wxy,此节点的值就是通过它所有输入节点的值与对应连接权重乘积的和作为一个函数的输入而得到,我们把这个函数称为活动函数或挤压函数。
如图2中节点4输出到节点6的值可通过如下计算得到:
W14*节点1的值+W24*节点2的值
神经网络的每个节点都可表示成预测变量(节点1,2)的值或值的组合(节点3-6)。
注意节点6的值已经不再是节点1、2的线性组合,因为数据在隐含层中传递时使用了活动函数。
实际上如果没有活动函数的话,神经元网络就等价于一个线性回归函数,如果此活动函数是某种特定的非线性函数,那神经网络又等价于逻辑回归。
调整节点间连接的权重就是在建立(也称训练)神经网络时要做的工作。
最早的也是最基本的权重调整方法是错误回馈法,现在较新的有变化坡度法、类牛顿法、Levenberg-Marquardt法、和遗传算法等。
无论采用那种训练方法,都需要有一些参数来控制训练的过程,如防止训练过度和控制训练的速度。
图2 带权重Wxy的神经元网络
决定神经网络拓扑结构(或体系结构)的是隐含层及其所含节点的个数,以及节点之间的连接方式。
要从头开始设计一个神经网络,必须要决定隐含层和节点的数目,活动函数的形式,以及对权重做那些限制等,当然如果采用成熟软件工具的话,他会帮你决定这些事情。
在诸多类型的神经网络中,最常用的是前向传播式神经网络,也就是我们前面图示中所描绘的那种。
我们下面详细讨论一下,为讨论方便假定只含有一层隐含节点。
可以认为错误回馈式训练法是变化坡度法的简化,其过程如下:
前向传播:
数据从输入到输出的过程是一个从前向后的传播过程,后一节点的值通过它前面相连的节点传过来,然后把值按照各个连接权重的大小加权输入活动函数再得到新的值,进一步传播到下一个节点。
回馈:
当节点的输出值与我们预期的值不同,也就是发生错误时,神经网络就要“学习”(从错误中学习)。
我们可以把节点间连接的权重看成后一节点对前一节点的“信任”程度(他自己向下一节点的输出更容易受他前面哪个节点输入的影响)。
学习的方法是采用惩罚的方法,过程如下:
如果一节点输出发生错误,那么他看他的错误是受哪个(些)输入节点的影响而造成的,是不是他最信任的节点(权重最高的节点)陷害了他(使他出错),如果是则要降低对他的信任值(降低权重),惩罚他们,同时升高那些做出正确建议节点的信任值。
对那些收到惩罚的节点来说,他也需要用同样的方法来进一步惩罚它前面的节点。
就这样把惩罚一步步向前传播直到输入节点为止。
对训练集中的每一条记录都要重复这个步骤,用前向传播得到输出值,如果发生错误,则用回馈法进行学习。
当把训练集中的每一条记录都运行过一遍之后,我们称完成一个训练周期。
要完成神经网络的训练可能需要很多个训练周期,经常是几百个。
训练完成之后得到的神经网络就是在通过训练集发现的模型,描述了训练集中响应变量受预测变量影响的变化规律。
由于神经网络隐含层中的可变参数太多,如果训练时间足够长的话,神经网络很可能把训练集的所有细节信息都“记”下来,而不是建立一个忽略细节只具有规律性的模型,我们称这种情况为训练过度。
显然这种“模型”对训练集会有很高的准确率,而一旦离开训练集应用到其他数据,很可能准确度急剧下降。
为了防止这种训练过度的情况,我们必须知道在什么时候要停止训练。
在有些软件实现中会在训练的同时用一个测试集来计算神经网络在此测试集上的正确率,一旦这个正确率不再升高甚至开始下降时,那么就认为现在神经网络已经达到做好的状态了可以停止训练。
图3中的曲线可以帮我们理解为什么利用测试集能防止训练过度的出现。
在图中可以看到训练集和测试集的错误率在一开始都随着训练周期的增加不断降低,而测试集的错误率在达到一个谷底后反而开始上升,我们认为这个开始上升的时刻就是应该停止训练的时刻。
神经元网络和统计方法在本质上有很多差别。
神经网络的参数可以比统计方法多很多。
由于参数如此之多,参数通过各种各样的组合方式来影响输出结果,以至于很难对一个神经网络表示的模型做出直观的解释。
实际上神经网络也正是当作“黑盒”来用的,不用去管“盒子”里面是什么,只管用就行了。
在大部分情况下,这种限制条件是可以接受的。
比如银行可能需要一个笔迹识别软件,但他没必要知道为什么这些线条组合在一起就是一个人的签名,而另外一个相似的则不是。
在很多复杂度很高的问题如化学试验、机器人、金融市场的模拟、和语言图像的识别,等领域神经网络都取得了很好的效果。
神经网络的另一个优点是很容易在并行计算机上实现,可以把他的节点分配到不同的CPU上并行计算。
在使用神经网络时有几点需要注意:
第一,神经网络很难解释,目前还没有能对神经网络做出显而易见解释的方法学。
第二,神经网络会学习过度,在训练神经网络时一定要恰当的使用一些能严格衡量神经网络的方法,如前面提到的测试集方法和交叉验证法等。
这主要是由于神经网络太灵活、可变参数太多,如果给足够的时间,他几乎可以“记住”任何事情。
第三,除非问题非常简单,训练一个神经网络可能需要相当可观的时间才能完成。
当然,一旦神经网络建立好了,在用它做预测时运行时还是很快得。
第四,建立神经网络需要做的数据准备工作量很大。
一个很有误导性的神话就是不管用什么数据神经网络都能很好的工作并做出准确的预测。
这是不确切的,要想得到准确度高的模型必须认真的进行数据清洗、整理、转换、选择等工作,对任何数据挖掘技术都是这样,神经网络尤其注重这一点。
比如神经网络要求所有的输入变量都必须是0-1(或-1--+1)之间的实数,因此像“地区”之类文本数据必须先做必要的处理之后才能用作神经网络的输入。
综上所述,人工神经网络应用的领域非常之广,前景也十分光明。
下面列举人工神经网络在图像分割中的应用实例。
四、人工神经网络在图像分割中的应用
摘要:
图像分割是图像处理和计算机视觉的重要研究领域,也是图像识别和图像分析的基础性工作之一。
图像分割效果的好坏直接影响图像特征的提取、图像识别的精度。
BP人工神经网络在理论上具有实现任意非线性映射的能力,具有自学习、自适应及鲁棒性强的特点,在模式识别、模式分类和模糊控制等领域得到广泛应用。
作者将BP人工神经网络成功地运用于印鉴图像分割、车牌号码图像的分割等工作中,取得了良好的图像分割效果。
关键词:
BP神经网络,神经元,图像分割,图像识别
多层前向反馈式神经网络是目前应用比较广泛的人工神经网络,其中BP(BackPropagationnetwork,简称BP网络)学习算法是最著名的多层前向反馈式神经网络训练算法之一。
该算法在图像处理和图像识别领域已经取得令人瞩目的成就,其主要思想是利用已知确定结果的样本模式对网络进行训练,然后利用训练好的网络进行图像的处理或识别[1]。
然而,由于BP的训练是/导师监督0的学习,最终的输出结果往往与训练样本的特征、网络结构等因素密切相关。
当网络结构确定时,训练样本输入模式的相关性往往会导致网络内某些神经元总是处于/获胜0状态,而其他神经元成为/死点0[1],使得神经元网络的模式不能得到充分利用,从而导致图像分割的失败。
分析其原因,首先是输入模式中,某些输入节点输入的数值远远大于其他节点的数值,导致/大数吃小数0问题的出现;其次是部分代表重要特征的学习样本数量不足,导致相关的神经元连接权得不到充分的调整。
针对以上问题,作者根据BP网络的特性,采用了在输入层和隐藏层间增加归一化层,输出层后增加数值还原层的方法和采用针对性学习的方法,强化BP网络的训练,取得了满意的效果。
1.问题概述
从具有复杂背景和强烈噪声的图像中提取具有某些特征的目标图像,是进行图像分割的基本任务。
所谓图像分割是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。
借助集合概念对图像分割可给出如下比较正式的定义:
令集合R代表整个图像区域,对R的分割可看作将R分成N个满足下列5个条件的非空子集(子区域)R1,R2,,,RN;
其中P(R)是对所有在集合R中元素的逻辑谓词,ù代表空集。
传统的图像分割方法是基于R、G、B阈值法来判断该点是否为目标像素点。
由于噪声和背景的干扰,往往不能取得质量良好的目标图像。
利用BP网络解决类似问题时,首先是对BP网络进行训练,然后将网络应用于图像分割。
BP网络在分割图像时,本质上是将待处理图像中的各点聚类为目标像素和非目标像素。
正确聚类后去除非目标像素,从而得到目标图像。
BP网络的训练过程就是修正各层神经元间的连接权系数的过程:
输入模式由输入层节点直接传送到隐藏层各节点上。
在隐藏层,经过各单元的特性为Sigmoid型函数转换后,作为下一层的输入信息。
该信息经过同样的转换,一直进行前传,直到从输出层输出响应信号。
该过程可以描述如下:
设一个具有Q层的BP人工神经网络(ArtificialNeuralNetwork,ANN),如图1所示。
其中第一层为输入层,第Q层为输出层,中间各层为隐藏层。
又设第q(q=1,2,3,,,Q)层的节点个数为nq,第q层的第i个神经元与第q-1层各神经元连接的各连接权系数为Xij。
节点i的输入为:
输出响应则为:
。
输出响应就与期望响应进行比较,得到误差信号Ep,该信号作为学习信号沿与前向路径相反的方向回传,同时逐层修改连接权系数,直到修正完所有层间的连接权系数,从而完成一个学习过程。
图3BP人工神经网络结构示意图
2.基于BP人工神经网络的图像分割器
由于BP网络具有高度非线性关系的映射能力,可实现M维欧氏空间(输入层单元数)到N维欧氏空间(输出层单元数)的任意映射[2]。
在图像分割中,就是实现由I维特征模式到O类分类结果的映射。
实际应用过程中更可以将分类结果简化为2类:
目标图像与非目标图像。
2.1神经网络结构的确定
输入层是数据的缓冲存储器,其作用是把数据源加载到网络上,节点数可以由图像特征向量的维数确定。
输出层节点数由类别数多少确定,图像分割中可以定为2,用以输出目标图像与非目标图像。
隐藏层的层数和节点数的选取有不同的观点,根据A.J.Maren等人的观点,只要单隐藏层的节点个数足够多,一个隐藏层即可达到多隐藏层的功能,接点数可以由公式(6)确定[5]:
J=(m+n)+a(6)
其中m为输入层节点个数,n为输出层节点个数,a为1~10之间的常数。
2.2神经网络结构的改进
在对神经网络进行训练的过程中,训练样本的原始数值变化范围可能非常大。
某些特定情况下,一个输入模式中最大值与最小值之间数值可能相差几千倍,如不进行归一化处理,便会产生/大数吃小数0的现象,严重影响样本对网络的训练效果。
因此,必须对输入模式进行归一化处理,使其变化返回限定在一定的数值范围内。
由此在输入层和隐藏层之间加入归一化层。
为了使输出结果与原始数值保持一致,在加入了归一化层之后,必须在输出层之后对应地加入一个数值还原层。
这样,传统的BP神经网络结构变成如图4所示。
图4改进的BP人工神经网络结构示意图
2.3BP神经网络的图像分割基本训练
对神经网络的训练就是利用已经明确分类结果的训练样本,将输入模式从输入层进入网络,经过网络计算,从输出层输出结果,然后将这个结果与实际值进行比较,得到误差信号作为导师信号,用以指导网络连接权重的改变。
在图像分割训练中,输入样本就是原始图像,期望输出就是目标图像。
具体计算时,根据不同的应用要求确定。
如以颜色特征为分割依据时,输入/输出各模式的各维数值确定原则如下:
(1)输入样本图像中各像素点的R、G、B值,各像素点周围8个相邻点的灰度值Gr,组成一个具有11维向量的输入模式,如下式:
I={R,G,B,GrL,GrLT,GrLB,GrT,GrB,GrR,GrRT,GrRB}式中:
R、G、B为像素的R、G、B颜色分量;GrL、GrB、GrT,,为与特定像素相邻的8个像素的灰度
值。
作者也实验过利用HSL颜色模型和CMYK颜色模型进行训练,训练次数和分割效果并无实质性差异。
(2)输出模式则为一维,取0或1(根据目标图像中各对应点的颜色情况定:
背景取0,前景取1)。
网络基本训练时,各输入、输出模式应用于网络计算。
当
总体误差E小于一定数值后,基本训练结束。
2.4BP神经网络的针对性训练
经过图像分割基本训练后的BP神经网络,图像的分割效果已经基本达到后续应用要求,但仍存在误分类的情况,如图5所示。
网络在分割红色印章时,错误地将黑色部分归类为目标图像。
误判的原因是这些像素点的R、G、B颜色各分量数值与红色印章区域内部分像素点差异非常小。
由于这些黑色像素点在输入样本图像中所占比例较小,网络训练时产生的误差对总体误差的影响也相对小,网络便忽略了对相关神经元间连接权系数的修改。
解决这类问题的有效方法就是在输入样本中有意识地增大误判色彩的比重,用以增大导师信号的强度,达到强化网络训练的目的。
本例中,作者在输入图像中手工绘制了大部分黑色区域,然后继续进行网络训练,取得了较为满意的效果。
3.网络应用
经过以上步骤训练过的BP神经网络,已经记忆了各种输入-输出模式之间的非线性映射关系。
待处理图像从网络输入层按训练时的输入模式进入网络,经过网络运算,便可从输出层获得满意的结果。
图6所示为应用BP神经网络分割原始图像中红色目标图像的效果,图7所示为应用BP神经网络分割不同背景颜色的车牌号码的效果。
可见,BP神经网络可以精确地将图像中具有某类或某几类颜色特征的像素点分割出来,效果非常明显。
图5BP神经网络进行基本训练后图像分割效果图
图6用BP神经网络对红色图像进行分割的效果图
图7用BP神经网络对车牌图像进行分割效果示例图
4.结论:
由于BP网络具有较强的泛化能力和鲁棒性,利用BP网络对图像中某类或某几类颜色进行聚类,可以获得良好的图像分割效果。
加强针对性的网络强化训练,是解决BP网络在学习过程中出现/死点0的有效方法。
本文利用J2ME技术在手机中开发了无线客户关系管理系统,将传统的客户关系管理系统扩展到无线应用领域,可以利用无线通信设备的便携性、时空局限性低等优势,扩展了客户关系管理系统的应用,应用前景非常广阔。
同时在MIDlet编程中,将视图、数据处理和业务流程控制分离,使得无线客户关系管理系统具有良好的可移植性和可扩展性。
五、课程收获与感想
经过半个学期将近2个月的学习,我对人工神经网络算法有了初步的认识。
人工神经网络包括早期的单层神经网络——感知机,后来的BP神经网络,径向基函数网络,Hopfeild网络等都有了一定的认识。
人工神经网络的重要意义在于它能能够处理一些非线性的问题,而自然界中大多数涉及到的问题都是非线性的,系统能够通过输入的数据进行自学习,不断矫正系统参数,使得输出结果不断趋近于真实值,也就是具有了类似于人类的学习能力。
但是由于数学知识的局限和部分专业课知识的遗忘,使得我对本门课的理解很大程度上停留于了解,而非掌握,这一点即是遗憾,也是契机,有了本门课程的学习,将来在进一步的研究和学习中就多了一条选择的道路。
因此,本门课程还是非常有用的。
上研究生后,我一定会更加牢固的掌握一些基础知识,争取能把人工神经网络这个宝藏活学活用。
六、参考文献
[1]JungK.Neuralnetwork-basedtextlocationincolorimages[J].PatternRecognitionLetters,2001,22(14):
1503-1528.
[2]ZhuHong,ZhangXiao,TaniguchiK.Amethodofbinalizationforrenalimagesusingtheself-organizedneuralnetwork[J].TransIEEofJapan,1998,118(9):
1397-398.
[3]袁曾任.人工神经元网络及其应用[M].北京:
清华大学出版社,1999:
187-193.
[4]何勇,项利国.基于模糊聚类的BP神经网络模型研究与应用[J].系统工程理论与实践,2004,18(13):
245-249.
[5]郭红霞.BP神经网络研究应用[J].计算机工程与应用,2007,43(20):
238-240.
[6]胡守仁,于少波.神经网络导论[M].北京:
国防科技大学出版社,2007:
178-180.
[7]SimonHaykin.神经网络与机器学习[M].北京:
机械工业出版社,2011.3:
289-292.
[8]郭磊,许勇,景丽.Oracle11g中文版数据库管理应用与开发基本教程[M].北京:
清华大学出版社,2009.5:
56-58.
[9]Gill,R.Neuralnetworkbasedsignalprocessing[M].London:
Macmilian,2009:
38-42.
[10]M.WGardner&S.R.Dorling.Artificialneuralnetworks–applicationintheimageprocessing[C].EngineeringVol132.No.14/15(1998):
2672-2683.