神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab7頁_第1頁
神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab7頁_第2頁
神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab7頁_第3頁
神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab7頁_第4頁
神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab7頁_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、實 驗 報 告實驗課程: 管理運籌學(xué)實驗名稱: 神經(jīng)網(wǎng)絡(luò)應(yīng)用于手寫數(shù)字識別-matlab學(xué)生姓名: 指導(dǎo)教師: 實驗時間: 2018年1月16日實驗要求:運用matlab編程進行神經(jīng)網(wǎng)絡(luò)進行手寫數(shù)字識別。小組成員:姓名學(xué)號實驗過程:一、BP神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)是由很多神經(jīng)元組成,可以分為輸入,輸出,隱含層。BP神經(jīng)網(wǎng)絡(luò)的特點:信號前向傳遞,信號反向傳播。若輸出存在誤差,根據(jù)誤差調(diào)整權(quán)值和閾值,使網(wǎng)絡(luò)的輸出接近預(yù)期。在用BP神經(jīng)網(wǎng)絡(luò)進行預(yù)測之前要訓(xùn)練網(wǎng)絡(luò)訓(xùn)練過程如下:1.網(wǎng)絡(luò)初始化:各個參數(shù)的確定包括輸入,輸出,隱含層的節(jié)點數(shù),輸入和隱含,隱含和輸出層之間的權(quán)值,隱含,輸出層的閾值,學(xué)習(xí)速度和激勵函

2、數(shù)。2.計算隱含層輸出3.計算輸出層輸出4.誤差計算5.權(quán)值更新6.閾值更新7.判斷迭代是否結(jié)束二、模型建立數(shù)據(jù)集介紹:數(shù)據(jù)集包含0-9這10個數(shù)字的手寫體。是放在10個文件夾里,文件夾的名稱對應(yīng)存放的手寫數(shù)字圖片的數(shù)字,每個數(shù)字500張,每張圖片的像素統(tǒng)一為28*28。識別流程:首先要對數(shù)據(jù)進行處理,這個主要是批量讀取圖片和特征提取的過程,特征提取的方法很多,這里只挑選最簡單的來實現(xiàn),然后是訓(xùn)練出一個神經(jīng)網(wǎng)絡(luò)的模型,最后用測試數(shù)據(jù)進行測試。為了方面,這里的神經(jīng)網(wǎng)絡(luò)的創(chuàng)建,訓(xùn)練和測試采用matlab函數(shù)來實現(xiàn)。運行流程:1.確定神經(jīng)網(wǎng)絡(luò)的輸入,輸出。輸入是BP神經(jīng)網(wǎng)絡(luò)很重要的方面,輸入的數(shù)據(jù)是

3、手寫字符經(jīng)過預(yù)處理和特征提取后的數(shù)據(jù)。預(yù)處理有二值化,裁剪掉空白的區(qū)域,然后再統(tǒng)一大小為70*50為特征提取做準(zhǔn)備。特征提取采用的是粗網(wǎng)格特征提取,把圖像分成35個區(qū)域,每個區(qū)域100像素,統(tǒng)計區(qū)域中1像素所占的比例。經(jīng)過預(yù)處理特征提取后,28*28圖像轉(zhuǎn)成1*35的特征矢量。提取完5000張圖片后,依次把所有的特征存于一個矩陣(35*5000)中。2.神經(jīng)的網(wǎng)絡(luò)的訓(xùn)練用matlab的rands函數(shù)來實現(xiàn)網(wǎng)絡(luò)權(quán)值的初始化,網(wǎng)絡(luò)結(jié)構(gòu)為輸入層35,隱藏層34,輸出層10,學(xué)習(xí)速率為0.1,隱藏層激勵函數(shù)為sigmoid函數(shù)。隨機抽取4500張圖片提取特征后輸入,按照公式計算隱含層和輸出層輸出,誤差

