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

下載本文檔

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

文檔簡介

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

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

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

4、,更新網(wǎng)絡權(quán)值。3.神經(jīng)網(wǎng)絡的預測訓練好神經(jīng)網(wǎng)絡之后,用隨機抽取的500個數(shù)字字符對網(wǎng)絡進行預測,輸入特征向量,計算隱含層和輸出層輸出,得到最后預測的數(shù)據(jù)。同時計算每個數(shù)字的正確率和全體的正確率。最后得到的總體正確率為0.8620。主函數(shù):clc;clear all;close all;% 讀取圖像root=./data;img=read_train(root);% 提取特征img_feature=feature_lattice(img);% 構(gòu)造標簽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% 選定訓練集和測試集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)絡創(chuàng)建,訓練和測試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(對應圖片數(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)造標簽:要構(gòu)造出適合神經(jīng)網(wǎng)絡的標簽,在這個例子中有10個類,若為某個標簽,那么這個位置的值為1,其余為0。BP神經(jīng)網(wǎng)絡創(chuàng)建,訓練和測試:主要是幾個參數(shù)的設(shè)置,layer隱含層的神經(jīng)元個數(shù)。trainFcn:訓練算法function net = network_train(train_data,train_label )% 輸入:訓練圖像特征和label。輸出:訓練好的神經(jīng)網(wǎng)絡% BP網(wǎng)絡訓練% 初始化網(wǎng)絡結(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)絡訓練net=train(n

溫馨提示

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

評論

0/150

提交評論