版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 深 圳 大 學(xué)</b></p><p><b> 本科畢業(yè)論文</b></p><p><b> (20 屆)</b></p><p> 改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)在人臉識(shí)別中的應(yīng)用</p><p> 所在學(xué)院
2、 </p><p> 專業(yè)班級(jí) 電子信息工程 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月
3、 </p><p> 深圳大學(xué)本科畢業(yè)論文(設(shè)計(jì))誠(chéng)信聲明</p><p> 本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì)),題目《 》 是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式注明。除此之外,本論文不包含任何其他
4、個(gè)人或集體已經(jīng)發(fā)表或撰寫過(guò)的作品成果。本人完全意識(shí)到本聲明的法律結(jié)果。</p><p> 畢業(yè)論文(設(shè)計(jì))作者簽名:</p><p> 日期: 年 月 日</p><p><b> 目 錄</b></p><p><b> 摘要(關(guān)鍵詞)1</b></p>
5、<p><b> 1.引言1</b></p><p> 1.1人臉識(shí)別綜述1</p><p> 1.2人臉識(shí)別的基本方法2</p><p> 1.3人臉識(shí)別的應(yīng)用3</p><p> 2.主成分分析法4</p><p> 2.1主成分分析法概述4</p>
6、;<p> 2.2 K-L變換4</p><p> 2.3主成分分析法及其基本思想與任務(wù)5</p><p> 2.4主成分分析法的原理、目的及主成分特點(diǎn)7</p><p> 3. BP神經(jīng)網(wǎng)絡(luò)及其在主成分分析法中的應(yīng)用7</p><p> 3.1 BP神經(jīng)網(wǎng)絡(luò)概述及其模型與結(jié)構(gòu)7</p><
7、;p> 3.2 BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù)、學(xué)習(xí)規(guī)則及其語(yǔ)言實(shí)現(xiàn)8</p><p> 3.3 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練及其設(shè)計(jì)過(guò)程13</p><p> 3.4 BP神經(jīng)網(wǎng)絡(luò)的限制及其改進(jìn)方法14</p><p> 3.5 主成分分析法的計(jì)算步驟及其語(yǔ)言實(shí)現(xiàn)17</p><p> 4. 測(cè)試過(guò)程與結(jié)果及軟件的語(yǔ)言實(shí)現(xiàn)26<
8、;/p><p> 4.1實(shí)驗(yàn)前期準(zhǔn)備的操作26</p><p> 4.2 測(cè)試人臉圖庫(kù)29</p><p> 4.3保存和讀取BP網(wǎng)絡(luò)訓(xùn)練結(jié)果33</p><p> 4.4人臉識(shí)別實(shí)驗(yàn)結(jié)果展示37</p><p><b> 5. 結(jié)束語(yǔ)45</b></p><p
9、><b> 參考文獻(xiàn)47</b></p><p><b> 致謝48</b></p><p> Abstract(Key words)49</p><p> 改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)在人臉識(shí)別中的應(yīng)用</p><p> 【摘要】隨著社會(huì)的進(jìn)步,科技的發(fā)展,生活的改善,人類的安全意識(shí)也
10、在逐漸提高,因此,人臉識(shí)別系統(tǒng)正在引起越來(lái)越多人的關(guān)注。本文是在BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行改進(jìn),并利用改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)的優(yōu)秀分析能力,對(duì)綜合臉譜進(jìn)行分析,可以得出臉譜圖像的一般特征,通過(guò)C++將這一過(guò)程編寫成以軟件的方式體現(xiàn),使得這一研究可以得出相似圖片之間的差別,在人工智能方面,可以對(duì)其差別進(jìn)行分析,并做出相應(yīng)的指令,特別是在倉(cāng)庫(kù)的智能管理方面非常有益。</p><p> 【關(guān)鍵詞】數(shù)據(jù)挖掘;人臉?lè)治?BP神經(jīng)
11、網(wǎng)絡(luò);PCA算法;人臉識(shí)別軟件;C++編程</p><p><b> 1.引言</b></p><p><b> 1.1人臉識(shí)別綜述</b></p><p> 人臉識(shí)別,特指利用分析比較人臉視覺(jué)特征信息進(jìn)行身份鑒別的計(jì)算機(jī)技術(shù)。人臉識(shí)別是一項(xiàng)熱門的計(jì)算機(jī)技術(shù)研究領(lǐng)域,人臉追蹤偵測(cè),自動(dòng)調(diào)整影像放大,夜間紅外偵測(cè),自動(dòng)
12、調(diào)整曝光強(qiáng)度;它屬于生物特征識(shí)別技術(shù),是對(duì)生物體(一般特指人)本身的生物特征來(lái)區(qū)分生物體個(gè)體。近十年來(lái),有關(guān)研究表明,人臉特征定位已經(jīng)成為圖像技術(shù)的一個(gè)熱點(diǎn)領(lǐng)域,人臉的識(shí)別過(guò)程一般分三步[1]:</p><p> (1)首先建立人臉的面像檔案。即用攝像機(jī)采集單位人員的人臉的面像文件或取他們的照片形成面像文件,并將這些面像文件生成面紋(Faceprint)編碼貯存起來(lái)。</p><p>
13、 (2)獲取當(dāng)前的人體面像。即用攝像機(jī)捕捉的當(dāng)前出入人員的面像,或取照片輸入,并將當(dāng)前的面像文件生成面紋編碼。</p><p> (3)用當(dāng)前的面紋編碼與檔案庫(kù)存的比對(duì)。即將當(dāng)前的面像的面紋編碼與檔案庫(kù)存中的面紋編碼進(jìn)行檢索比對(duì)。上述的“面紋編碼”方式是根據(jù)人臉臉部的本質(zhì)特征和開頭來(lái)工作的。這種面紋編碼可以抵抗光線、皮膚色調(diào)、面部毛發(fā)、發(fā)型、眼鏡、表情和姿態(tài)的變化,具有強(qiáng)大的可靠性,從而使它可以從百萬(wàn)人中精確地
14、辯認(rèn)出某個(gè)人。人臉的識(shí)別過(guò)程,利用普通的圖像處理設(shè)備就能自動(dòng)、連續(xù)、實(shí)時(shí)地完成。</p><p> 人臉檢測(cè)(Face Detection)是一種在任意數(shù)字圖像中找到人臉的位置和大小的計(jì)算機(jī)技術(shù)。它可以檢測(cè)出面部特征,并忽略諸如建筑物、數(shù)目和身體等其他任何東西。有時(shí)候,人臉檢測(cè)也負(fù)責(zé)找到面部的細(xì)微特征,如眼睛、鼻子、嘴巴等的精細(xì)位置。許多算法將人臉檢測(cè)實(shí)現(xiàn)為一個(gè)兩類模式分類任務(wù),也就是說(shuō),圖像的指定位置會(huì)被轉(zhuǎn)換
15、為特征,然后一個(gè)預(yù)先訓(xùn)練好的分類器將決定該部分是或不是人臉。通常情況下,要用到滑動(dòng)窗口技術(shù),也就是說(shuō),分類器對(duì)圖像的任意位置和任意尺寸的部分(通常是正方形或長(zhǎng)方形)進(jìn)行分類,判定是或不是人臉。具有空白和靜態(tài)背景的圖像比較容易處理,如果圖像只包含一個(gè)正面人臉的</p><p> 話,只要去除背景后就只剩下人臉了。使用膚色來(lái)檢測(cè)人臉是比較脆弱的。數(shù)據(jù)庫(kù)可能沒(méi)有包含所有皮膚的顏色,同時(shí)光照也會(huì)影響檢測(cè)結(jié)果。由于使用色
16、彩分割,具有類似于膚色顏色的非動(dòng)物物體也會(huì)被檢測(cè)到。這種方式的優(yōu)點(diǎn)是對(duì)于人臉的朝向和尺寸沒(méi)有要求,并且一個(gè)好的實(shí)現(xiàn)可以處理復(fù)雜的背景。人臉檢測(cè)任務(wù)的完成涉及從復(fù)雜的背景中分割、抽取、驗(yàn)證人臉區(qū)域和可能用到的人臉特征。</p><p> 人臉特征定位與提取是人臉模式識(shí)別研究的基本問(wèn)題之一,在特征定位中一般采用的是一種直方圖匹配的方法。由于人眼的灰度特征與人臉其它部位有明顯不同,我們可以用直方圖匹配的方法很容易地得
17、到眼睛的大致位置。對(duì)于人臉特征提取而言,抽取有效的圖像特征是完成人臉識(shí)別的關(guān)鍵。臉部特征檢測(cè), 即在圖像或圖像序列的給定區(qū)域內(nèi)搜索部分或所有人臉特征(如眼、鼻、嘴、耳等) 的位置、關(guān)鍵點(diǎn)或輪廓線。目前用于人臉識(shí)別的特征有如下幾種:直觀性特征、灰度的統(tǒng)計(jì)特征、變換系數(shù)特征、代數(shù)特征。人臉識(shí)別經(jīng)常受到人臉圖像數(shù)據(jù)高維問(wèn)題的影響,特征提取就是將數(shù)據(jù)空間變?yōu)樘卣骺臻g,從而達(dá)到降維的作用[2]。</p><p> 1.2
18、人臉識(shí)別的基本方法</p><p> 人臉識(shí)別系統(tǒng)包括兩個(gè)主要的技術(shù)環(huán)節(jié),先是檢測(cè)與定位,即從輸入圖像中找到人臉,將人臉從背景中分離開來(lái),然后再對(duì)標(biāo)準(zhǔn)化后的人臉進(jìn)行特征提取和識(shí)別。這兩個(gè)環(huán)節(jié)獨(dú)立性非常強(qiáng),所以通常分開討論。</p><p> 關(guān)于人臉檢測(cè)與定位目前普遍采用的方法有參考模板法、人臉規(guī)則法、樣品學(xué)習(xí)法、膚色模型法和特征子臉?lè)ǖ?種。而關(guān)于特征提取和識(shí)別,目前比較常見的則有基
19、于特征向量法和面紋模板法。</p><p> 人臉檢測(cè)的算法主要有以下幾種[3]:</p><p><b> ?、賲⒖寄0宸?lt;/b></p><p> 首先設(shè)計(jì)一個(gè)或數(shù)個(gè)標(biāo)準(zhǔn)人臉的模板,然后計(jì)算測(cè)試采集的樣品與標(biāo)準(zhǔn)模板之間的匹配程度,并通過(guò)閾值來(lái)判斷是否存在人臉;</p><p><b> ②人臉規(guī)則法&
20、lt;/b></p><p> 由于人臉具有一定的結(jié)構(gòu)分布特征,所謂人臉規(guī)則的方法即提取這些特征生成相應(yīng)的規(guī)則以判斷測(cè)試樣品是否包含人臉;</p><p><b> ?、蹣悠穼W(xué)習(xí)法</b></p><p> 這種方法即采用模式識(shí)別中人工神經(jīng)網(wǎng)絡(luò)的方法,即通過(guò)對(duì)面像樣品集和非面像樣品集的學(xué)習(xí)產(chǎn)生分類器;</p><p
21、><b> ?、苣w色模型法</b></p><p> 這種方法是依據(jù)面貌膚色在色彩空間中分布相對(duì)集中的規(guī)律來(lái)進(jìn)行檢測(cè)。</p><p><b> ?、萏卣髯幽?lè)?lt;/b></p><p> 這種方法是將所有面像集合視為一個(gè)面像子空間,并基于檢測(cè)樣品與其在子孔間的投影之間的距離判斷是否存在面像。</p>
22、<p> 特征提取和識(shí)別的算法主要有以下兩種[4]:</p><p><b> ①特征向量法</b></p><p> 該方法是先確定眼虹膜、鼻翼、嘴角等面像五官輪廓的大小、位置、距離等屬性,然后再計(jì)算出它們的幾何特征量,而這些特征量形成一描述該面像的特征向量。</p><p><b> ?、诿婕y模板法</b&
23、gt;</p><p> 該方法是在庫(kù)中存貯若干標(biāo)準(zhǔn)面像模板或面像器官模板,在進(jìn)行比對(duì)時(shí),將采樣面像所有象素與庫(kù)中所有模板采用歸一化相關(guān)量度量進(jìn)行匹配。此外,還有采用模式識(shí)別的自相關(guān)網(wǎng)絡(luò)或特征與模板相結(jié)合的方法。</p><p> 1.3 人臉識(shí)別的應(yīng)用 </p><p> 自美國(guó)發(fā)生911恐怖襲擊事件以后,世界各國(guó)對(duì)如何防范恐怖分子、保障民眾安全異常關(guān)注,不
24、斷積極尋找有效的身份鑒定方法。另一方面,全球范圍內(nèi)電子商務(wù)已迅速興起,網(wǎng)絡(luò)信息安全問(wèn)題也伴隨而來(lái),安全可靠的網(wǎng)上購(gòu)物和交易是電字商務(wù)進(jìn)一步發(fā)展的核心問(wèn)題。而傳統(tǒng)的安全方式如密碼、個(gè)人識(shí)別碼 (PIN)、磁卡和鑰匙經(jīng)常被非法盜用或者濫用,因此只能提供有限的保障。</p><p> 人臉識(shí)別技術(shù)目前在國(guó)內(nèi)的前景非??捎^,已經(jīng)成功應(yīng)用到金融、軍工等多個(gè)領(lǐng)域,行業(yè)發(fā)展優(yōu)勢(shì)明顯,基于現(xiàn)階段的技術(shù)與市場(chǎng)現(xiàn)狀,人臉識(shí)別的發(fā)展
25、前景十分樂(lè)觀。就技術(shù)發(fā)展角度來(lái)說(shuō),首先,人臉識(shí)別技術(shù)及產(chǎn)品應(yīng)用將從“室內(nèi)”走向“室外”。人臉識(shí)別系統(tǒng)不僅可以應(yīng)用于智能預(yù)警監(jiān)控上,還可以應(yīng)用于門禁系統(tǒng)。盜竊案件的發(fā)生也是人們時(shí)常擔(dān)憂的問(wèn)題,目前普及的門禁系統(tǒng)僅僅做到通過(guò)密碼來(lái)防盜,如果可以使人臉識(shí)別系統(tǒng)應(yīng)用于門禁系統(tǒng)上,那么受安全保護(hù)的地區(qū)可以通過(guò)人臉識(shí)別辨識(shí)試圖進(jìn)入者的身份,安全等級(jí)將大幅度提高。由此可見人臉識(shí)別目前在大多數(shù)領(lǐng)域中起到舉足輕重的作用,尤其是用在機(jī)關(guān)單位的安全和考勤、網(wǎng)
26、絡(luò)安全、銀行、海關(guān)邊檢、物業(yè)管理、軍隊(duì)安全、智能門禁、計(jì)算機(jī)登錄系統(tǒng)。我國(guó)在這方面也取得了較好的成就,國(guó)家863項(xiàng)目“面像檢測(cè)與特征定位核心技術(shù)”通過(guò)成果鑒定并初步應(yīng)用,就標(biāo)志著我國(guó)在人臉識(shí)別這一當(dāng)今熱點(diǎn)科研領(lǐng)域掌握了一定的核心技術(shù)。</p><p> 隨著多媒體技術(shù)的發(fā)展,人們的生活得到改善,在生活更便利的同時(shí),人們的安全防范意識(shí)也越來(lái)越高。人臉識(shí)別是當(dāng)前生物特征識(shí)別研究的熱點(diǎn)之一,逐漸成為人們研究的焦點(diǎn),目
27、前的人臉識(shí)別方法主要集中在二維圖像方面,由于受到光照、姿勢(shì)、表情變化的影響,識(shí)別的準(zhǔn)確度受到很大限制。針對(duì)人臉識(shí)別的難點(diǎn),一個(gè)較好的辦法是利用PCA算法進(jìn)行人臉的識(shí)別。本文主要研究基于PCA算法的人臉識(shí)別問(wèn)題,PCA算法是一種得到廣泛應(yīng)用的事實(shí)上的標(biāo)準(zhǔn)人臉識(shí)別方法。傳統(tǒng)主成分分析方法的基本原理是:利用K-L變換抽取人臉的主要成分,構(gòu)成特征臉空間,識(shí)別時(shí)將測(cè)試圖像投影到此空間,得到一組投影系數(shù),通過(guò)與各個(gè)人臉圖像比較進(jìn)行識(shí)別。這種方法使得
28、壓縮前后的均方誤差最小,且變換后的低維空間有很好的分辨能力。下面將主要介紹基于改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)上實(shí)現(xiàn)的主成分分析法在人臉識(shí)別中的應(yīng)用。</p><p><b> 2. 主成分分析法</b></p><p> 2.1主成分分析法概述</p><p> 在處理信息時(shí),當(dāng)兩個(gè)變量之間有一定相關(guān)關(guān)系時(shí),可以解釋為這兩個(gè)變量反映此課題的信息有一定
29、的重疊,例如,高??蒲袪顩r評(píng)價(jià)中的立項(xiàng)課題數(shù)與項(xiàng)目經(jīng)費(fèi)、經(jīng)費(fèi)支出等之間會(huì)存在較高的相關(guān)性;學(xué)生綜合評(píng)價(jià)研究中的專業(yè)基礎(chǔ)課成績(jī)與專業(yè)課成績(jī)、獲獎(jiǎng)學(xué)金次數(shù)等之間也會(huì)存在較高的相關(guān)性。而變量之間信息的高度重疊和高度相關(guān)會(huì)給統(tǒng)計(jì)方法的應(yīng)用帶來(lái)許多障礙。</p><p> 為了解決這些問(wèn)題,最簡(jiǎn)單和最直接的解決方案是削減變量的個(gè)數(shù),但這必然又會(huì)導(dǎo)致信息丟失和信息不完整等問(wèn)題的產(chǎn)生。為此,人們希望探索一種更為有效的解決方法
30、,它既能大大減少參與數(shù)據(jù)建模的變量個(gè)數(shù),同時(shí)也不會(huì)造成信息的大量丟失。主成分分析正式這樣一種能夠有效降低變量維數(shù),并已得到廣泛應(yīng)用的分析方法。</p><p> 主成分分析以最少的信息丟失為前提,將眾多的原有變量綜合成較少幾個(gè)綜合指標(biāo),通常綜合指標(biāo)(主成分)有以下幾個(gè)特點(diǎn)[5]:</p><p> 1.主成分個(gè)數(shù)遠(yuǎn)遠(yuǎn)少于原有變量的個(gè)數(shù)</p><p> 原有變
31、量綜合成少數(shù)幾個(gè)因子之后,因子將可以替代原有變量參與數(shù)據(jù)建模,這將大大減少分析過(guò)程中的計(jì)算工作量。</p><p> 2.主成分能夠反映原有變量的絕大部分信息</p><p> 因子并不是原有變量的簡(jiǎn)單取舍,而是原有變量重組后的結(jié)果,因此不會(huì)造成原有變量信息的大量丟失,并能夠代表原有變量的絕大部分信息。</p><p> 3.主成分之間應(yīng)該互不相關(guān)</p
32、><p> 通過(guò)主成分分析得出的新的綜合指標(biāo)(主成分)之間互不相關(guān),因子參與數(shù)據(jù)建模能夠有效地解決變量信息重疊、多重共線性等給分析應(yīng)用帶來(lái)的諸多問(wèn)題。</p><p> 4.主成分具有命名解釋性</p><p> 總之,主成分分析法是研究如何以最少的信息丟失將眾多原有變量濃縮成少數(shù)幾個(gè)因子,如何使因子具有一定的命名解釋性的多元統(tǒng)計(jì)分析方法。</p>
33、<p><b> 2.2 K-L變換</b></p><p> PCA方法是由Turk和Pentlad提出來(lái)的,它的基礎(chǔ)就是Karhunen-Loeve變換(簡(jiǎn)稱K-L變換),是一種常用的正交變換。首先對(duì)K-L變換作一個(gè)簡(jiǎn)單介紹:</p><p> 假設(shè)X為n維的隨機(jī)變量,X可以用n個(gè)基向量的加權(quán)和來(lái)表示:</p><p>&l
34、t;b> (1)</b></p><p> 式中:αi是加權(quán)系數(shù),φi是基向量,此式可以用矩陣的形式表示:</p><p> X =( ,, ,……,)( ,,…… )= (2)</p><p><b> 系數(shù)向量為:</b></p><p><
35、;b> (3)</b></p><p> 綜上所述,K-L展開式的系數(shù)可用下列步驟求出:</p><p> 步驟一,求隨機(jī)向量X的自相關(guān)矩陣R=E[XTX],由于沒(méi)有類別信息的樣本集的μ均值向量,常常沒(méi)有意義,所以也可以把數(shù)據(jù)的協(xié)方差矩陣作為K-L坐標(biāo)系的產(chǎn)生矩陣,這里μ是總體均值向量。步驟二,求出自相關(guān)矩陣或協(xié)方差矩陣R的本征值和本征向量( ,, ,……,)。步驟
36、三,展開式系數(shù)即為。</p><p> K-L變換的實(shí)質(zhì)是建立一個(gè)新的坐標(biāo)系,將一個(gè)物體主軸沿特征矢量對(duì)齊的轉(zhuǎn)變換,這個(gè)變換解除了原有數(shù)據(jù)向量的各個(gè)分量之間相關(guān)性,從而有可能去掉那些帶有較少信息的坐標(biāo)系以達(dá)到降低特征空間維數(shù)的目的[6]。</p><p> 2.3 主成分分析法及其基本思想與任務(wù)</p><p> 主成分分析(Principal Compone
37、nt Analysis, 簡(jiǎn)稱PCA)是一種常用的基于變量協(xié)方差矩陣對(duì)信息進(jìn)行處理、壓縮和抽提的有效方法,其基本思想是設(shè)法將原來(lái)眾多的具有一定相關(guān)性的指標(biāo)X1,X2,…,XP(比如p個(gè)指標(biāo)),重新組合成一組較少個(gè)數(shù)的互不相關(guān)的綜合指標(biāo)Fm來(lái)代替原來(lái)指標(biāo)。那么綜合指標(biāo)應(yīng)該如何去提取,使其既能最大程度的反映原變量Xp所代表的信息,又能保證新指標(biāo)之間保持相互無(wú)關(guān)(信息不重疊)。</p><p> 設(shè)表示原變量的第一個(gè)
38、線性組合所形成的主成分指標(biāo),即,由數(shù)學(xué)知識(shí)可知,每一個(gè)主成分所提取的信息量可用其方差來(lái)度量,其方差Var(F1)越大,表示包含的信息越多。常常希望第一主成分所含的信息量最大,因此在所有的線性組合中選取的應(yīng)該是X1,X2,…,XP的所有線性組合中方差最大的,故稱為第一主成分。如果第一主成分不足以代表原來(lái)p個(gè)指標(biāo)的信息,再考慮選取第二個(gè)主成分指標(biāo),為有效地反映原信息,已有的信息就不需要再出現(xiàn)在中,即與要保持獨(dú)立、不相關(guān),用數(shù)學(xué)語(yǔ)言表達(dá)就是其
39、協(xié)方差Cov(,)=0,所以是與不相關(guān)的X1,X2,…,XP的所有線性組合中方差最大的,故稱為第二主成分,依此類推構(gòu)造出的F1,F2,……,Fm為原變量指標(biāo)X1,X2,…,XP第一,第二,……,第m個(gè)主成分。</p><p><b> ?。?) </b></p><p><b> 根據(jù)以上分析得知:</b></p><p&g
40、t; (1) 與互不相關(guān),即Cov(,) = 0,并有Var()=,其中為X的協(xié)方差陣</p><p> (2)是X1,X2,…,XP的一切線性組合(系數(shù)滿足上述要求)中方差最大的,……,即是與F1,F2,……,Fm -1都不相關(guān)的X1,X2,…,XP的所有線性組合中方差最大者。F1,F2,……,Fm(m≤p)為構(gòu)造的新變量指標(biāo),即原變量指標(biāo)的第一、第二、……、第m個(gè)主成分。</p><p
41、> 由以上分析可見,主成分分析法的主要任務(wù)有兩點(diǎn):</p><p> ?。?)確定各主成分(i=1,2,…,m)關(guān)于原變量(j=1,2 ,…, p)的表達(dá)式,即系數(shù)( i=1,2,…,m; j=1,2 ,…,p)。從數(shù)學(xué)上可以證明,原變量協(xié)方差矩陣的特征根是主成分的方差,所以前m個(gè)較大特征根就代表前m個(gè)較大的主成分方差值;原變量協(xié)方差矩陣前m個(gè)較大的特征值(這樣選取才能保證主成分的方差依次最大)所對(duì)應(yīng)的特
42、征向量就是相應(yīng)主成分表達(dá)式的系數(shù),為了加以限制,系數(shù)啟用的是對(duì)應(yīng)的單位化的特征向量,即有= 1。</p><p> ?。?)計(jì)算主成分載荷,主成分載荷是反映主成分與原變量之間的相互關(guān)聯(lián)程度: </p><p><b> ?。?)</b></p><p> 采用這種方法可以克服單一的財(cái)務(wù)指標(biāo)不能真實(shí)反映公司的財(cái)務(wù)情況的缺點(diǎn),引進(jìn)多方面的財(cái)務(wù)指標(biāo)
43、,但又將復(fù)雜因素歸結(jié)為幾個(gè)主成分,使得復(fù)雜問(wèn)題得以簡(jiǎn)化,同時(shí)得到更為科學(xué)、準(zhǔn)確的財(cái)務(wù)信息。</p><p> 2.4 主成分分析法的原理、目的及主成分特點(diǎn)</p><p> 主成分分析法的原理:</p><p> 根據(jù)方差最大化原理,用一組新的、線性無(wú)關(guān)且相互正交的向量來(lái)表征原來(lái)數(shù)據(jù)矩陣的行(或列)。這組新向量(主成分)是原始數(shù)據(jù)向量的線性組合。通過(guò)對(duì)原始數(shù)據(jù)
44、的平移、尺度伸縮(減均值除方差)和坐標(biāo)旋轉(zhuǎn)(特征分解),得到新的坐標(biāo)系(特征向量)后,用原始數(shù)據(jù)在新坐標(biāo)系下的投影(點(diǎn)積)來(lái)替代原始變量。</p><p> 主成分分析法的目的:</p><p> 壓縮變量個(gè)數(shù),用較少的變量去解釋原始數(shù)據(jù)中的大部分變量,剔除冗余信息。即將許多相關(guān)性很高的變量轉(zhuǎn)化成個(gè)數(shù)較少、能解釋大部分原始數(shù)據(jù)方差且彼此互相獨(dú)立的幾個(gè)新變量,也就是所謂的主成分。這樣就可
45、以消除原始變量間存在的共線性,克服由此造成的運(yùn)算不穩(wěn)定、矩陣病態(tài)等問(wèn)題。</p><p> 主成分分析法中其主成分有如下特點(diǎn)[7]:</p><p> 1.主成分是原變量的線性組合;</p><p> 2.各個(gè)主成分之間互不相關(guān);</p><p> 3.主成分按照方差從大到小依次排列,第一主成分對(duì)應(yīng)最大的方差(特征值);</p&
46、gt;<p> 4.每個(gè)主成分的均值為0、其方差為協(xié)方差陣對(duì)應(yīng)的特征值;</p><p> 5.不同的主成分軸(載荷軸)之間相互正交。</p><p> 6.如果原來(lái)有p個(gè)變量,則最多可以選取p個(gè)主成分,這p個(gè)主成分的變化可以完全反映原來(lái)全部p個(gè)變量的變化;</p><p> 7.如果選取的主成分少于p個(gè),則這些主成分的變化應(yīng)盡可能多地反映原來(lái)
47、全部p個(gè)變量的變化。</p><p> 3.BP神經(jīng)網(wǎng)絡(luò)及其在主成分分析法中的應(yīng)用</p><p> 3.1 BP神經(jīng)網(wǎng)絡(luò)及其模型與結(jié)構(gòu)</p><p> BP神經(jīng)網(wǎng)絡(luò),即反向傳播網(wǎng)絡(luò),是將W-H學(xué)習(xí)規(guī)則一般化,對(duì)非線性可微分函數(shù)進(jìn)行權(quán)值訓(xùn)練的多層網(wǎng)絡(luò)。它是利用輸出后的誤差來(lái)估計(jì)輸出層的直接前導(dǎo)層的誤差,再用這個(gè)誤差估計(jì)更前一層的誤差,主要用于函數(shù)逼近、模式識(shí)
48、別、分類、數(shù)據(jù)壓縮。下面具體簡(jiǎn)紹BP網(wǎng)絡(luò)的主要功能[8]:</p><p> 1.函數(shù)逼近:用輸入矢量和相應(yīng)的輸出矢量訓(xùn)練一個(gè)網(wǎng)絡(luò)逼近一個(gè)函數(shù)。</p><p> 2.模式識(shí)別:用一個(gè)特定的輸出矢量將它與輸入矢量聯(lián)系起來(lái)。</p><p> 3.分類:對(duì)輸入矢量以所定義的合適方式進(jìn)行分類。</p><p> 4.數(shù)據(jù)壓縮:減少輸出矢量
49、維數(shù)以便于傳輸或存儲(chǔ)。</p><p> BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱含層(hide layer)和輸出層(output layer)。圖1為具有r個(gè)輸入和一個(gè)隱含層的c。</p><p> 圖 1 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)</p><p> 3.2 BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù)、學(xué)習(xí)規(guī)則及其語(yǔ)言實(shí)現(xiàn)</p><p>
50、BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù)必須是處處可微的,故BP網(wǎng)絡(luò)經(jīng)常使用的是S型的對(duì)數(shù)或正切激活函數(shù)和線性函數(shù),如圖2所示。</p><p><b> 圖2 函數(shù)</b></p><p> 一般情況下,如需對(duì)輸出層限制在0與1之間,則采用S型激活函數(shù),如采用線性函數(shù)做輸出層,則可輸出任何值。隱含層一般采用S型函數(shù)。</p><p> BP學(xué)習(xí)規(guī)則由兩部
51、分組成:信息的正向傳遞與誤差的反向傳播。正向傳播時(shí),傳播方向?yàn)檩斎雽印[含層→輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤差信號(hào)的反向傳播流程。通過(guò)這兩個(gè)過(guò)程的交替進(jìn)行,在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略,動(dòng)態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達(dá)到最小值,從而完成信息提取和記憶過(guò)程。其核心思想是:將輸出誤差以某種形式通過(guò)隱含層向輸入層逐層反轉(zhuǎn)[9]。</p><p> 設(shè)
52、BP網(wǎng)絡(luò)的輸入層有j個(gè)節(jié)點(diǎn),隱含層有i個(gè)節(jié)點(diǎn),輸出層有m個(gè)節(jié)點(diǎn),輸入層與隱含層之間的權(quán)值為,隱含層與輸出層之間的權(quán)值為,如圖3所示。隱含層的傳遞函數(shù)為,輸出層的傳遞函數(shù)為</p><p><b> 圖3 傳遞網(wǎng)絡(luò)</b></p><p><b> 信息的正向傳遞:</b></p><p> 1.隱含層中第i個(gè)神經(jīng)元的
53、輸出為:</p><p> , i=1,2....s1 (6)</p><p> 2.輸出層第k個(gè)神經(jīng)元的輸出為:</p><p> , k=1,2...,s2 (7)</p><p> 對(duì)隱含層和輸出層的輸出設(shè)計(jì)使用C++語(yǔ)言實(shí)現(xiàn)如下:
54、</p><p> void netout(int m,int n)</p><p><b> {</b></p><p> int i,j,k; //隱含層各節(jié)點(diǎn)的的輸出</p><p> for (j=1,i=2;j<=m;j++) //m為隱含層節(jié)點(diǎn)個(gè)數(shù)&l
55、t;/p><p><b> {</b></p><p> netin[i][j]=0.0;</p><p> for(k=1;k<=3;k++) //隱含層的每個(gè)節(jié)點(diǎn)均有三個(gè)輸入變量</p><p> netin[i][j]=netin[i][j]+o[i-1][k]*w[i][k][j];</
56、p><p> netin[i][j]=netin[i][j]-b[i][j];</p><p> o[i][j]=A/(1+exp(-netin[i][j]/B));</p><p> } //輸出層各節(jié)點(diǎn)的輸出</p><p> for (j=1,i=3;j<=n;j++)</
57、p><p><b> {</b></p><p> netin[i][j]=0.0;</p><p> for (k=1;k<=m;k++)</p><p> netin[i][j]=netin[i][j]+o[i-1][k]*w[i][k][j];</p><p> netin[i]
58、[j]=netin[i][j]-b[i][j];</p><p> o[i][j]=A/(1+exp(-netin[i][j]/B));</p><p><b> }</b></p><p><b> }</b></p><p> 3.定義誤差函數(shù)為:</p><p>
59、;<b> ?。?)</b></p><p> 本設(shè)計(jì)使用C++語(yǔ)言實(shí)現(xiàn)如下:</p><p> void calculd(int m,int n)</p><p><b> {</b></p><p> int i,j,k;</p><p><b> d
60、ouble t;</b></p><p> a=count-1;</p><p> d[3][1]=(o[3][1]-sample[a][3])*(A/B)*exp(-netin[3][1]/B)/pow(1+exp(-netin[3][1]/B),2); //隱含層的誤差</p><p> for (j=1,i=2;j<=m;
61、j++)</p><p><b> {</b></p><p><b> t=0.00;</b></p><p> for (k=1;k<=n;k++)</p><p> t=t+w[i+1][j][k]*d[i+1][k];</p><p> d[i][j]
62、=t*(A/B)*exp(-netin[i][j]/B)/pow(1+exp(-netin[i][j]/B),2); //輸出層的誤差</p><p><b> }</b></p><p><b> }</b></p><p> 利用梯度下降法求權(quán)值變化及誤差的反向傳播:</p
63、><p> 1.輸出層的權(quán)值變化</p><p> 對(duì)從第i個(gè)輸入到第k個(gè)輸出的權(quán)值,有:</p><p> = </p><p><b> ?。?)</b></p><p><b> 其中,</b></p><p>
64、<b> 同理可得:</b></p><p> = </p><p><b> ?。?0) </b></p><p><b> 2.隱含層權(quán)值變化</b></p><p> 對(duì)從第j個(gè)輸入到第i個(gè)輸出的權(quán)值,有:</p><
65、;p><b> =</b></p><p> = (11)</p><p> 其中, </p><p><b> 同理可得:</b></p><p> =
66、 (12)</p><p> 輸出層與隱含層權(quán)值變化的設(shè)計(jì)使用C++語(yǔ)言實(shí)現(xiàn)如下:</p><p> void calculwc(int m,int n)</p><p><b> {</b></p><p> int i,j,k;</p><p> //輸出層與隱含層之間的連接權(quán)值的
67、調(diào)整</p><p> for (i=1,k=3;i<=m;i++)</p><p><b> {</b></p><p> for (j=1;j<=n;j++)</p><p><b> {</b></p><p> wc[k][i][j]=-COEF
68、*d[k][j]*o[k-1][i]+0.5*wc[k][i][j];</p><p><b> }</b></p><p> } //隱含層與輸入層之間的連接權(quán)值的調(diào)整</p><p> for (i=1,k=2;i<=m;i++)</p><p><b> {</b></p&
69、gt;<p> for (j=1;j<=m;j++)</p><p><b> {</b></p><p> wc[k][i][j]=-COEF*d[k][j]*o[k-1][i]+0.5*wc[k][i][j];</p><p><b> }</b></p><p>&
70、lt;b> }</b></p><p><b> }</b></p><p> 3.誤差反向傳播的圖形解釋:</p><p> 誤差反向傳播過(guò)程實(shí)際上是通過(guò)計(jì)算輸出層的誤差ek,然后將其與輸出層激活函數(shù)的一階導(dǎo)數(shù)相乘來(lái)求得。由于隱含層中沒(méi)有直接給出目標(biāo)矢量,所以利用輸出層的進(jìn)行誤差反向傳遞來(lái)求出隱含層權(quán)值的變化量。然后
71、計(jì)算,并同樣通過(guò)將與該層激活函數(shù)的一階導(dǎo)數(shù)相乘而求得,以此求出前層權(quán)值的變化量。如果前面還有隱含層,沿用上述同樣方法,一直將輸出誤差一層一層地反推到第一層為止,其圖形解釋如圖4所示。</p><p><b> 圖4 誤差反向傳播</b></p><p> 3.3 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練及其設(shè)計(jì)過(guò)程</p><p> 為了訓(xùn)練一個(gè)BP網(wǎng)絡(luò),需要
72、計(jì)算網(wǎng)絡(luò)加權(quán)輸入矢量以及網(wǎng)絡(luò)輸出和誤差矢量,然后求得誤差平方和。當(dāng)所訓(xùn)練矢量的誤差平方和小于誤差目標(biāo)時(shí),訓(xùn)練停止,否則在輸出層計(jì)算誤差變化,且采用反向傳播學(xué)習(xí)規(guī)則來(lái)調(diào)整權(quán)值,并重復(fù)此過(guò)程。當(dāng)網(wǎng)絡(luò)完成訓(xùn)練后,對(duì)網(wǎng)絡(luò)輸入一個(gè)不是訓(xùn)練集合中的矢量,網(wǎng)絡(luò)將以泛化方式給出輸出結(jié)果。</p><p> 在程序設(shè)計(jì)之前,必須首先根據(jù)具體問(wèn)題給出輸入矢量與目標(biāo)矢量,并選定所要設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),具體包括如下幾項(xiàng):</p
73、><p><b> 1.網(wǎng)絡(luò)的層數(shù)</b></p><p> 理論證明,具有偏差和至少一個(gè)S型隱含層加上一個(gè)線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù)。增加層數(shù)能降低誤差,但同時(shí)也增加了訓(xùn)練的時(shí)間,所以一般優(yōu)先考慮增加隱含層中的神經(jīng)元數(shù)。</p><p><b> 2.每層的神經(jīng)元數(shù)</b></p><p
74、> 使用神經(jīng)網(wǎng)絡(luò)的目的是實(shí)現(xiàn)攝像機(jī)輸出RGB顏色空間與CIE-XYZ色空間轉(zhuǎn)換,因此BP網(wǎng)絡(luò)的輸入層和輸出層的節(jié)點(diǎn)個(gè)數(shù)分別為3。下面主要介紹隱含層節(jié)點(diǎn)數(shù)量的確定。</p><p> 對(duì)于多層前饋網(wǎng)絡(luò)來(lái)說(shuō),隱含層節(jié)點(diǎn)數(shù)的確定是成敗的關(guān)鍵,如果數(shù)量太少,那么網(wǎng)絡(luò)所能獲取的用以解決問(wèn)題的信息太少,如果數(shù)量太多,不僅增加訓(xùn)練時(shí)間,更重要的是隱含層節(jié)點(diǎn)過(guò)多還可能出現(xiàn)所謂“過(guò)渡吻合”(Over fitting)問(wèn)題
75、,即測(cè)試誤差增大導(dǎo)致泛化能力下降,因此合理選擇隱含層節(jié)點(diǎn)數(shù)非常重要。關(guān)于隱含層數(shù)及其節(jié)點(diǎn)數(shù)的選擇比較復(fù)雜,一般原則是:在能正確反映輸入輸出關(guān)系的基礎(chǔ)上,應(yīng)選用較少的隱含層節(jié)點(diǎn)數(shù),以使網(wǎng)絡(luò)結(jié)構(gòu)盡量簡(jiǎn)單。本論文中采用網(wǎng)絡(luò)結(jié)構(gòu)增長(zhǎng)型方法,即先設(shè)置較少的節(jié)點(diǎn)數(shù),對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并測(cè)試學(xué)習(xí)誤差,然后逐漸增加節(jié)點(diǎn)數(shù),直到學(xué)習(xí)誤差不再有明顯減少為止。</p><p><b> 3.每層的激活函數(shù)</b>
76、</p><p> BP網(wǎng)絡(luò)的傳遞函數(shù)有多種。Log-sigmoid型函數(shù)的輸入值可取任意值,輸出值在0和1之間;tan-sigmoid型傳遞函數(shù)tansig的輸入值可取任意值,輸出值在-1到+1之間;線性傳遞函數(shù)purelin的輸入與輸出值可取任意值。BP網(wǎng)絡(luò)通常有一個(gè)或多個(gè)隱層,該層中的神經(jīng)元均采用sigmoid型傳遞函數(shù),輸出層的神經(jīng)元?jiǎng)t采用線性傳遞函數(shù),整個(gè)網(wǎng)絡(luò)的輸出可以取任意值。只改變傳遞函數(shù)而其余參
77、數(shù)均固定,則一般傳遞函數(shù)使用tansig函數(shù)時(shí)要比logsig函數(shù)的誤差小,于是在以后的訓(xùn)練中隱含層傳遞函數(shù)改用tansig函數(shù),輸出層傳遞函數(shù)仍選用purelin函數(shù)。</p><p> 初始權(quán)值的選取 由于系統(tǒng)是非線性的,初始值對(duì)于學(xué)習(xí)是否達(dá)到局部最小、是否能夠收斂以及訓(xùn)練時(shí)間的長(zhǎng)短關(guān)系很大,一般?。?1 ,1)之間的隨機(jī)數(shù)。</p><p> 學(xué)習(xí)速率 學(xué)習(xí)速率決定每一次
78、循環(huán)訓(xùn)練中所產(chǎn)生的權(quán)值變化量。一般取值范圍為0.01—0.8。</p><p> 期望誤差的選取 在設(shè)計(jì)網(wǎng)絡(luò)的過(guò)程中,期望誤差值也應(yīng)當(dāng)通過(guò)對(duì)比訓(xùn)練后確定一個(gè)適合的值,適合是相對(duì)于所需要的隱含層的節(jié)點(diǎn)數(shù)來(lái)確定的。</p><p> 3.4 BP神經(jīng)網(wǎng)絡(luò)的限制及其改進(jìn)方法</p><p> BP神經(jīng)網(wǎng)絡(luò)有如下限制:</p><p>
79、1.需要較長(zhǎng)的訓(xùn)練時(shí)間</p><p> 2.完全不能訓(xùn)練(麻痹現(xiàn)象)</p><p> 3.局部最小值的產(chǎn)生導(dǎo)致訓(xùn)練無(wú)法逃出這一局部極小值</p><p> BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)方法[10]:</p><p> BP算法理論具有依據(jù)可靠、推導(dǎo)過(guò)程嚴(yán)謹(jǐn)、精度較高、通用性較好等優(yōu)點(diǎn),但標(biāo)準(zhǔn)BP算法存在以下缺點(diǎn):收斂速度緩慢;容易陷入局部極
80、小值;難以確定隱層數(shù)和隱層節(jié)點(diǎn)個(gè)數(shù)。在實(shí)際應(yīng)用中,BP算法很難勝任,因此出現(xiàn)了很多改進(jìn)算法。</p><p> 1.利用動(dòng)量法改進(jìn)BP算法</p><p> 標(biāo)準(zhǔn)BP算法實(shí)質(zhì)上是一種簡(jiǎn)單的最速下降靜態(tài)尋優(yōu)方法,在修正W(K)時(shí),只按照第K步的負(fù)梯度方向進(jìn)行修正,而沒(méi)有考慮到以前積累的經(jīng)驗(yàn),即以前時(shí)刻的梯度方向,從而常常使學(xué)習(xí)過(guò)程發(fā)生振蕩,收斂緩慢。動(dòng)量法權(quán)值調(diào)整算法的具體做法是:將上一
81、次權(quán)值調(diào)整量的一部分迭加到按本次誤差計(jì)算所得的權(quán)值調(diào)整量上,作為本次的實(shí)際權(quán)值調(diào)整量,即:</p><p><b> (13)</b></p><p> 其中:α為動(dòng)量系數(shù),通常0<α<0.9;η—學(xué)習(xí)率,范圍在0.001~10之間。這種方法所加的動(dòng)量因子實(shí)際上相當(dāng)于阻尼項(xiàng),它減小了學(xué)習(xí)過(guò)程中的振蕩趨勢(shì),從而改善了收斂性。動(dòng)量法降低了網(wǎng)絡(luò)對(duì)于誤差曲面局部細(xì)節(jié)的敏感
82、性,有效的抑制了網(wǎng)絡(luò)陷入局部極小。</p><p> 2.自適應(yīng)調(diào)整學(xué)習(xí)速率</p><p> 標(biāo)準(zhǔn)BP算法收斂速度緩慢的一個(gè)重要原因是學(xué)習(xí)率選擇不當(dāng),學(xué)習(xí)率選得太小,收斂太慢;學(xué)習(xí)率選得太大,則有可能修正過(guò)頭,導(dǎo)致振蕩甚至發(fā)散。其調(diào)整的基本指導(dǎo)思想是:在學(xué)習(xí)收斂的情況下,增大,以縮短學(xué)習(xí)時(shí)間;當(dāng)偏大致使不能收斂時(shí),要及時(shí)減小,直到收斂為止。</p><p>
83、 3.動(dòng)量-自適應(yīng)學(xué)習(xí)速率調(diào)整算法</p><p> 采用動(dòng)量法時(shí),BP算法可以找到更優(yōu)的解;采用自適應(yīng)學(xué)習(xí)速率法時(shí),BP算法可以縮短訓(xùn)練時(shí)間。將以上兩種方法結(jié)合起來(lái),就得到動(dòng)量-自適應(yīng)學(xué)習(xí)速率調(diào)整算法。</p><p><b> 4.L-M學(xué)習(xí)規(guī)則</b></p><p> L-M(Levenberg-Marquardt)算法比前述幾種
84、使用梯度下降法的BP算法要快得多,但對(duì)于復(fù)雜問(wèn)題,這種方法需要相當(dāng)大的存儲(chǔ)空間。L-M(Levenberg-Marquardt)優(yōu)化方法的權(quán)值調(diào)整率選為:</p><p><b> (14)</b></p><p> 其中:—誤差向量;—網(wǎng)絡(luò)誤差對(duì)權(quán)值導(dǎo)數(shù)的雅可比(Jacobian)矩陣;—標(biāo)量,當(dāng)很大時(shí)上式接近于梯度法,當(dāng)很小時(shí)上式變成了Gauss-Newton
85、法,在這種方法中,也是自適應(yīng)調(diào)整的。綜合考慮,擬采用L-M學(xué)習(xí)規(guī)則和動(dòng)量法分別作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)和學(xué)習(xí)函數(shù)。</p><p> 改進(jìn)的設(shè)計(jì)用C++語(yǔ)言實(shí)現(xiàn)如下:</p><p> double r=0.1;//r為動(dòng)量系數(shù)</p><p> double **dw1;</p><p> dw1=new double *[I
86、];//設(shè)置行</p><p> for(j=0;j<I;j++)</p><p> dw1[j]=new double [J];//設(shè)置列</p><p> double *db1=new double [J];</p><p> double **dw2;</p><p> dw2=new d
87、ouble *[J];//設(shè)置行</p><p> for(k=0;k<J;k++)</p><p> dw2[k]=new double [K];//設(shè)置列</p><p> double *db2=new double [K];</p><p> //產(chǎn)生0-1均勻分布的隨機(jī)數(shù)</p><p>
88、 srand( (unsigned)time( NULL ) );</p><p> for(j=0;j<J;j++) </p><p><b> {</b></p><p> for(i=0;i<I;i++)</p><p> w1[i][j]=(double)((rand()/32767.0)*
89、2-1);</p><p><b> }</b></p><p> for(j=0;j<J;j++)</p><p> b1[j]=(double)((rand()/32767.0)*2-1);</p><p> for(j=0;j<J;j++)</p><p><b&g
90、t; {</b></p><p> for(k=0;k<K;k++)</p><p> w2[j][k]=(double)((rand()/32767.0)*2-1);</p><p><b> }</b></p><p> for(k=0;k<K;k++)</p><
91、;p> b2[k]=(double)((rand()/32767.0)*2-1);</p><p> ifstream fin("data.dat");</p><p> for(j=0;j<M;j++){</p><p> for(i=0;i<I;i++)</p><p> fin>&g
92、t;a0[j][i];</p><p> for(k=0;k<K;k++)</p><p> fin>>t[j][k];</p><p><b> }</b></p><p> fin.close();</p><p> ofstream out1("erro
93、r.txt",ios::out);</p><p> while(e1>0.01) </p><p><b> {</b></p><p><b> if(n>=N)</b></p><p> goto label;</p><p><b&
94、gt; int m=0;</b></p><p> e1=0;//e1清零</p><p> for(m=0;m<M;m++)</p><p><b> { </b></p><p> for(j=0;j<J;j++)//add1清零</p><p>
95、 add1[j]=0;</p><p> for(k=0;k<K;k++)//add2清零</p><p> add2[k]=0;</p><p> for(j=0;j<J;j++)//s1清零</p><p><b> s1[j]=0;</b></p><p> for
96、(j=0;j<J;j++)</p><p><b> {</b></p><p> for(i=0;i<I;i++)</p><p> add1[j]+=w1[i][j]*a0[m][i];</p><p><b> }</b></p><p> for
97、(j=0;j<J;j++)</p><p><b> {</b></p><p> a1[j]=1.0/(1.0+exp(-add1[j]-b1[j]));// logsig計(jì)算隱層輸出結(jié)果</p><p><b> }</b></p><p> for(k=0;k<K;k++
98、)</p><p><b> {</b></p><p> for(j=0;j<J;j++)</p><p> add2[k]+=w2[j][k]*a1[j];</p><p><b> }</b></p><p> for(k=0;k<K;k++)&l
99、t;/p><p> a2[k]=add2[k]+b2[k];// purelin計(jì)算輸出層輸出結(jié)果</p><p> for(k=0;k<K;k++)</p><p><b> {</b></p><p> e[k]=t[m][k]-a2[k];</p><p> e1+=e[k]*e
100、[k];//求輸出層的平方誤差</p><p><b> }</b></p><p> for(k=0;k<K;k++)</p><p> s2[k]=-2*e[k];//4</p><p> for(j=0;j<J;j++)</p><p><b> {</
101、b></p><p> for(k=0;k<K;k++)</p><p> temp[j][k]=(1-a1[j])*a1[j]*w2[j][k];</p><p><b> }</b></p><p> for(j=0;j<J;j++)</p><p><b>
102、; {</b></p><p> for(k=0;k<K;k++)</p><p> s1[j]+=temp[j][k]*s2[k];//5</p><p><b> }</b></p><p> 3.5主成分分析法的計(jì)算步驟及其語(yǔ)言實(shí)現(xiàn)</p><p> 主成分分
103、析的具體步驟如下: </p><p> ?。?)計(jì)算協(xié)方差矩陣</p><p> 計(jì)算樣品數(shù)據(jù)的協(xié)方差矩陣:,其中</p><p> i,j=1,2,…,p (15)</p><p> 本計(jì)算設(shè)計(jì)使用C++語(yǔ)言實(shí)現(xiàn)如下[11]:</p><p> for (j1 = 1
104、; j1 <= m; j1++)</p><p><b> {</b></p><p> for (j2 = j1; j2 <= m; j2++)</p><p><b> {</b></p><p> symmat[j1][j2] = 0.0;</p><p
105、> for (i = 1; i <= n; i++)</p><p><b> {</b></p><p> symmat[j1][j2] += data[i][j1] * data[i][j2];</p><p><b> }</b></p><p> symmat[j2][
106、j1] = symmat[j1][j2];</p><p><b> }</b></p><p><b> }</b></p><p><b> return;</b></p><p> ?。?)求出的特征值及相應(yīng)的正交化單位特征向量</p><p&g
107、t; 的前m個(gè)較大的特征值12…m>0,就是前m個(gè)主成分對(duì)應(yīng)的方差,對(duì)應(yīng)的單位特征向量就是主成分的關(guān)于原變量的系數(shù),則原變量的第i個(gè)主成分為:</p><p><b> (16)</b></p><p> 主成分的方差(信息)貢獻(xiàn)率用來(lái)反映信息量的大小,為:</p><p><b> (17)</b><
108、/p><p> 本設(shè)計(jì)使用C++語(yǔ)言實(shí)現(xiàn)如下:</p><p> 相關(guān)系數(shù)矩陣的特征值:</p><p> mean = vector(m);</p><p> stddev = vector(m);</p><p> for (j = 1; j <= m; j++) \\確定列向量</p>
109、<p><b> {</b></p><p> mean[j] = 0.0;</p><p> for (i = 1; i <= n; i++)</p><p><b> {</b></p><p> mean[j] += data[i][j];</p>&l
110、t;p><b> }</b></p><p> mean[j] /= (float)n;</p><p><b> }</b></p><p> printf("\nMeans of column vectors:\n");</p><p> for (j = 1
111、; j <= m; j++) {</p><p> printf("%7.1f",mean[j]); } printf("\n");</p><p> for (j = 1; j <= m; j++) \\確定列向量偏差</p><p><b> {</b></p>
112、<p> stddev[j] = 0.0;</p><p> for (i = 1; i <= n; i++)</p><p><b> {</b></p><p> stddev[j] += ( ( data[i][j] - mean[j] ) *</p><p> ( data[i]
113、[j] - mean[j] ) );</p><p><b> }</b></p><p> stddev[j] /= (float)n;</p><p> stddev[j] = sqrt(stddev[j]);</p><p><b> }</b></p><p&g
114、t; printf("\nStandard deviations of columns:\n");</p><p> for (j = 1; j <= m; j++) { printf("%7.1f", stddev[j]); }</p><p> printf("\n");</p><p>
115、 for (i = 1; i <= n; i++)</p><p><b> {</b></p><p> for (j = 1; j <= m; j++)</p><p><b> {</b></p><p> data[i][j] -= mean[j];</p>
116、<p> x = sqrt((float)n);</p><p> x *= stddev[j];</p><p> data[i][j] /= x;</p><p><b> }</b></p><p><b> }</b></p><p> 協(xié)方差
117、矩陣的特征值:</p><p> mean = vector(m);</p><p> for (j = 1; j <= m; j++) \\確定列向量</p><p><b> {</b></p><p> mean[j] = 0.0;</p><p> for (i = 1;
118、i <= n; i++)</p><p><b> {</b></p><p> mean[j] += data[i][j];</p><p><b> }</b></p><p> mean[j] /= (float)n;</p><p><b>
119、 }</b></p><p> printf("\nMeans of column vectors:\n");</p><p> for (j = 1; j <= m; j++) {</p><p> printf("%7.1f",mean[j]); } printf("\n"
120、;);</p><p> for (i = 1; i <= n; i++)</p><p><b> {</b></p><p> for (j = 1; j <= m; j++)</p><p><b> {</b></p><p> data[i][
121、j] -= mean[j];</p><p><b> }</b></p><p><b> }</b></p><p><b> (3)選擇主成分</b></p><p> 最終要選擇幾個(gè)主成分,即F1,F2,……,Fm中m的確定是通過(guò)方差(信息)累計(jì)貢獻(xiàn)率G(m)來(lái)
122、確定</p><p><b> (18)</b></p><p> 當(dāng)累積貢獻(xiàn)率大于85%時(shí),就認(rèn)為能足夠反映原來(lái)變量的信息了,對(duì)應(yīng)的m就是抽取的前m個(gè)主成分。</p><p> ?。?)計(jì)算主成分載荷</p><p> 主成分載荷是反映主成分與原變量之間的相互關(guān)聯(lián)程度,原來(lái)變量(j=1,2 ,…, p)在諸主成分
123、(i=1,2,…,m)上的荷載 ( i=1,2,…,m; j=1,2 ,…,p)。:</p><p><b> (19)</b></p><p> 本設(shè)計(jì)用C++程序?qū)崿F(xiàn)如下:</p><p> void tqli(d, e, n, z)</p><p> float d[], e[], **z;</p&g
124、t;<p><b> int n;</b></p><p><b> {</b></p><p> int m, l, iter, i, k;</p><p> float s, r, p, g, f, dd, c, b;</p><p> void erhand();<
125、;/p><p> for (i = 2; i <= n; i++)</p><p> e[i-1] = e[i];</p><p> e[n] = 0.0;</p><p> for (l = 1; l <= n; l++)</p><p><b> {</b></p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)方法在會(huì)計(jì)舞弊識(shí)別中的應(yīng)用研究.pdf
- bp神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法改進(jìn)初探【畢業(yè)論文】
- 基于改進(jìn)型GEP的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化設(shè)計(jì).pdf
- 改進(jìn)BP神經(jīng)網(wǎng)絡(luò)在模式識(shí)別中的應(yīng)用及研究.pdf
- 改進(jìn)型LTP在人臉識(shí)別中的研究與應(yīng)用.pdf
- 人工神經(jīng)網(wǎng)絡(luò)BP學(xué)習(xí)算法的研究及在人臉識(shí)別中的應(yīng)用.pdf
- 基于一種改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)的心音信號(hào)分類識(shí)別.pdf
- BP神經(jīng)網(wǎng)絡(luò)改進(jìn)及其在手寫數(shù)字識(shí)別中的應(yīng)用.pdf
- BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在文字識(shí)別中的應(yīng)用研究.pdf
- 基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 電子信息工程畢業(yè)論文“校校通”網(wǎng)絡(luò)方案
- 電子信息工程畢業(yè)論文
- 電子信息工程畢業(yè)論文
- BP神經(jīng)網(wǎng)絡(luò)在板形缺陷識(shí)別中的應(yīng)用.pdf
- 基于bp神經(jīng)網(wǎng)絡(luò)算法的車牌字符識(shí)別---畢業(yè)論文
- 基于bp神經(jīng)網(wǎng)絡(luò)算法的車牌字符識(shí)別---畢業(yè)論文
- 電子信息工程畢業(yè)論文關(guān)于網(wǎng)絡(luò)工程的論文
- 電子信息工程畢業(yè)論文關(guān)于網(wǎng)絡(luò)工程的論文
- 改進(jìn)型脈沖耦合神經(jīng)網(wǎng)絡(luò)在圖像分割中的應(yīng)用研究.pdf
- 改進(jìn)型遺傳算法及其在神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化中的應(yīng)用.pdf
評(píng)論
0/150
提交評(píng)論