数学建模神经网络之算法_第1页
数学建模神经网络之算法_第2页
数学建模神经网络之算法_第3页
数学建模神经网络之算法_第4页
数学建模神经网络之算法_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实际应用问题 1、蠓虫的分类问题2、DNA序列分类问题3、癌症诊断问题一、引例一、引例 1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下: 翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af 1.90 1.38 Af 1.70 1.40 Af 1.82 1.48 Af 1.82 1.54 Af 2.08 1.56 Af 翼长 触角长 类别 1.78 1.14 Apf 1.96 1.18 Apf 1.86 1.20 Apf 1.72 1.24 Af 2.00 1.26 A

2、pf 2.00 1.28 Apf 1.96 1.30 Apf 1.74 1.36 Afo问:若抓到三只新的蚊子,它们的触角长和翼长分别为(1.24,1.80); (1.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类? 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示 得到的结果见图1 图1飞蠓的触角长和翼长 一、引例一、引例 1989年美国大学生数学建模问题 BP网络(Back-Propagation Network) 目前,在人工神经网络的实际应用中,决大部

3、分的神经网络模型是采用BP网络和它的变化形式。BP网络主要用于: 函数逼近 模式识别 分类 数据压缩 学习过程由信号的正向传播与反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符合时,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此信号作为修正各单元权值的依据。 BP算法的基本思想:x1x2xixn-1xny1y2yjymW1WkWlo1okol输入层隐层输出层隐层到输出层之间的权值矩阵:W = W1, W2, ,Wl

4、1、网络结构2、各层信号之间的数学关系输出层 ok = f (netk) , netk = j=0:mwjkyj , k = 1,2,l, 对隐层 yk = f (netj) , netj = i=0:nvijxi , j = 1,2,m, 传递函数一般用:f (x) = 1/ (1+exp(-x) (s型函数)误差函数: Eh = 0.5*(j=0:l(thj-ohj)2) , thj, ohj分别为期望输出和网络的实际输出。 MATLAB中有关BP网络的重要函数newff 创建前向BP网络格式:net = newff(PR,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF

5、) 其中:PR R维输入元素的R2阶最大最小值矩阵; Si 第i层神经元的个数,共N1层; TFi 第i层的转移函数,默认tansig; BTF BP网络的训练函数,默认trainlm; BLF BP权值/偏差学习函数,默认learngdm PF 性能函数,默认mse;(误差) MATLAB中有关BP网络的重要函数例如:net=newff(0 20;0 16;0 12;0 12;0 13,5 1, logsig purelin,traingdx);三层神经网络结构:中间层为5输出层为1输入层5维向量的取值范围训练函数转移函数(1)purelin 线性传递函数;(2)tansig 双曲正切S型(

6、sigmoid)传递函数;(3)logsig 对数S型(sigmoid)传递函数;1、转移函数:(1)(2)(3)1logsig( )1xxetansig( )xxxxeexee2、训练函数:trainlm Levenberg-Marquardt的BP算法训练函数;trainbfg BFGS拟牛顿BP算法训练函数;trainrp 具有弹性的BP算法训练;traingd 梯度下降是BP算法训练;traingda 梯度下降自适应lr的BP算法训练;traingdm 梯度下降动量的BP算法训练;traingdx 梯度下降动量和自适应lr的BP算法训练; 如果对神经网络的输入、输出数据进行一定的预处理

7、,可以加快网络的训练速度。有三种方法: 1)归一化 将每组数据都变为-1至1之间的数,matlab中有函数:premnmx,postmnmx,tramnmx算法: pn = 2*(p-minp)/(maxp-minp) - 1; 2)标准化 将每组数据变换为均值为0,方差为1的数,所涉及的函数有:prestd,posttd,trastd 3) 正交化 主成分分析也可以将数据进行正交处理,减少输入数据的处理,函数有:prepca,trapca.注意:数据预处理范例:DNA序列模式分类问题一、问题 假定已知两组人工已分类的DNA序列(20个已知类别的人工制造的序列),其中序列标号110 为A类,1

8、1-20为B类。要求我们从中提取已经分类了的DNA序列片段的特征和构造分类方法,并且还要衡量所用分类方法的好坏,从而构造或选择一种较好的分类方法。测试对象是20个未标明类别的人工序列(标号2140)和182个自然DNA序列。例如A类: a1=aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg;b1=gttagatttaacgttttttatggaatttatggaattataaatttaaaaatttatattttttagg

