- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器学习课程设计.
一、神经网络BP算法介绍
引言 人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而且实用的方法从样例中学习值为实数、离散值或向量的函数。像方向传播(BACKPTPAGATION)这样的算法,实用梯度下降来调节网络参数以最佳拟合由输入-输出对组成的训练集合。ANN学习对于训练数据中的错误健壮性很好,且已成功地应用到很多领域。例如,本文将要描述的反向传播算法已在很多实际的问题中取得惊人的成功,比如学习识别人脸。
(一)神经网络表示
Pomeleau(1933)的ALVINN系统是ANN学习的一个典型实例,这个系统使用一个学习到的ANN以正常的速度在高速公路上驾驶汽车。ANN的输入是一个30*32像素的网格,像素的亮度来自一个安装在车辆上的前向摄像机。ANN的输出是车辆行进的方向。ALVINN用学习到的网络在高速公路上以70英里时速成功地驾驶了90英里。
书上图4-1
ALVINN系统使用反向传播算法来学习驾驶汽车。左图显示了来自车前摄像机的图像是如何被映射到960个神经网络输入的,这些输入又前馈到4个隐藏单元,再连接到30个输出单元,每个输出单元对应一个特定的驾驶方向,这些单元的输出值决定哪一个驾驶方向被最强烈推荐(即该方向权值最大)。
(二)BP算法权值及阈值调整公式
(三)matlab神经网络工具箱
(四)BP算法应用于人脸识别
本章将讲解如何运用BP算法建立人脸识别系统
实验中我们使用了ORL数据库(Olivetti Research Laboratory in Combridge, UK 可从HTUhttp://www.camorl.co.uk/facedatabase.htmlUTH获得),部分图像如5.1所示。它包含了400张不同的人脸图像,40个不同的实验者每人10张。对其中一些实验者,图像是在不同的时间、变化的光线、面部表情(张开/合拢眼睛、微笑/不微笑)和面部细节(戴眼镜/不戴眼镜)下拍摄的。所有的图像为实验者的正脸,带有一定程度的朝上下左右的偏转或倾斜,有相似的黑暗同质背景。每幅图象的大小为11292像素8bit的灰度图。为了进行比较,它们被分成没有重叠的、相同大小的训练集和测试集。如每个类别随机的选取5幅图象作为训练集,剩余5幅归为测试集。当然也可以选取任意张图片进行训练和测试。
图1-1 ORL 人脸库中的部分图片
由图1-1中可以看出,该人脸库中的图片在人种,性别,面部表情等方面都有着很大的可变性,而且该人脸库没有太多多余的边界,基本上一张图片就是一副人脸,处理起来比较方便。
(1)系统框图
通过提取图片的特征向量S作为网络的输入,并通过BP网络连接到40个输出单元(40个人即有40个分类器),哪个输出单元数值最大则被推荐为分类结果。如输出向量为[1000…000]T,则该图片被分类为人物1。
(2)特征提取
特征提取目的,原理等
(3)划分训练集和测试集
对上一步处理中得到的特征矩阵进行划分,将其划分为训练集train_datatest_data,和测试集test_data,用以进行训练和测试,建立测试目标集t,并对训练集和测试集进行归一化处理,得到pn和pnew。
如我们取每人6张图片作为训练样本组成训练矩阵,从人物1依次到人物40把图片输入给神经网络,则目标矩阵应为:
t=[
]
(4)构建BP神经网络
调用MATLAB神经网络工具箱,构建BP神经网络。此处调用了newff()函数创建神经网络。
(5)训练神经网络
调用matlab神经网络工具箱函数train(),用训练函数训练BP神经网络。函数形式:[net,tr] = train(NET,X,T,Pi,Ai);NET:待训练网络,X:输入数据矩阵,T:输出数据矩阵,net:训练好的网络。
disp(开始训练BP神经网络,这个过程比较长,请耐心等待..........);
[net,tr] = train(net,pn,t);
disp(神经网络训练结束!);
训练的误差曲线图如图2-9所示:
图2-9 训练误差曲线图
该过程实现的是神经网络的训练,当神经网络训练好以后,就可以进行识别。
(6)测试神经网络
输入测试集来统计神经网络的识别率。此处调用了matlab神经网络工具箱函数sim(),用训练好的BP神经网络预测函数输出。
result_test=sim(net, pnewn);
result_test第i列的最大值即第i张测试图片的识别分类结果则
[C,I]=max(r
文档评论(0)