

已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
【代碼及說明見第四頁】基于三層BP神經(jīng)網(wǎng)絡的人臉識別一、 實驗要求采用三層前饋BP神經(jīng)網(wǎng)絡實現(xiàn)標準人臉YALE數(shù)據(jù)庫的識別。二、BP神經(jīng)網(wǎng)絡的結構和學習算法實驗中建議采用如下最簡單的三層BP神經(jīng)網(wǎng)絡,輸入層為,有n個神經(jīng)元節(jié)點,輸出層具有m個神經(jīng)元,網(wǎng)絡輸出為,隱含層具有k個神經(jīng)元,采用BP學習算法訓練神經(jīng)網(wǎng)絡。BP神經(jīng)網(wǎng)絡的結構BP網(wǎng)絡在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習大量的輸入與輸出之間的映射關系,而不需要任何輸入和輸出之間的精確的數(shù)學表達式,只要用已知的模式對BP網(wǎng)絡加以訓練,網(wǎng)絡就具有輸入輸出對之間的映射能力。BP網(wǎng)絡執(zhí)行的是有教師訓練,其樣本集是由形如(輸入向量,期望輸出向量)的向量對構成的。在開始訓練前,所有的權值和閾值都應該用一些不同的小隨機數(shù)進行初始化。BP算法主要包括兩個階段:(1) 向前傳播階段從樣本集中取一個樣本(Xp,Yp),將Xp輸入網(wǎng)絡,其中Xp為輸入向量,Yp為期望輸出向量。計算相應的實際輸出Op。在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡在完成訓練后正常運行時執(zhí)行的過程。在此過程中,網(wǎng)絡執(zhí)行的是下列運算:(2) 向后傳播階段計算實際輸出Op與相應的理想輸出Yp的差;按極小化誤差的方法調(diào)整權矩陣。這兩個階段的工作一般應受到精度要求的控制,定義 (1)作為網(wǎng)絡關于第p個樣本的誤差測度(誤差函數(shù))。而將網(wǎng)絡關于整個樣本集的誤差測度定義為 (2)如前所述,將此階段稱為向后傳播階段,也稱之為誤差傳播階段。為了更清楚地說明本文所使用的BP網(wǎng)絡的訓練過程,首先假設輸入層、中間層和輸出層的單元數(shù)分別是N、L和M。X=(x0,x1,xN-1)是加到網(wǎng)絡的輸入矢量,H=(h0,h1,hL-1)是中間層輸出矢量,Y=(y0,y1,yM-1)是網(wǎng)絡的實際輸出矢量,并且用D=(d0,d1,dM-1)來表示訓練組中各模式的目標輸出矢量。輸出單元i到隱單元j的權值是Vij,而隱單元j到輸出單元k的權值是Wjk。另外用k和j來分別表示輸出單元和隱單元的閾值。于是,中間層各單元的輸出為: (3)而輸出層各單元的輸出是: (4)其中f(*)是激勵函數(shù),采用S型函數(shù): (5)在上述條件下,網(wǎng)絡的訓練過程如下:(1) 選定訓練集。由相應的訓練策略選擇樣本圖像作為訓練集。(2) 初始化各權值Vij,Wjk和閾值j,k,將其設置為接近于0的隨機值,并初始化精度控制參數(shù)和學習率。(3) 從訓練集中取一個輸入向量X加到網(wǎng)絡,并給定它的目標輸出向量D。(4) 利用式(7)計算出一個中間層輸出H,再用式(8)計算出網(wǎng)絡的實際輸出Y。(5) 將輸出矢量中的元素yk與目標矢量中的元素dk進行比較,計算出M個輸出誤差項:對中間層的隱單元也計算出L個誤差項:(6) 依次計算出各權值和閾值的調(diào)整量: (6) (7) (8) (9)(7) 調(diào)整權值和閾值:,(8) 當k每經(jīng)歷1至M后,判斷指標是否滿足精度要求:E,其中E是總誤差函數(shù),且。如果不滿足,就返回(3),繼續(xù)迭代。如果滿足,就進入下一步。(9) 訓練結束,將權值和閾值保存在文件中。這時可以認為各個權值已經(jīng)達到穩(wěn)定,分類器形成。再一次進行訓練時,直接從文件導出權值和閾值進行訓練,不需要進行初始化。BP算法流程圖YALE數(shù)據(jù)庫是由耶魯大學計算視覺與扼制中心創(chuàng)立,包括15位志愿者,每個人有11張不同姿勢、光照和表情的圖片,共計165張圖片,圖片均為80*100像素的BMP格式圖像。我們將整個數(shù)據(jù)庫分為兩個部分,每個人的前5幅圖片作為網(wǎng)絡的訓練使用,后6副圖片作為測試使用。說明:程序的輸入數(shù)據(jù)可以從這里下載:鏈接: /s/1aAHGyg0sFH1PYdY4XekyTQ 密碼: vsfb如果不能下載了,可以自己找找YALE人臉數(shù)據(jù)庫。代碼分為read_can_use.m和main_can_ues.m先運行read_can_use.m讀取圖片的像素值,使用奇異值分解的方法得到對應的特征。程序預設了只讀取前5個人的人臉圖片,可以自己改成最多15個人。然后運行main_can_use.m,程序會輸出1 1 2 3 2 3,每個數(shù)字代表一張圖片最有可能的識別類別(就是人的編號)。對每個人的11張圖片,取前7張訓練網(wǎng)絡,后4張測試網(wǎng)絡,取前5個人進行實驗。所以共有35個訓練樣本,20個測試樣本。比如輸出的結果是1 1 1 1 2 2 1 2 3 3 3 3 .,因為每4個數(shù)字是屬于同一個人的,前四個都是1則都預測正確,第二組的4個數(shù)字2 2 1 2 中的那個1就是預測錯誤(本來是2預測成了1)。由于參數(shù)的隨機初始化,不保證每次的結果都相同。function main()%clcclear all;%close all;load(date1_5.mat,feature);warning off allSamNum=35; %輸入樣本數(shù)量TestSamNum=35; %測試樣本數(shù)量ForcastSamNum=20; %預測樣本數(shù)量HiddenUnitNum=8; %中間層隱節(jié)點數(shù)量取8InDim=40; %網(wǎng)絡輸入維度OutDim=4; %網(wǎng)絡輸出維度%inputp=;t=;pnew=;for i=1:55 if(mod(i,11)0) p=p;feature(i,:); elsepnew=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 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); %原始樣本對(輸入和輸出)初始化rand(state,sum(100*clock) %依據(jù)系統(tǒng)時鐘種子產(chǎn)生隨機數(shù)SamOut=tn;TestSamIn=SamIn; %這里取輸入樣本與測試樣本相同因為樣本容量偏少TestSamOut=SamOut; %也取輸出樣本與測試樣本相同MaxEpochs=50000; %最多訓練次數(shù)為50000lr=0.035; %學習速率為0.035E0=0.65*10(-3); %目標誤差為0.65*10(-3)W1=0.5*rand(HiddenUnitNum,InDim)-0.2; %初始化輸入層與隱含層之間的權值B1=0.5*rand(HiddenUnitNum,1)-0.2; %初始化輸入層與隱含層之間的閾值W2=0.5*rand(OutDim,HiddenUnitNum)-0.2; %初始化輸出層與隱含層之間的權值B2=0.5*rand(OutDim,1)-0.2; %初始化輸出層與隱含層之間的閾值ErrHistory=; %給中間變量預先占據(jù)內(nèi)存for i=1:MaxEpochs % HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum); % 隱含層網(wǎng)絡輸出HiddenOut=1./(1+exp(-(W1*SamIn+repmat(B1,1,SamNum); % 隱含層網(wǎng)絡輸出NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum); % 輸出層網(wǎng)絡輸出 Error=SamOut-NetworkOut; % 實際輸出與網(wǎng)絡輸出之差 SSE=sumsqr(Error) ; %能量函數(shù)(誤差平方和)ErrHistory=ErrHistory SSE; if SSEE0,break, end % 調(diào)整權值(閾值) Delta2=Error; Delta1=W2*Delta2.*HiddenOut.*(1-HiddenOut); dW2=Delta2*HiddenOut; dB2=Delta2*ones(SamNum,1); dW1=Delta1*SamIn; dB1=Delta1*ones(SamNum,1); %對輸出層與隱含層之間的權值和閾值進行修正 W2=W2+lr*dW2; B2=B2+lr*dB2; %對輸入層與隱含層之間的權值和閾值進行修正 W1=W1+lr*dW1; B1=B1+lr*dB1;endHiddenOut=1./(1+exp(-(W1*SamIn+repmat(B1,1,TestSamNum); % 隱含層輸出最終結果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); % 輸出層輸出最終結果a=postmnmx(NetworkOut,mint,maxt); % 還原網(wǎng)絡輸出層的結果% 利用訓練好的網(wǎng)絡進行預測pnewn=tramnmx(pnew,minp,maxp); %歸一化;HiddenOut=1./(1+exp(-(W1*pnewn+repmat(B1,1,ForcastSamNum);anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum); % 輸出層輸出預測結果%把網(wǎng)絡預測得到的數(shù)據(jù)還原為原始的數(shù)量級;anew=postmnmx(anewn,mint,maxt);answer=zeros(1,size(anew,2);d=1;for j=1:20 for i=4:-1:1 answer(j)=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=siz
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年山東水發(fā)高科發(fā)展集團有限公司第三季度社會招聘筆試參考題庫附帶答案詳解
- 2024年甘肅公交建集團清傅項目收費運營工作人員招聘(90人)筆試參考題庫附帶答案詳解
- 第26課《詩詞五首:赤壁》教學設計 2024-2025學年統(tǒng)編版語文八年級上冊
- 《與妻書》教學設計-2023-2024學年高一語文統(tǒng)編版必修下冊
- 2024年安徽交控集團界阜蚌公司招聘收費協(xié)管員12人筆試參考題庫附帶答案詳解
- 2025年廣西農(nóng)業(yè)工程職業(yè)技術學院單招職業(yè)技能測試題庫完整
- 2025年邯鄲幼兒師范高等??茖W校單招職業(yè)傾向性測試題庫及參考答案
- 2024年12月國家中醫(yī)藥管理局機關服務中心編外合同制人員公開招聘2人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2024年12月2025陜西延安市教育類事業(yè)單位校園公開招聘141人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 建設工程安全生產(chǎn)技術題庫+答案
- 2025年廣東中考物理學科模擬試卷(廣東專屬)
- (完整版)小學一年級數(shù)學20以內(nèi)進退位加減法(1600道題)計算卡
- 2025年包頭鐵道職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 光伏安全施工方案范本
- 北京2024年北京市測繪設計研究院面向應屆生招聘筆試歷年參考題庫附帶答案詳解
- 2025上半年江蘇省南通如東事業(yè)單位招聘7人易考易錯模擬試題(共500題)試卷后附參考答案
- 走進李白校本 課程設計
- 2025新人教版英語七年級下單詞默寫單(小學部分)
- 山東省濟南市2024-2024學年高三上學期1月期末考試 地理 含答案
- 2025年春新冀教版英語三年級下冊全冊教學課件
- 2024銀行從業(yè)資格個人貸款教材
評論
0/150
提交評論