人工智能论文-基于BP神经网络_第1页
人工智能论文-基于BP神经网络_第2页
人工智能论文-基于BP神经网络_第3页
人工智能论文-基于BP神经网络_第4页
人工智能论文-基于BP神经网络_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

浅谈神经网络张舒摘要:本文主要介绍仿生算法神经网络的原理和应用方向,分为两个部分,首先是关于原理的介绍,然后是关于MATLAB神经网络工具箱程序和应用关键词:BP神经网络机器学习matlab神经网络工具箱人工神经网络的基本工作原理神经元是构成神经网络的最基本单元,神经元之间的连接方式不同,可得到不同的神经网络;各神经元之间连接强度是由神经网络内部加权系数决定的,加权系数决定了信号传递的强弱,信号可以起刺激作用也可以起抑制作用,而且加权系数可以随着训练进行改变。这些特征使得人工神经网络具有高度的灵活性。神经网络的工作过程主要分为两个阶段,第一阶段是学习期,此时各计算单元状态不变,各连线上的权值通过学习来修改。第二阶段是工作期,此时连接权固定,计算单元状态变化,以达到某种稳定状态。通过向环境学习获取知识并改进自身性能是神经网络的一个重要特点,这种概念来自生物模型,它使机体能在复杂多变的环境中进行有效的自我调节。当一个神经网络结构确定以后,若想改变其输出值,但又不能改变它的转换函数,只能改变其输入,而改变输入的唯一办法只能修改加在输入端的加权系数。因而,神经网络的学习过程是修改加权系数的过程,使其输出接近或达到期望值,学习结束。在一般情况下,性能的改善也是按某种预定的度量通过调节自身参数随时间逐步达到的,由此使神经网络具备类似人类的学习能力,使自身性能得到改进。将这种特性应用于各类自动控制系统中,使系统具有较高的智能行为,实现神经网络自动控制。学习算法是神经网络的主要特征,也是当前研究的主要课题。神经网络学习算法很多,下面介绍一种常用的神经网络。BP神经网络MATLAB神经网络工具箱中包含关于神经网络函数,主要有以下几类。前向网络创建函数:newef,newff,newfftd。激励函数:logsig,dlogsig,tansig,dtansig,purelin,dpurelin。学习函数:learngd,learngdm。性能函数:mse,msereg。以上MATLAB神经网络工具箱函数将在下面的MATLAB程序中讲到,此程序是关于人脸方向识别的小程序。源程序:M_train=3;%表示人脸N_train=5;%表示方向sample=[];pixel_value=[];sample_number=0;forj=1:N_trainfori=1:M_trainstr=strcat('Images\',num2str(i),'_',num2str(j),'.bmp');%读取图像,连接字符串形成图像的文件名。img=imread(str);[rowscols]=size(img);%获得图像的行和列值。img_edge=edge(img,'Sobel');%由于在分割图片中我们可以看到这个人脸的眼睛部分也就是位于分割后的第二行中,位置变化比较大,而且眼睛边缘检测效果很好sub_rows=floor(rows/6);%最接近的最小整数,分成6行sub_cols=floor(cols/8);%最接近的最小整数,分成8列sample_num=M_train*N_train;%前5个是第一幅人脸的5个角度sample_number=sample_number+1;forsubblock_i=1:8%因为这还在i,j的循环中,所以不可以用iblock_num=subblock_i;pixel_value(sample_number,block_num)=0;forii=sub_rows:(2*sub_rows)forjj=(subblock_i-1)*sub_cols+1:subblock_i*sub_colspixel_value(sample_number,block_num)=pixel_value(sample_number,block_num)+img_edge(ii,jj);endendendendend%将特征值转换为小于1的值max_pixel_value=max(pixel_value);max_pixel_value_1=max(max_pixel_value);fori=1:3mid_value=10^i;if(((max_pixel_value_1/mid_value)>1)&&((max_pixel_value_1/mid_value)<10))multiple_num=1/mid_value;pixel_value=pixel_value*multiple_num;break;endend%T为目标矢量t=zeros(3,sample_number);%因为有五类,所以至少用3个数表示,5介于2的2次方和2的3次方之间fori=1:sample_number%if((mod(i,5)==1)||(mod(i,5)==4)||(mod(i,5)==0))if(i<=3)||((i>9)&&(i<=12))||((i>12)&&(i<=15))t(1,i)=1;end%if((mod(i,5)==2)||(mod(i,5)==4))if((i>3)&&(i<=6))||((i>9)&&(i<=12))t(2,i)=1;end%if((mod(i,5)==3)||(mod(i,5)==0))if((i>6)&&(i<=9))||((i>12)&&(i<=15))t(3,i)=1;endend%NEWFF——生成一个新的前向神经网络%TRAIN——对BP神经网络进行训练%SIM——对BP神经网络进行仿真%定义训练样本%P为输入矢量P=pixel_value'%T为目标矢量T=tsize(P)size(T)%size(P)%size(T)%创建一个新的前向神经网络net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')%当前输入层权值和阈值inputWeights=net_1.IW{1,1}inputbias=net_1.b{1}%当前网络层权值和阈值layerWeights=net_1.LW{2,1}layerbias=net_1.b{2}%设置训练参数net_1.trainParam.show=50;net_1.trainParam.lr=0.05;net_1.trainParam.mc=0.9;net_1.trainParam.epochs=10000;net_1.trainParam.goal=1e-3;%调用TRAINGDM算法训练BP网络[net_1,tr]=train(net_1,P,T);%对BP网络进行仿真A=sim(net_1,P);%计算仿真误差E=T-A;MSE=mse(E)x=[0.140110111.2]';sim(net_1,x)人工神经网络主要可以发现数据中的内在规律,它能通过自我的机器学习来发现数据之间的联系,进而尽可能找到精确的预测数据,比如用在对人口预测,基金和股票的预测中,同时也可以进行图像识别,比如人脸识别中。参考文献:[1]卓金武.MATLAB在数学建模中的应用.[M]北京:北京航空航天大学出版社.2011.[2]www.iLoveM[3]DiscussontheneuralnetworkZhangShuAbstract:Thispaperdescribestheprinciplesandapplicationsofbionicalgorithmneuralnetworkdirection,dividedintotwoparts,thefirst

温馨提示

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

评论

0/150

提交评论