版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上【代碼及說(shuō)明見(jiàn)第四頁(yè)】基于三層BP神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別一、 實(shí)驗(yàn)要求采用三層前饋BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)標(biāo)準(zhǔn)人臉YALE數(shù)據(jù)庫(kù)的識(shí)別。二、BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和學(xué)習(xí)算法實(shí)驗(yàn)中建議采用如下最簡(jiǎn)單的三層BP神經(jīng)網(wǎng)絡(luò),輸入層為,有n個(gè)神經(jīng)元節(jié)點(diǎn),輸出層具有m個(gè)神經(jīng)元,網(wǎng)絡(luò)輸出為,隱含層具有k個(gè)神經(jīng)元,采用BP學(xué)習(xí)算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)BP網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對(duì)之間的映射能力。BP網(wǎng)絡(luò)執(zhí)行的是有教師訓(xùn)練,其樣本集是由形
2、如(輸入向量,期望輸出向量)的向量對(duì)構(gòu)成的。在開(kāi)始訓(xùn)練前,所有的權(quán)值和閾值都應(yīng)該用一些不同的小隨機(jī)數(shù)進(jìn)行初始化。BP算法主要包括兩個(gè)階段:(1) 向前傳播階段從樣本集中取一個(gè)樣本(Xp,Yp),將Xp輸入網(wǎng)絡(luò),其中Xp為輸入向量,Yp為期望輸出向量。計(jì)算相應(yīng)的實(shí)際輸出Op。在此階段,信息從輸入層經(jīng)過(guò)逐級(jí)的變換,傳送到輸出層。這個(gè)過(guò)程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時(shí)執(zhí)行的過(guò)程。在此過(guò)程中,網(wǎng)絡(luò)執(zhí)行的是下列運(yùn)算: (2) 向后傳播階段計(jì)算實(shí)際輸出Op與相應(yīng)的理想輸出Yp的差;按極小化誤差的方法調(diào)整權(quán)矩陣。這兩個(gè)階段的工作一般應(yīng)受到精度要求的控制,定義 (1)作為網(wǎng)絡(luò)關(guān)于第p個(gè)樣本的誤差測(cè)度(誤差函數(shù)
3、)。而將網(wǎng)絡(luò)關(guān)于整個(gè)樣本集的誤差測(cè)度定義為 (2)如前所述,將此階段稱為向后傳播階段,也稱之為誤差傳播階段。為了更清楚地說(shuō)明本文所使用的BP網(wǎng)絡(luò)的訓(xùn)練過(guò)程,首先假設(shè)輸入層、中間層和輸出層的單元數(shù)分別是N、L和M。X=(x0,x1,xN-1)是加到網(wǎng)絡(luò)的輸入矢量,H=(h0,h1,hL-1)是中間層輸出矢量,Y=(y0,y1,yM-1)是網(wǎng)絡(luò)的實(shí)際輸出矢量,并且用D=(d0,d1,dM-1)來(lái)表示訓(xùn)練組中各模式的目標(biāo)輸出矢量。輸出單元i到隱單元j的權(quán)值是Vij,而隱單元j到輸出單元k的權(quán)值是Wjk。另外用k和j來(lái)分別表示輸出單元和隱單元的閾值。于是,中間層各單元的輸出為: (3)而輸出層各單元的
4、輸出是: (4)其中f(*)是激勵(lì)函數(shù),采用S型函數(shù): (5)在上述條件下,網(wǎng)絡(luò)的訓(xùn)練過(guò)程如下:(1) 選定訓(xùn)練集。由相應(yīng)的訓(xùn)練策略選擇樣本圖像作為訓(xùn)練集。(2) 初始化各權(quán)值Vij,Wjk和閾值j,k,將其設(shè)置為接近于0的隨機(jī)值,并初始化精度控制參數(shù)和學(xué)習(xí)率。(3) 從訓(xùn)練集中取一個(gè)輸入向量X加到網(wǎng)絡(luò),并給定它的目標(biāo)輸出向量D。(4) 利用式(7)計(jì)算出一個(gè)中間層輸出H,再用式(8)計(jì)算出網(wǎng)絡(luò)的實(shí)際輸出Y。(5) 將輸出矢量中的元素yk與目標(biāo)矢量中的元素dk進(jìn)行比較,計(jì)算出M個(gè)輸出誤差項(xiàng):對(duì)中間層的隱單元也計(jì)算出L個(gè)誤差項(xiàng):(6) 依次計(jì)算出各權(quán)值和閾值的調(diào)整量: (6) (7) (8) (
5、9)(7) 調(diào)整權(quán)值和閾值:,(8) 當(dāng)k每經(jīng)歷1至M后,判斷指標(biāo)是否滿足精度要求:E,其中E是總誤差函數(shù),且。如果不滿足,就返回(3),繼續(xù)迭代。如果滿足,就進(jìn)入下一步。(9) 訓(xùn)練結(jié)束,將權(quán)值和閾值保存在文件中。這時(shí)可以認(rèn)為各個(gè)權(quán)值已經(jīng)達(dá)到穩(wěn)定,分類(lèi)器形成。再一次進(jìn)行訓(xùn)練時(shí),直接從文件導(dǎo)出權(quán)值和閾值進(jìn)行訓(xùn)練,不需要進(jìn)行初始化。 BP算法流程圖YALE數(shù)據(jù)庫(kù)是由耶魯大學(xué)計(jì)算視覺(jué)與扼制中心創(chuàng)立,包括15位志愿者,每個(gè)人有11張不同姿勢(shì)、光照和表情的圖片,共計(jì)165張圖片,圖片均為80*100像素的BMP格式圖像。我們將整個(gè)數(shù)據(jù)庫(kù)分為兩個(gè)部分,每個(gè)人的前5幅圖片作為網(wǎng)絡(luò)的訓(xùn)練使用,后6副圖片作為
6、測(cè)試使用。說(shuō)明:程序的輸入數(shù)據(jù)可以從這里下載:鏈接: 密碼: vsfb如果不能下載了, 可以自己找找YALE人臉數(shù)據(jù)庫(kù)。代碼分為read_can_use.m和main_can_ues.m先運(yùn)行read_can_use.m 讀取圖片的像素值,使用奇異值分解的方法得到對(duì)應(yīng)的特征。程序預(yù)設(shè)了只讀取前5個(gè)人的人臉圖片 ,可以自己改成最多15個(gè)人。然后運(yùn)行main_can_use.m ,程序會(huì)輸出 1 1 2 3 2 3,每個(gè)數(shù)字代表一張圖片最有可能的識(shí)別類(lèi)別(就是人的編號(hào))。對(duì)每個(gè)人的11張圖片,取前7張訓(xùn)練網(wǎng)絡(luò),后4張測(cè)試網(wǎng)絡(luò),取前5個(gè)人進(jìn)行實(shí)驗(yàn)。所以共有35個(gè)訓(xùn)練樣本,20個(gè)測(cè)試樣本。比如輸出的結(jié)
7、果是 1 1 1 1 2 2 1 2 3 3 3 3 .,因?yàn)槊?個(gè)數(shù)字是屬于同一個(gè)人的,前四個(gè)都是1則都預(yù)測(cè)正確,第二組的4個(gè)數(shù)字2 2 1 2 中的那個(gè)1 就是預(yù)測(cè)錯(cuò)誤(本來(lái)是2預(yù)測(cè)成了1)。由于參數(shù)的隨機(jī)初始化,不保證每次的結(jié)果都相同。function main()%clcclear all;%close all;load('date1_5.mat','feature');warning off allSamNum=35; %輸入樣本數(shù)量TestSamNum=35; %測(cè)試樣本數(shù)量ForcastSamNum=20; %預(yù)測(cè)樣本數(shù)量HiddenUnitNum
8、=8; %中間層隱節(jié)點(diǎn)數(shù)量取8InDim=40; %網(wǎng)絡(luò)輸入維度OutDim=4; %網(wǎng)絡(luò)輸出維度%inputp=;t=;pnew=;for i=1:55 if(mod(i,11)<=7&&mod(i,11)>0) p=p;feature(i,:); else pnew=pnew;feature(i,:); endendp=p'pnew=pnew'%outputs1=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;s2=0 0 0 0 0 0 0 0 0 0
9、 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ;s3=0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;s4=1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 ;t=s1;s2;s3;s4;size(t) %4*35 輸出size(p) %40*35 輸入SamIn,minp,maxp,tn,mint,maxt=premnmx(p,t); %原始樣本對(duì)(輸入和
10、輸出)初始化rand('state',sum(100*clock) %依據(jù)系統(tǒng)時(shí)鐘種子產(chǎn)生隨機(jī)數(shù)SamOut=tn;TestSamIn=SamIn; %這里取輸入樣本與測(cè)試樣本相同因?yàn)闃颖救萘科賂estSamOut=SamOut; %也取輸出樣本與測(cè)試樣本相同MaxEpochs=50000; %最多訓(xùn)練次數(shù)為50000lr=0.035; %學(xué)習(xí)速率為0.035E0=0.65*10(-3); %目標(biāo)誤差為0.65*10(-3)W1=0.5*rand(HiddenUnitNum,InDim)-0.2; %初始化輸入層與隱含層之間的權(quán)值B1=0.5*rand(HiddenUnitN
11、um,1)-0.2; %初始化輸入層與隱含層之間的閾值W2=0.5*rand(OutDim,HiddenUnitNum)-0.2; %初始化輸出層與隱含層之間的權(quán)值B2=0.5*rand(OutDim,1)-0.2; %初始化輸出層與隱含層之間的閾值ErrHistory=; %給中間變量預(yù)先占據(jù)內(nèi)存for i=1:MaxEpochs % HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum); % 隱含層網(wǎng)絡(luò)輸出 HiddenOut=1./(1+exp(-(W1*SamIn+repmat(B1,1,SamNum); % 隱含層網(wǎng)絡(luò)輸出 NetworkOut=
12、W2*HiddenOut+repmat(B2,1,SamNum); % 輸出層網(wǎng)絡(luò)輸出 Error=SamOut-NetworkOut; % 實(shí)際輸出與網(wǎng)絡(luò)輸出之差 SSE=sumsqr(Error) ; %能量函數(shù)(誤差平方和) ErrHistory=ErrHistory SSE; if SSE<E0,break, end % 調(diào)整權(quán)值(閾值) Delta2=Error; Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut); dW2=Delta2*HiddenOut' dB2=Delta2*ones(SamNum,1); dW1=De
13、lta1*SamIn' dB1=Delta1*ones(SamNum,1); %對(duì)輸出層與隱含層之間的權(quán)值和閾值進(jìn)行修正 W2=W2+lr*dW2; B2=B2+lr*dB2; %對(duì)輸入層與隱含層之間的權(quán)值和閾值進(jìn)行修正 W1=W1+lr*dW1; B1=B1+lr*dB1;endHiddenOut=1./(1+exp(-(W1*SamIn+repmat(B1,1,TestSamNum); % 隱含層輸出最終結(jié)果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); % 輸出層輸出最終結(jié)果a=postmnmx(NetworkOut,mint,m
14、axt); % 還原網(wǎng)絡(luò)輸出層的結(jié)果% 利用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)pnewn=tramnmx(pnew,minp,maxp); %歸一化;HiddenOut=1./(1+exp(-(W1*pnewn+repmat(B1,1,ForcastSamNum);anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum); % 輸出層輸出預(yù)測(cè)結(jié)果%把網(wǎng)絡(luò)預(yù)測(cè)得到的數(shù)據(jù)還原為原始的數(shù)量級(jí);anew=postmnmx(anewn,mint,maxt);answer=zeros(1,size(anew,2);d=1;for j=1:20 for i=4:-1:1 answer(j
15、)=answer(j)+anew(i,j)*d; d=d*2; end d=1; endanswer=answer+0.5;answer=floor(answer)function feature = read_can_use()clc,clear;%for i=1:5 for jj=1:11 % s1='YALEsubject0' s2=int2str(i);s22='_'s222=int2str(jj); s3='.bmp' str=strcat(s1,s2); str=strcat(str,s22); str=strcat(str,s222); str=strcat(str,s3); a2=imread(str); M=double(a2); % num=1; for j=1:10 for k=1:4 x=i; %將圖片的灰度矩陣劃分成32塊小矩陣 temp_num1=size(M,1)./10;%100*80 temp_num2=size(M,2)./4; temp=M(j-1)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人才團(tuán)隊(duì)管理總結(jié)
- 2025固定資產(chǎn)技術(shù)改造借款合同范本
- 幼兒疾病預(yù)防知識(shí)講座
- 會(huì)銷(xiāo)會(huì)議流程
- 2025農(nóng)村土地轉(zhuǎn)讓合同方式
- 2025農(nóng)副產(chǎn)品銷(xiāo)售合同標(biāo)準(zhǔn)格式
- 信息技術(shù)保安員工作總結(jié)
- 2025保潔公司合同書(shū)范文
- 2025餐飲小吃合作合同
- 媒體行業(yè)前臺(tái)接待工作總結(jié)
- 分期還款協(xié)議書(shū)
- 小區(qū)住戶手冊(cè)范本
- 海康威視-視頻監(jiān)控原理培訓(xùn)教材課件
- 《鄭伯克段于鄢》-完整版課件
- 土壤肥料全套課件
- 畢業(yè)生延期畢業(yè)申請(qǐng)表
- 學(xué)校6S管理制度
- 肽的健康作用及應(yīng)用課件
- T.C--M-ONE效果器使用手冊(cè)
- 8小時(shí)等效A聲級(jí)計(jì)算工具
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)計(jì)算題300道
評(píng)論
0/150
提交評(píng)論