版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲:何仁斌实际应用问题 1、蠓虫的分类问题2、dna序列分类问题3、癌症诊断问题神经网络算法简介 感知器感知器(perceptron)是由美国科学家f.rosenblatt于1957年提出的,其目的是为了模拟人脑的感知和学习能力。感知器是最早提出的一种神经网络模型。它特别适合于简单的模式分类问题,如线性可分的形式。神经网络算法简介以两个输入的单层感知器神经元为例w(1,1)w(1,2)p(1)p(2)nabw 权重; b 阈值如果设 w(1,1)=-1,w(1,2)=2,b=1l-b/ w(1,2) -b/ w(1,1) wp+b0a=1 wp+b0a=0 单层感知器 多层感知器w(1,1)
2、w(1,2)p1p2na2b1b2n1a1n2a1b1w(2,1)w(2,2)111221212(),()af w pbafw ab性能指标:均方误差达到最小2( , )()minf w be ta涉及算法注意:单层感知器的局限性是:仅对线性可分问题具有分类能力。分类问题的matlab软件实现以蠓虫分类问题为例% 输入向量p=1.241.36 1.38 1.38 1.38 1.4 1.48 1.54 1.56 1.14 1.18 1.2 1.26 1.28 1.3; 1.72 1.74 1.64 1.82 1.9 1.7 1.82 1.82 2.08 1.78 1.96 1.86 2.0 2.
3、0 1.96;% 目标向量t=1 1 1 1 1 1 1 1 1 0 0 0 0 0 0;% 绘制输入向量plotpv(p,t);11.21.41.61.81.41.51.61.71.81.922.12.22.3vectors to be classifiedp(1)p(2)1)单层感知器w(1,1)w(1,2)p(1)p(2)nab% 建立一个感知器net=newp(0 3;0 3,1);% 绘制输入向量plotpv(p,t);e=1;% 初始化感知器net=init(net);linehandle=plotpc(net. iw 1,net. b 1);分类问题的matlab软件实现0.91
4、1.11.21.31.41.51.61.71.81.41.51.61.71.81.922.12.22.3vectors to be classifiedp(1)p(2)分类问题的matlab软件实现% 修正感知器网络while(sse(e) net,y,e=adapt(net,p,t); %返回学习后的网络,y是输出,e是误差 linehandle=plotpc(net. iw 1,net. b 1,linehandle); %分界线绘制函数 drawnow; %更新分界线end;% 利用训练好的感知器对未知类别样本进行分类p=1.24,1.28,1.4;1.8,1.84,2.04;a=sim
5、(net,p);plotpv(p,a);thepoint=findobj(gca,type,line);set(thepoint,color,red);hold on;plotpv(p,t);plotpc(net. iw 1,net. b 1);hold off;disp(end of percept)分类问题的matlab软件实现11.21.41.61.81.41.51.61.71.81.922.12.22.3vectors to be classifiedp(1)p(2)分类结果:afapf以上结果是图形化的结果,如下给出数值化的结果:mcfl1.mp=1.241.36 1.38 1.38
6、 1.38 1.4 1.48 1.54 1.56 1.14 1.18 1.2 1.26 1.28 1.3; 1.72 1.74 1.64 1.82 1.9 1.7 1.82 1.82 2.08 1.78 1.96 1.86 2.0 2.0 1.96;% 目标向量t=1 1 1 1 1 1 1 1 1 0 0 0 0 0 0;% 建立一个感知器net=newp(0 3;0 3,1);% 网络训练次数net.adaptparam.passes=100net=adapt(net,p,t); %返回自适应的神经网络% 输出仿真结果y=sim(net,p)% 利用训练好的感知器进行分类p=1.24,1.
7、28,1.4;1.8,1.84,2.04;a=sim(net,p)仿真结果:y = columns 1 through 11 1 1 1 1 1 1 1 1 1 0 0 columns 12 through 15 0 0 0 0a = 1 1 1准确率达到100%。 bp网络(back-propagation network) 目前,在人工神经网络的实际应用中,决大部分的神经网络模型是采用bp网络和它的变化形式。bp网络主要用于: 函数逼近 模式识别 分类 数据压缩 学习过程由信号的正向传播与反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际
8、输出与期望输出(教师信号)不符合时,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此信号作为修正各单元权值的依据。 bp算法的基本思想:x1x2xixn-1xny1y2yjymw1wkwlo1okol输入层隐层输出层隐层到输出层之间的权值矩阵:w = w1, w2, ,wl 1、网络结构2、各层信号之间的数学关系输出层 ok = f (netk) , netk = j=0:mwjkyj , k = 1,2,l, 对隐层 yk = f (netj) , netj = i=0:nvijxi , j = 1
9、,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) 其中:pr r维输入元素的r2阶最大最小值矩阵; si 第i层神经元的个数,共n1层; tfi 第i层的转移函数,默认tansig; btf bp网络的训练函数,默认trainlm; blf bp权值/偏差学习函数,默认lea
10、rngdm 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型(sigmoid)传递函数;(3)logsig 对数s型(sigmoid)传递函数;1、转移函数:(1)(2)(3)1logsig( )1xxetansig( )xxxxeexee2、训练函数:trainlm levenberg-m
11、arquardt的bp算法训练函数;trainbfg bfgs拟牛顿bp算法训练函数;trainrp 具有弹性的bp算法训练;traingd 梯度下降是bp算法训练;traingda 梯度下降自适应lr的bp算法训练;traingdm 梯度下降动量的bp算法训练;traingdx 梯度下降动量和自适应lr的bp算法训练; 如果对神经网络的输入、输出数据进行一定的预处理,可以加快网络的训练速度。有三种方法: 1)归一化 将每组数据都变为-1至1之间的数,matlab中有函数:premnmx,postmnmx,tramnmx算法: pn = 2*(p-minp)/(maxp-minp) - 1;
12、2)标准化 将每组数据变换为均值为0,方差为1的数,所涉及的函数有:prestd,posttd,trastd 3) 正交化 主成分分析也可以将数据进行正交处理,减少输入数据的处理,函数有:prepca,trapca.注意:数据预处理输入向量 p = 0 1 2 3 4 5 6 7 8 9 10;期望输出 t = 0 1 2 3 4 3 2 1 2 3 4;例:创建两层的bp网络:net = newff ( 0 10, 5 1, tansig, purelin );y = sim(net,p);plot(p,t,p,y,o)或net.trainparam.epochs = 50;net = tr
13、ain(net,p,t);y = sim(net,p);plot(p,t,p,y,o)y = -2.3431 -2.7532 -2.4510 -1.2784 -0.8590 -0.2981 0.2495 0.4811 1.0375 1.2268 1.4232t = 0 1 2 3 4 3 2 1 2 3 4; % 期望输出第一种情况的输出结果:0246810-3-2-101234误差很大!未训练,非线性映射能力差。y = -0.0019 1.0045 1.9896 3.0157 3.9637 3.1021 1.8175 1.2056 1.8322 3.1162 3.9551t = 0 1 2
14、3 4 3 2 1 2 3 4; % 期望输出第二种情况的输出结果:0246810-0.500.511.522.533.54思考:究竟误差有多大?修改程序:p = 0 1 2 3 4 5 6 7 8 9 10;t = 0 1 2 3 4 3 2 1 2 3 4;net = newff(0 10,5 1,tansig purelin);net.trainparam.show=50; %每次循环50次net.trainparam.epochs = 500; %最大循环500次net.trainparam.goal=0.01; %期望目标误差最小值net = train(net,p,t); %对网络
15、进行反复训练y = sim(net,p)figure % 打开另外一个图形窗口plot(p,t,p,y,o) y = 0.0005 1.0026 1.9947 3.0134 3.9429 3.1211 1.8482 1.1755 1.8568 3.1150 3.9595第二种情况的输出结果:024681000.511.522.533.54051015202510-310-210-110010129 epochstraining-blue goal-blackperformance is 0.00975742, goal is 0.01范例:dna序列模式分类问题一、问题 假定已知两组人工已分类
16、的dna序列(20个已知类别的人工制造的序列),其中序列标号110 为a类,11-20为b类。要求我们从中提取已经分类了的dna序列片段的特征和构造分类方法,并且还要衡量所用分类方法的好坏,从而构造或选择一种较好的分类方法。测试对象是20个未标明类别的人工序列(标号2140)和182个自然dna序列。例如a类: a1=aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg;b1=gttagatttaacgttttttatggaa
17、tttatggaattataaatttaaaaatttatattttttaggtaagtaatccaacgtttttattactttttaaaattaaatatttatt;二、特征提取 序列中含有四个碱基a、g、t、c,反映该序列特征的方面主要有两个:1、碱基的含量,反映了该序列的内容; 统计a、g、t、c序列中分别出现的频率; 2、 碱基的排列情况,反映了该序列的形式;从字符出现的周期性来反映。统计三个字符出现的频率;在遗传学中每三个碱基的组合被称为一个密码子,如agg,att,ggc, cgg等,共有43=64个,还可以由密码子组成20个氨基酸。三、神经网络对dna序列分类问题的应用 假定
18、提取已知序列类别的三字符串,如agg,att,ggc, cgg,共有43=64个,将它简化成只有5个:ttt, tta, ggc, cgg, gga。统计出任意一个dna序列片段的5维向量,即每个特征字符串在序列中出现的频数作为分量。a1=aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg;编程统计出该片段的字符串( ttt, tta, ggc, cgg, gga)的频数分别为:(0,1,5,7,10)经过统计计算,得到已知
19、类别的输入向量:p = 0 1 0 5 1 3 2 2 2 1 19 18 23 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
20、; 7 4 4 8 5 9 6 12 3 3 12 4 7 3 2 4 4 10 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)
21、;net.adaptparam.passes=110net=adapt(net,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.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 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 作用于消化系统的药物 副本
- 三级安全教育内容
- 2026年计算机一级考试模拟题题库操作题(含答案)
- 四年级奥数追及问题
- 2026年盐城遴选模拟试题及答案详解
- 2026年田径体育单招模拟试题及答案详解
- 2026年问卷星心内科模拟试题及答案详解
- 2026年西药联合用药模拟试题及答案详解
- 2026年臀肌挛缩护理模拟试题及答案详解
- 2026年综应模拟试题及答案详解
- 《公司法(第六版)》全套教学课件
- 呼吸内科常见并发症的预防与护理
- 2026八年级历史上册教材课后习题答案(1-16课)
- 2026年零碳产业园项目投资计划书
- 2026年高考化学全国I卷真题含解析及答案
- 生物制药与基因编辑技术
- RTK测量教程培训城市管理与执法探索
- 宠物解剖生理讲解
- 水稻全程机械化栽培技术
- T∕CSTM 00162-2020 透射电子显微镜校准方法
- key-hole经皮内镜颈椎间盘摘除术治疗神经根型颈椎病后路2
评论
0/150
提交评论