9、taagtaatccaacgtttttattactttttaaaattaaatatttatt;二、特征提取 序列中含有四个碱基a、g、t、c,反映该序列特征的方面主要有两个:1、碱基的含量,反映了该序列的内容; 统计a、g、t、c序列中分别出现的频率; 2、 碱基的排列情况,反映了该序列的形式;从字符出现的周期性来反映。统计三个字符出现的频率;在遗传学中每三个碱基的组合被称为一个密码子,如agg,att,ggc, cgg等,共有43=64个,还可以由密码子组成20个氨基酸。三、神经网络对DNA序列分类问题的应用 假定提取已知序列类别的三字符串,如agg,att,ggc, cgg,共有43=64

10、个,将它简化成只有5个:ttt, tta, ggc, cgg, gga。统计出任意一个DNA序列片段的5维向量,即每个特征字符串在序列中出现的频数作为分量。a1=aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg;编程统计出该片段的字符串( ttt, tta, ggc, cgg, gga)的频数分别为:(0,1,5,7,10)经过统计计算,得到已知类别的输入向量:p = 0 1 0 5 1 3 2 2 2 1 19 18 2

11、3 17 43 12 2 17 19 23; 1 2 0 4 1 1 1 4 0 1 13 15 13 11 9 9 2 14 12 7; 5 5 8 0 10 9 5 7 11 9 0 0 1 0 0 0 3 1 0 0; 7 10 16 2 11 9 6 5 8 6 0 0 0 1 0 0 3 2 0 0; 10 11 15 2 11 12 12 9 5 6 2 1 1 1 0 1 1 0 1 1;待判类别的输入向量:P = 9 2 3 13 3 15 3 10 3 2 6 5 9 2 2 2 2 16 2 18; 7 4 4 8 5 9 6 12 3 3 12 4 7 3 2 4 4 1

12、0 2 10; 0 0 4 1 5 0 2 1 7 0 2 2 0 4 2 1 3 1 2 1; 0 2 8 0 1 1 5 0 7 0 1 3 0 3 3 1 1 1 0 2; 2 3 9 1 2 1 8 1 5 0 2 1 1 5 4 1 3 1 1 2;由前20个已知类别的DNA序列片段可以构造出目标向量:t = 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0;1、应用感知器对DNA序列进行分类:(DNAper1.m)net=newp(0 1;0 1;0 1;0 1;0 1,1);net.adaptParam.passes=110net=adapt(net

13、,p,t);Y=sim(net,p) % 回代检验a=sim(net,P) % 对待判类别的序列进行分类A 类B 类a = 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0回代检验结果是100%的准确。待判序列的分类结果:A类:22,23,27,29,34,35,37;B类:21,24,25,26,28,30,31,32, 33,36,38,39,40;输出结果:a = 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0并附图形:获得数值分类结果:(DNAper.m)net=newp(0 1;0 1;0 1;0 1;0 1,1);net

14、.adaptParam.passes=110net=adapt(net,p,t);Y=sim(net,p) % 回代检验a=sim(net,P) % 对待判类别的序列进行分类输出结果:024681000.10.20.30.40.50.60.70.80.9110 EpochsTraining-Blue Goal-BlackPerformance is 0, Goal is 0.01误差曲线图2、应用BP网络对DNA序列进行分类:(DNAbp.m)net=newff(0 20;0 16;0 12;0 12;0 13,3 1,logsig purelin,traingdx);net.trainpar

15、am.show=100; %两次显示之间的训练步数net.trainparam.lr=0.5;net.trainparam.mc=0.8;net.trainparam.epochos=20000;net.trainparam.goal=0.01; %训练目标net,tr=train(net,p,t);Y=sim(net,p)a=sim(net,P)Y = 1.0436 1.0223 0.9879 0.6593 1.0348 1.0225 1.0364 1.0111 0.8835 0.9824 0.0079 0.0079 0.0077 0.0088 0.0077 0.0813 0.2153 0.0080 0.0080 0.0078a = 0.4215 0.7467 0.9664 0.0766 0.4305 0.0158 0.9113 0.1174 0.8094 0.1735 0.4612 0.5622 0.4323 0.8334 0.8310 0.4070 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论