4、,更新網(wǎng)絡(luò)權(quán)值。3.神經(jīng)網(wǎng)絡(luò)的預(yù)測訓(xùn)練好神經(jīng)網(wǎng)絡(luò)之后,用隨機抽取的500個數(shù)字字符對網(wǎng)絡(luò)進行預(yù)測,輸入特征向量,計算隱含層和輸出層輸出,得到最后預(yù)測的數(shù)據(jù)。同時計算每個數(shù)字的正確率和全體的正確率。最后得到的總體正確率為0.8620。主函數(shù):clc;clear all;close all;% 讀取圖像root=./data;img=read_train(root);% 提取特征img_feature=feature_lattice(img);% 構(gòu)造標(biāo)簽class=10;numberpclass=500;ann_label=zeros(class,numberpclass*class);ann_

5、data=img_feature;for i=1:class for j=numberpclass*(i-1)+1:numberpclass*i ann_label(i,j)=1; endend% 選定訓(xùn)練集和測試集k=rand(1,numberpclass*class); m,n=sort(k); ntraindata=4500;ntestdata=500;train_data=ann_data(:,n(1:ntraindata);test_data=ann_data(:,n(ntraindata+1:numberpclass*class);train_label=ann_label(:,n

6、(1:ntraindata);test_label=ann_label(:,n(ntraindata+1:numberpclass*class);% BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建,訓(xùn)練和測試net=network_train(train_data,train_label);predict_label=network_test(test_data,net);% 正確率計算u,v=find(test_label=1);label=u;error=label-predict_label;accuracy=size(find(error=0),2)/size(label,2)批量讀取圖片函數(shù):文件存放特點:在da

7、ta下有10個子文件夾,每個子文件夾下有500張圖片。函數(shù)可以利用于任何批量圖片的讀取,傳入的是文件夾路徑,輸出的是一個n(對應(yīng)圖片數(shù)目)維cell,每個cell存放的是圖片的數(shù)據(jù)。function imglist = read_train(root)%=讀取文件夾=%out_Files = dir(root);%展開tempind=0;imglist=cell(0);n=length(out_Files);%=讀取文件=%for i = 1:n; if strcmp(out_Files(i).name,.)| strcmp(out_Files(i).name,.) else rootpath

8、=strcat(root,/,out_Files(i).name); in_filelist=dir(rootpath); ni=length(in_filelist); for j=1:ni if strcmp(in_filelist(j).name,.)| strcmp(in_filelist(j).name,.)| strcmp(in_filelist(j).name,Desktop_1.ini)| strcmp(in_filelist(j).name,Desktop_2.ini) else tempind=tempind+1; imglisttempind=imread(strcat(

9、rootpath,/,in_filelist(j).name); end end endendend特征提取函數(shù):提取所有圖像的特征,二值化resize-提取特征function feature = feature_lattice(img)% 輸入:黑底白字的二值圖像。輸出:35維的網(wǎng)格特征% =提取特征,轉(zhuǎn)成5*7的特征矢量,把圖像中每10*10的點進行劃分相加,進行相加成一個點=%=即統(tǒng)計每個小區(qū)域中圖像象素所占百分比作為特征數(shù)據(jù)=%for i=1:length(img);bw2=im2bw(imgi,graythresh(imgi);bw_7050=imresize(bw2,70,50)

10、;for cnt=1:7 for cnt2=1:5 Atemp=sum(bw_7050(cnt*10-9):(cnt*10),(cnt2*10-9):(cnt2*10);%10*10box lett(cnt-1)*5+cnt2)=sum(Atemp); endendlett=(100-lett)/100);lett=lett;feature(:,i)=lett;end構(gòu)造標(biāo)簽:要構(gòu)造出適合神經(jīng)網(wǎng)絡(luò)的標(biāo)簽,在這個例子中有10個類,若為某個標(biāo)簽,那么這個位置的值為1,其余為0。BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建,訓(xùn)練和測試:主要是幾個參數(shù)的設(shè)置,layer隱含層的神經(jīng)元個數(shù)。trainFcn:訓(xùn)練算法function net = network_train(train_data,train_label )% 輸入:訓(xùn)練圖像特征和label。輸出:訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)% BP網(wǎng)絡(luò)訓(xùn)練% 初始化網(wǎng)絡(luò)結(jié)構(gòu)layer=25;net=newff(train_data,train_label,layer);net.trainParam.epochs=1;net.trainParam.lr=0.1;net.trainParam.goal=0.001;net.trainFcn=trainrp;% 網(wǎng)絡(luò)訓(xùn)練net=train(n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論