1、第13章 神经网络应用实例编 者 Outline1.BP神经网络实现图像压缩 2.Elman网络预测上证股市开盘价 3.径向基网络预测地下水位 4.基于BP网络的个人信贷信用评估 5.基于概率神经网络的手写体数字识别 6.基于概率神经网络的柴油机故障诊断 7.基于自组织特征映射网络的亚洲足球水平聚类 1.BP神经网络实现图像压缩 BP神经网络实现图像压缩。依赖BP网络的非线性映射能力进行数据压缩 JPEG压缩基于小波变换的图像压缩算法 分形压缩编码 矢量量化压缩编码 采用BP神经网络对灰度图像进行压缩,在保证较好峰值信噪比(PSNR)的情况下,达到了较高的压缩比。常见的文件压缩软件如WinZi
2、p、WinRAR等采用的是无损压缩,能够完全恢复原文件内容。多媒体信息具有信息量大、冗余信息多的特点,往往采用有损压缩技术。1.根据大面积着色原理,图像必须在一定面积内存在相同或相似的颜色,对于人眼的观察来说才有意义,否则看到的只是杂乱无章的雪花。因此,图像中相邻象素间存在相似性,这样就产生了图像的预测编码。2.由于存在视觉的掩盖效应,因此人眼对于颜色细节往往并不敏感。图像信息上的微小损失往往是无法感知或可以接受的,这样就提供了广阔的压缩空间 3.数据都存在统计上的冗余,如在某一幅描绘海洋的图像中,蓝颜色出现的频率可能远高于红颜色,通过去除统计上的冗余同样可以实现压缩。1.BP神经网络实现图像
3、压缩 BP神经网络用于压缩:只采用一个隐含层,因此整体构成了一个三层的网络。把一组输入模式通过少量的隐含层单元映射到一组输出模式,并使输出模式尽可能等于输入模式。因此,隐含层神经元的值和相应的权值向量可以输出一个与原输入模式相同的向量。当隐含层的神经元个数较少时,就意味着隐含层能用更少的数来表现输入模式,而这,实际上就是压缩 。1.BP神经网络实现图像压缩 第一层为输入层,中间层为隐含层,网络的映射功能依赖隐含层实现。输入层到隐含层的变换相当于压缩的编码过程;而从隐含层到输出层的变换则相当于解码过程 1.BP神经网络实现图像压缩 输入层和输出层均由M个神经元组成,隐含层包含K个神经元。网络对数
4、据进行压缩编码,保存在隐含层,再由隐含层输出到下一层 1.BP神经网络实现图像压缩 假设输入图像为像素N*N大小,被细分为多个n*n的图像块。如果将图像块中每一个像素点与一个输入或输出神经元相对应 网络随机地抽取图像中各n*n图像块作为学习模式,使用反向传播算法进行学习,通过调整网络中神经元之间的连接权值,使训练集图像的重建误差 E=f-g 的均值达到最小。1.BP神经网络实现图像压缩 1.BP神经网络实现图像压缩 图像块的划分 归一化。神经网络的输入样本一般都需要进行归一化处理,这样更能保证性能的稳定性。归一化可以使用mapminmax函数进行,考虑到图像数据的特殊性,像素点灰度值为整数,且
5、处于0-255之间,因此归一化处理统一将数据除以255即可。1.BP神经网络实现图像压缩 采用MATLAB神经网络工具箱的feedforwardnet函数创建BP网络,并指定训练算法。为了达到较好效果,采用LM训练法。保存结果。训练完成后,压缩的结果是每个输入模式对应的隐含层神经元向量的值,以及网络的权值和阈值。使用save命令保存为MAT文件1.BP神经网络实现图像压缩 解压。解压。使用load命令加载数据文件 数据反归一化 重建 图像反归一化 图像块恢复 运行bp_imageCompress.m进行压缩bp_imageRecon进行解压1.BP神经网络实现图像压缩 2.Elman网络预测上
6、证股市开盘价 采用Elman神经网络对上证指数开盘价进行预测,效率良好。选择2005年6月30日至2006年12月1日的上证开盘价进行预测分析。数据保存在elm_stock.mat文件中,共计337条开盘价格,保存为double类型的向量中 采用过去的股价预测下一期股价,因此相当于一个时间序列问题,可以用Elman神经网络求解。12,nnnn Nxf xxx 对于给定的337期开盘价数据,首先将其划分为训练样本和测试样本。以训练样本为例,抽取 组成第一个样本,其中 为自变量,为目标函数值;抽取 组成第二个样本,其中 为自变量,为函数值,以此类推,最终形成以下训练矩阵 1Nxx121,Nx xx
7、LNx21Nxx23,NxxxL1Nx1223111iiNNNNxxxxxxxxxxLLL2.Elman网络预测上证股市开盘价2.Elman网络预测上证股市开盘价(1)加载数据。(2)构造样本集(3)划分训练、测试样本。将前380份样本作为训练样本,最后51分样本作为测试样本 (4)创建Elman神经网络。MATLAB神经网络工具箱提供了newelm与elmannet函数,都可以建立Elman反馈网络。这里采用elmannet函数,它只需要三个参数,分别指定延迟、隐含层神经元个数和训练函数。(5)网络训练。先归一化再训练。(6)测试。进行测试时应使用归一化后的数据,得出实际输出后再将输出结果反
8、归一化为正常的数据。运行elm_stockpredict.m改变随机数种子,再次运行2.Elman网络预测上证股市开盘价3.径向基网络预测地下水位 地下水系统是一个复杂的非线性、随机系统。建立微分方程模型需要大量详尽的地下水文地质资料。这些实测数据往往很难获得。径向基函数网络训练速度快,具有很强的非线性映射能力,能够实现较高精度的地下水位预测。由于预测的值是地下水的水位,因此输出的结果是一个标量,故输出层的神经元节点个数为1。采用了影响水位深度的5个因素作为自变量,分别为河道流量、气温、饱和差、降水量与蒸发量,形成函数关系 12345,yf x x x x x MATLAB自带的神经网络工具箱
9、提供了newrb函数,可以创建一个径向基神经网络。在newrb函数创建的径向基网络中,隐含层的节点个数是不确定的。函数根据用户设置的误差目标,向网络中不断添加新的隐含层节点,并调整节点中心、标准差及权值,直到所得到的网络达到预期的误差要求。本例就使用newrb函数完成地下水水位的预测。3.径向基网络预测地下水位(1)定义样本数据。输入向量定义为5*24的矩阵,目标输出值为1*24行向量 (2)划分训练数据与测试数据。使用第6号至第24号样本训练得出模型,再对第1号至第5号样本进行检验。(3)为充分利用训练样本,对19份训练样本进行二维插值,将样本数量增加到100份(4)使用newrb函数创建径
10、向基神经网络。径向基网络需要若干参数,在这里设置误差容限为1e-8,扩散因子为22,最大神经元个数为101 (5)测试。使用创建完成的径向基网络模型对第1-5份样本进行测试 3.径向基网络预测地下水位测试结果3.径向基网络预测地下水位 对个人信用的评估方法主要分为定性评估和定量评估两种,前者主要根据信贷人员的主观判断,后者则根据个人客户的资料,利用评分卡和信用评分模型等工具进行分析。本实例采用BP神经网络,以已知用户信息及信用情况为训练样本,学习得出一个抽象模型,然后对新样本进行评估,正确率稳定在70%以上 对所有客户做二分类,只区分好和差好和差两种情况。数据采用德国信用数据库。德国信用数据库
11、由Hans Hofmann教授整理,包含1000份客户资料,每位客户包含20条属性,并给出了信用好或差的标注。4.基于BP网络的个人信贷信用评估原始数据保存在german.data文件中:经常账户状况、账户持续时间、贷款历史状况、贷款用途、贷款数额。使用MATLAB实现一个三层的BP神经网络。由于每个个人用户拥有24个属性,因此输入层包含24个神经元节点。该问题为针对信用好/差的二分类问题,因此输出层只包含一个神经元。隐含层的神经元个数与网络性能有关,需要通过实验确定 4.基于BP网络的个人信贷信用评估 (1)读入数据。(2)划分训练样本与测试样本。在全部1000份样本中,共有700份正例(信
12、誉好),300份负例(信誉差)。划分时取前350份正例和前150份负例作为训练样本,后350份正例和后150份负例作为测试样本。(3)样本归一化。使用mapminmax函数对输入样本进行归一化 (4)创建BP神经网络,并完成训练 (5)测试。BP网络输出值并不限定为1或2,而是一个实数,因此还需要将输出转换为整数。取1.5为阈值,小于该阈值的输出判为1(信用好),否则判为2(信用差)4.基于BP网络的个人信贷信用评估运行脚本credit_class.m测试20次的平均正确率为74.97%,最低正确率为73.4%,迭代次数均为3次 4.基于BP网络的个人信贷信用评估5.基于概率神经网络的手写体数
13、字识别 手写体数字属于光学字符识别(Optical Character Recognition,OCR)的范畴,但分类的分别比光学字符识别少得多,主要只需识别共10个字符。使用概率神经网络作为分类器,对64*64二值图像表示的手写数字进行分类,所得的分类器对训练样本能够取得100%的正确率,训练时间短,比BP神经网络快若干个数量级 。第一步是对图像进行预处理其次,将整张图像分割为单个数字图像,这也是数字识别的难点之一 对其进行特征提取。选择一个有效的分类器模型。这里采用概率神经网络 5.基于概率神经网络的手写体数字识别样本采用1000幅64*64的二值图像 5.基于概率神经网络的手写体数字识别
14、特征提取 获得了6维统计特征,与8维结构特征一起构成了一个长度为14的特征向量,用该特征向量代表每一幅数字图像 5.基于概率神经网络的手写体数字识别构造分类器概率神经网络 概率神经网络的判定边界接近于贝叶斯最佳判定面,网络的计算流程与最大后验概率准则极为类似。5.基于概率神经网络的手写体数字识别(1)数据输入。1000章图像被放在名为digital_pic的子目录中,其中数字i的第j张图像文件名为i_j.bmp,为三位宽度的整数。(2)特征提取。进行特征提取前进行去噪处理。特征提取的函数为Feature,bmp,flag=getFeature(A),该函数接受一个64*64二值矩阵输入,返回的
15、Feature为长度为14的特征向量 (3)模型训练。使用newpnn函数创建概率神经网络(4)测试部分。测试时,首先使用原有训练数据进行测试,再对读入的图像添加一定强度的噪声,观察算法的抗干扰性能。5.基于概率神经网络的手写体数字识别digital_rec.m5.基于概率神经网络的手写体数字识别6.基于概率神经网络的柴油机故障诊断 柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大。本例采用概率神经网络建立分类模型,采集柴油机振动信号作为输入,成功实现了故障有无的判断和故障类型的判断 柴油机故障诊断可以抽象对一种分类问题,有无故障的判断,是一种二分类问题,而具体故障类型的判断,
16、为多类分类问题。正确判断的关键在于选择合适的特征来描述柴油机的工作状况,以及选用合适的分类器将不同类别的样本分开。(1)特征选择。柴油机运行时包含丰富的特征信息,可以选择气压、油压、热力性能参数、振动参数等。本例采用振动时域信号作为特征信号 (2)分类器设计。这里采用概率神经网络来完成 5 6编号123456分类模式第一缸喷油压力过大第一缸喷油压力过小第一缸喷油器针阀磨损油路堵塞供油提前角提前正常状态 采集柴油机正常运转和5种故障模式下的振动信号,再对振动波形做统计学处理,得到能量参数、峰度参数、波形参数、裕度参数、脉冲参数和峰值参数,形成一个6维向量 123456,x x x x x xx收
17、集2份每种分类模式的样本,共计12份训练样本 用于柴油机故障诊断的概率神经网络模型包含12份输入样本,每个样本为6维向量,分类模式为6种,建立的概率神经网络结构(1)定义样本。每列为一个样本,训练样本为6*12矩阵,测试样本为6*6矩阵(2)样本归一化。使用mapminmax函数完成训练样本的归一化(3)创建网络模型。newpnn函数唯一的可调参数为平滑因子spread,在这里将其设置为1(4)测试。首先需要定义测试样本及其正确分类模式标签,然后将测试样本按与训练样本相同的方式进行归一化,最后将其输入到上一步创建的网络模型中 运行diagnose.m7.基于自组织特征映射网络的亚洲足球水平聚类
18、 中国男子足球队的比赛成绩一直牵动着广大球迷的心。很多人认定中国队已处于亚洲三流甚至末流水平 ;在亚洲地区的比赛中,中国队曾经有过不错的表现,但近年来接连遭遇惨败。在这样的背景下,有必要科学地统计亚洲各队的比赛数据,有说服力地给出各个国家男子足球的水平和实力 使用无监督学习的聚类方式。聚类不需要预先知道部分球队的水平和实力,只需要给定分类的类别数量,算法就会将所有样本按照相似性的原则划分成类。要获得较准确的聚类结果,关键在于选择恰当的样本特征。它回答了究竟选取什么样的指标才能正确反映球队的实力和水平的问题。要比较各国足球的发展水平,自然不能选择该国国内联赛的成绩,而应该将国际正式比赛中各球队的
19、表现纳入考虑范围。7.基于自组织特征映射网络的亚洲足球水平聚类(1)对于世界杯,如果打入决赛圈,则取其最终排名(132);没有进入决赛圈的,如果打入预选赛十强则编码为33,如果预选赛小组未出线则编码为43。(2)对于亚洲杯,如果取得四强,则取其最终排名(1-4);如果进入八强,则编码为5,如果进入16强则编码为9,如果预选赛未出线,则编码为17 7.基于自组织特征映射网络的亚洲足球水平聚类 球队2006年世界杯2010年世界杯2007年亚洲杯2011年亚洲杯中国434399日本28941韩国171533伊朗253329沙特阿拉伯283329伊拉克434315卡塔尔433395阿联酋433399
20、乌兹别克斯坦333354泰国4343917越南4343517阿曼4343917巴林333399朝鲜3332179印度尼西亚4343917澳大利亚162142(1)定义样本。聚类共涉及16个国家,每个国家的球队成绩用一个四维向量表示(2)创建网络。使用MATLAB神经网络工具箱中的selforgmap函数进行创建(3)网络训练。使用train函数对输入样本进行训练(3)测试。自组织网络的测试与有监督学习中的测试不同,在这里,训练数据与测试数据是一样的。将用于训练的矩阵输入到网络中,可以得出每一个样本的分类标签(4)显示聚类结果 运行football.m(1)亚洲一流。包含日本,韩国、澳大利亚。(
21、2)亚洲二流。包含伊朗、沙特阿拉伯、乌兹别克斯坦和巴林(3)三流,只有朝鲜一个国家。(4)四流。其余所有国家,包括中国、伊拉克、卡塔尔、阿联酋、泰国、越南、阿曼和印尼 设置不同的随机数种子,可以得到不同的结果。聚类中较为稳定的分法:(1)一流。日本,韩国,澳大利亚。(2)二流。伊朗、沙特阿拉伯、乌兹别克斯坦。(3)四流。泰国、越南、阿曼、印尼。其余国家基本都有上下浮动的趋势。卡塔尔、中国、阿联酋大致介于三流与四流之间;巴林介于二流与三流之间;朝鲜约为三流水平。通过以上分析,可以看出,中国队大致位于亚洲三流与四流之间,仅比越南、印度尼西亚等国高一个档次,这与近年来的国家大赛中的糟糕表现有关。要振兴足球,依然任重道远。谢谢大家!