




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
神经网络算法含感知器和第1页/共38页神经网络算法简介
感知器感知器(perceptron)是由美国科学家F.Rosenblatt于1957年提出的,其目的是为了模拟人脑的感知和学习能力。感知器是最早提出的一种神经网络模型。它特别适合于简单的模式分类问题,如线性可分的形式。第2页/共38页神经网络算法简介以两个输入的单层感知器神经元为例∑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+b>0a=1wp+b<0a=0
单层感知器第3页/共38页
多层感知器w(1,1)w(1,2)p1p2na2∑b1∑b2n2a2n1a1∑b1w(2,1)w(2,2)第4页/共38页性能指标:均方误差达到最小涉及算法注意:单层感知器的局限性是:仅对线性可分问题具有分类能力。第5页/共38页分类问题的MATLAB软件实现以蠓虫分类问题为例%输入向量P=[1.24 1.361.381.381.381.41.481.541.561.141.181.21.261.281.3;1.721.741.641.821.91.71.821.822.081.781.961.862.02.01.96];%目标向量T=[111111111000000];%绘制输入向量plotpv(P,T);1)单层感知器∑w(1,1)w(1,2)p(1)p(2)nab第6页/共38页%建立一个感知器net=newp([03;03],1);%绘制输入向量plotpv(P,T);%初始化感知器net=init(net);%画出分类线net.iw{1,1}net.b{1}linehandle=plotpc(net.iw{1,1},net.b{1});%作wx+b=0的分类线分类问题的MATLAB软件实现第7页/共38页分类问题的MATLAB软件实现E=1;%修正感知器网络while(sse(E))%sse返回误差的平方
[net,Y,E]=adapt(net,P,T);%返回学习后的网络,Y是输出,E是误差
linehandle=plotpc(net.IW{1},net.b{1},linehandle);%分界线绘制函数
drawnow;%更新分界线end;第8页/共38页%利用训练好的感知器对未知类别样本进行分类p=[1.24,1.28,1.4;1.8,1.84,2.04];a=sim(net,p);plotpv(p,a);ThePoint=findobj(gca,'type','line');set(ThePoint,'Color','red');holdon;plotpv(P,T);plotpc(net.IW{1},net.b{1});holdoff;disp('Endofpercept')分类问题的MATLAB软件实现分类结果:AfApf第9页/共38页以上结果是图形化的结果,如下给出数值化的结果:mcfl1.mP=[1.24 1.361.381.381.381.41.481.541.561.141.181.21.261.281.3;1.721.741.641.821.91.71.821.822.081.781.961.862.02.01.96];%目标向量T=[111111111000000];%建立一个感知器net=newp([03;03],1);%网络训练次数net.adaptParam.passes=100net=adapt(net,P,T);%返回自适应的神经网络%输出仿真结果Y=sim(net,P)%利用训练好的感知器进行分类p=[1.24,1.28,1.4;1.8,1.84,2.04];a=sim(net,p)第10页/共38页仿真结果:Y=Columns1through1111111111100Columns12through150000a=111准确率达到100%。第11页/共38页BP网络(Back-PropagationNetwork)
目前,在人工神经网络的实际应用中,决大部分的神经网络模型是采用BP网络和它的变化形式。BP网络主要用于:
◆函数逼近
◆模式识别
◆
分类
◆数据压缩第12页/共38页
学习过程由信号的正向传播与反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符合时,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此信号作为修正各单元权值的依据。BP算法的基本思想:第13页/共38页x1x2xixn-1xn……y1y2yjym……W1WkWlo1okol……输入层隐层输出层隐层到输出层之间的权值矩阵: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,2,…,m,传递函数一般用:f(x)=1/(1+exp(-x))(s型函数)误差函数:Eh=0.5*(∑j=0:l(thj-ohj)2),thj,ohj分别为期望输出和网络的实际输出。第14页/共38页MATLAB中有关BP网络的重要函数newff创建前向BP网络格式:net=newff(PR,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)
其中:PR——R维输入元素的R×2阶最大最小值矩阵;
Si——
第i层神经元的个数,共N1层;
TFi——
第i层的转移函数,默认‘tansig’;
BTF——BP网络的训练函数,默认‘trainlm’;BLF——BP权值/偏差学习函数,默认’learngdm’PF——
性能函数,默认‘mse’;(误差)第15页/共38页MATLAB中有关BP网络的重要函数例如:net=newff([020;016;012;012;013],[51],{'logsig''purelin'},'traingdx');三层神经网络结构:中间层为5输出层为1输入层5维向量的取值范围训练函数转移函数第16页/共38页(1)purelin——
线性传递函数;(2)tansig——
双曲正切S型(sigmoid)传递函数;(3)logsig——
对数S型(sigmoid)传递函数;1、转移函数:(1)(2)(3)第17页/共38页2、训练函数:trainlm——Levenberg-Marquardt的BP算法训练函数;trainbfg——BFGS拟牛顿BP算法训练函数;trainrp
——
具有弹性的BP算法训练;traingd
——
梯度下降是BP算法训练;traingda
——
梯度下降自适应lr的BP算法训练;traingdm——梯度下降动量的BP算法训练;traingdx——梯度下降动量和自适应lr的BP算法训练;第18页/共38页
如果对神经网络的输入、输出数据进行一定的预处理,可以加快网络的训练速度。有三种方法:
1)归一化将每组数据都变为-1至1之间的数,matlab中有函数:premnmx,postmnmx,tramnmx算法:
pn=2*(p-minp)/(maxp-minp)-1;2)标准化将每组数据变换为均值为0,方差为1的数,所涉及的函数有:prestd,posttd,trastd3)正交化主成分分析也可以将数据进行正交处理,减少输入数据的处理,函数有:prepca,trapca.注意:数据预处理第19页/共38页P=[012345678910];%输入向量T=[01234321234];%期望输出例:%创建两层的BP网络:net=newff
(
[010],
[51],
{'tansig','purelin'}
);Y=sim(net,P);%输出仿真结果plot(P,T,P,Y,‘o’)%作图,未经过训练的结果或net.trainParam.epochs=50;net=train(net,P,T);Y=sim(net,P);plot(P,T,P,Y,‘o’)%作图训练后的结果第20页/共38页Y=-2.3431-2.7532-2.4510-1.2784-0.8590-0.29810.24950.48111.03751.22681.4232T=[01234321234];%期望输出第一种情况的输出结果:误差很大!未训练,非线性映射能力差。第21页/共38页Y=-0.00191.00451.98963.01573.96373.10211.81751.20561.83223.11623.9551T=[01234321234];%期望输出第二种情况的输出结果:思考:究竟误差有多大?第22页/共38页修改程序:P=[012345678910];T=[01234321234];net=newff([010],[51],{'tansig''purelin'});net.trainparam.show=50;%每次循环50次net.trainParam.epochs=500;%最大循环500次net.trainparam.goal=0.01;%期望目标误差最小值net=train(net,P,T);%对网络进行反复训练Y=sim(net,P)figure%打开另外一个图形窗口plot(P,T,P,Y,'o')第23页/共38页Y=0.00051.00261.99473.01343.9429
3.12111.84821.17551.85683.11503.9595第二种情况的输出结果:第24页/共38页范例:DNA序列模式分类问题一、问题
假定已知两组人工已分类的DNA序列(20个已知类别的人工制造的序列),其中序列标号1—10为A类,11-20为B类。要求我们从中提取已经分类了的DNA序列片段的特征和构造分类方法,并且还要衡量所用分类方法的好坏,从而构造或选择一种较好的分类方法。测试对象是20个未标明类别的人工序列(标号21—40)和182个自然DNA序列。例如A类:第25页/共38页a1='aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg';b1='gttagatttaacgttttttatggaatttatggaattataaatttaaaaatttatattttttaggtaagtaatccaacgtttttattactttttaaaattaaatatttatt';……第26页/共38页二、特征提取
序列中含有四个碱基a、g、t、c,反映该序列特征的方面主要有两个:1、碱基的含量,反映了该序列的内容;
统计a、g、t、c序列中分别出现的频率;2、碱基的排列情况,反映了该序列的形式;①从字符出现的周期性来反映。②统计三个字符出现的频率;在遗传学中每三个碱基的组合被称为一个密码子,如agg,att,ggc,cgg等,共有43=64个,还可以由密码子组成20个氨基酸。第27页/共38页三、神经网络对DNA序列分类问题的应用
假定提取已知序列类别的三字符串,如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)第28页/共38页经过统计计算,得到已知类别的输入向量:p=[01051322211918231743122171923;12041114011315131199214127;5580109571190010003100;71016211965860001003200;10111521112129562111011011];待判类别的输入向量:P=[9231331531032659222216218;744859612331247324410210;00415021702204213121;02801150701303311102;23912181502115413112];第29页/共38页由前20个已知类别的DNA序列片段可以构造出目标向量:t=[11111111110000000000];1、应用感知器对DNA序列进行分类:(DNAper1.m)net=newp([01;01;01;01;01],1);net.adaptParam.passes=110net=adapt(net,p,t);Y=sim(net,p)%回代检验a=sim(net,P)%对待判类别的序列进行分类A类B类第30页/共38页a=01100010100001101000回代检验结果是100%的准确。待判序列的分类结果:A类:22,23,27,29,34,35,37;B类:21,24,25,26,28,30,31,32,
33,36,38,39,40;输出结果:第31页/共38页a=01100010100001101000并附图形:获得数值分类结果:(DNAper.m)net=newp([01;01;01;01;01],1);net.adaptParam.passes=110net=adapt(net,p,t);Y=sim(net,p)%回代检验a=sim(net,P)%对待判类别的序列进行分类输出结果:第32页/共38页误差曲线图第33页/共38页2、应用BP网络对DNA序列进行分类:(DNAbp.m)net=newff([020;016;012;012;013],[31],{'logsig''purelin'},'t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江警官职业学院《医学信息检索与利用(4)》2023-2024学年第二学期期末试卷
- 甘肃林业职业技术学院《铁路旅客运输》2023-2024学年第二学期期末试卷
- 乘法-队列表演(二)教学设计-2023-2024学年三年级下册数学北师大版
- 一个时代歌者的赤子深情-名著导读:《艾青诗选》如何读诗(教学设计)九年级语文上册同步高效课堂(统编版)
- 咸阳师范学院《专业新闻与深度报道》2023-2024学年第二学期期末试卷
- 辽宁何氏医学院《建筑室内声学设计》2023-2024学年第二学期期末试卷
- 成都信息工程大学《高聚物合成工艺及设备》2023-2024学年第二学期期末试卷
- 泉州轻工职业学院《文化学导论》2023-2024学年第二学期期末试卷
- Unit 2 Were Family!Section B 2a-2b 教学设计2024-2025学年人教版(2024)七年级英语上册
- 中山大学《黑白图像》2023-2024学年第二学期期末试卷
- 唐诗中的中医药知识-PPT幻灯片
- 四川省泸州市各县区乡镇行政村村庄村名居民村民委员会明细
- 《邹忌讽齐王纳谏》课件(共45张)
- 机械制图教学课件(全套)
- 热能与动力工程测试技术- 液位测量
- 化学纤维精品课件
- 中式面点师初级(五级)教学计划、大纲
- QC成果构造柱浇筑新技术的研发创新(附图)
- 2020 ACLS-PC-SA课前自我测试试题及答案
- BIM技术应用管理办法
- 信息论与编码第4章信息率失真函数
评论
0/150
提交评论