资源描述
单击此处编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,2016/5/24,#,BP,神经网络,BP神经网络主题知识,第1页,输入样本,计算误差,开始,是否收敛,数据初始化,否,结束,是,划分训练数据与测试数据,初始化,BP,网络,调整权值,BP,神经网络算法使用流程图,BP神经网络主题知识,第2页,数据初始化,1,、当前有,300,名管理学院全体男女生身高,体重,性别数据存在,EXCEL,表中;,2,、在,EXCEL,表中读取数据;,3,、将数据存在,DATA,(,height,weight,gender,)数组中。,BP神经网络主题知识,第3页,划分训练数据与测试数据,取其中男女各,50,人作为训练数据,其它,留作,测试数据。,BP神经网络主题知识,第4页,初始化,BP,网络,x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,BP神经网络主题知识,第5页,初始化,BP,网络,-,输入层,x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,输入层节点数等于样本维度。,在本例中,学生维度为身高,体重,故神经网络输入节点为,2,。,BP神经网络主题知识,第6页,初始化,BP,网络,-,隐含层,x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,隐含层,隐含层实现了非线性映射。,隐含层节点数对,BP,网络性能有很大影响,普通较多节点能够带来更加好性能,但可能造成训练时间过长。,隐含层节点数经验公式:,M=log,2,n,n,为输入层神经元个数,BP神经网络主题知识,第7页,初始化,BP,网络,-,输出层,x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,隐含层,输出层,输出层个数需要依据实际问题中得到抽象模型进行确定。如在模式分别问题中,共有,n,个种类,则输出层能够有,n,个神经元。在本例中,输出层为两个神经元,男、女。,BP神经网络主题知识,第8页,初始化,BP,网络,-,传递函数,x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,隐含层,输出层,传递函数,每一层神经元都有一个传递函数,在经典,BP,网络中,输入层传递函数原函数,隐含层传递函数为,Sigmoid,函数,输出层传递函数为线性函数。,BP神经网络主题知识,第9页,初始化,BP,网络,-,神经网络运行,(,工作信号正向传输,),x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,隐含层,输出层,以隐含层为例,隐含层神经元,K,i,输入,令 为,sigmoid,函数,,,则隐含层神经元,K,i,输出,BP神经网络主题知识,第10页,是否收敛,1,、能够给误差设置一个阈值,2,、训练到固定代数,停顿,BP神经网络主题知识,第11页,调整权值,-,神经网络运行,(,误差反向传输,),x,1,x,2,x,M,K,1,K,2,K,I,Y,1,Y,J,输入层,隐含层,输出层,我们令输出层误差为,则网络总误差为,首先我们能够调整隐含层与输出层参数,依据最速下降法,求导得,,误差向前传输,我们能够调整输入层和隐含层参数。,BP神经网络主题知识,第12页,1,、动量,BP,法,2,、学习率可变,BP,算法,3,、拟牛顿法,调整权值,-,其它调整方式,BP神经网络主题知识,第13页,实际,MATLAB,应用,%,脚本 使用,newff,函数实现性别识别,%main_newff.m,%,清理,clear,clc,rng(default),rng(2),%,读入数据,xlsfile=student.xls;,data,label=getdata(xlsfile);,%,划分数据,traind,trainl,testd,testl=divide(data,label);,%,创建网络,net=feedforwardnet(3,);%,3,代表隐含层节点数,net.trainFcn=trainbfg;,%,训练网络,net=train(net,traind,trainl,);,%traind,和,trainl,分别代表输入、出层节点数,%,测试,test_out=sim(net,testd);,test_out(test_out=0.5)=1;,test_out(test_out0.5)=0;,rate=sum(test_out=testl)/length(testl);,fprintf(,正确率,n%f%n,rate*100);,BP神经网络主题知识,第14页,运行结果,BP神经网络主题知识,第15页,
展开阅读全文