神經(jīng)網(wǎng)絡(luò)介紹資料(共9頁)_第1頁
神經(jīng)網(wǎng)絡(luò)介紹資料(共9頁)_第2頁
神經(jīng)網(wǎng)絡(luò)介紹資料(共9頁)_第3頁
神經(jīng)網(wǎng)絡(luò)介紹資料(共9頁)_第4頁
神經(jīng)網(wǎng)絡(luò)介紹資料(共9頁)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上神經(jīng)網(wǎng)絡(luò)簡介神經(jīng)網(wǎng)絡(luò)簡介:人工神經(jīng)網(wǎng)絡(luò)是以工程技術(shù)手段來模擬人腦神經(jīng)元網(wǎng)絡(luò)的結(jié)構(gòu)和特征的系統(tǒng)。利用人工神經(jīng)網(wǎng)絡(luò)可以構(gòu)成各種不同拓撲結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),他是生物神經(jīng)網(wǎng)絡(luò)的一種模擬和近似。神經(jīng)網(wǎng)絡(luò)的主要連接形式主要有前饋型和反饋型神經(jīng)網(wǎng)絡(luò)。常用的前饋型有感知器神經(jīng)網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò),常用的反饋型有Hopfield網(wǎng)絡(luò)。這里介紹BP(Back Propagation)神經(jīng)網(wǎng)絡(luò),即誤差反向傳播算法。原理:BP(Back Propagation)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP神經(jīng)網(wǎng)絡(luò)模型拓撲結(jié)構(gòu)包括輸入層(input)、隱層(

2、hide layer)和輸出層(output layer),其中隱層可以是一層也可以是多層。圖:三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖(一個隱層)任何從輸入到輸出的連續(xù)映射函數(shù)都可以用一個三層的非線性網(wǎng)絡(luò)實現(xiàn)BP算法由數(shù)據(jù)流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構(gòu)成。正向傳播時,傳播方向為輸入層隱層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤差信號的反向傳播流程。通過這兩個過程的交替進行,在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略,動態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達到最小值,從而完成信息提取和記憶過程。單個神經(jīng)元的計算:設(shè)分別代表來自神經(jīng)元的輸入;則分別表示神經(jīng)元與

3、下一層第個神經(jīng)元的連接強度,即權(quán)值;為閾值;為傳遞函數(shù);為第個神經(jīng)元的輸出。若記,于是節(jié)點j的凈輸入可表示為:;凈輸入通過激活函數(shù)后,便得到第個神經(jīng)元的輸出:激活函數(shù):激活函數(shù)是單調(diào)上升可微函數(shù),除輸出層激活函數(shù)外,其他層激活函數(shù)必須是有界函數(shù),必有一最大值。BP網(wǎng)絡(luò)常用的激活函數(shù)有多種。Log-sigmoid型:,tan-sigmod型:,線性激活函數(shù)purelin函數(shù):,輸入與輸出值可取任意值。BP網(wǎng)絡(luò)通常有一個或多個隱層,該層中的神經(jīng)元均采用sigmoid型傳遞函數(shù),輸出層的神經(jīng)元可以采用線性傳遞函數(shù),也可用S形函數(shù)。正向傳播:設(shè) BP網(wǎng)絡(luò)的輸入層有個節(jié)點,隱層有個節(jié)點,輸出層有個節(jié)點,

4、輸入層與隱層之間的權(quán)值為(為的矩陣),隱層與輸出層之間的權(quán)值為(為的矩陣),隱層的傳遞函數(shù)為,輸出層的傳遞函數(shù)為,則隱層節(jié)點的輸出為(將閾值寫入求和項中):;輸出層節(jié)點的輸出為:由此,BP網(wǎng)絡(luò)就完成了維空間向量對維空間的近似映射。def update(self, inputs):#更新ai,ah,a0中的元素,所以輸入的元素個數(shù)必須跟輸入層一樣,將三層先填滿數(shù)據(jù) if len(inputs) != self.ni-1: raise ValueError('wrong number of inputs') for i in range(self.ni-1):#將數(shù)據(jù)導(dǎo)入初始層 s

5、elf.aii = inputsi for j in range(self.nh1):#將輸入層的數(shù)據(jù)傳遞到隱層 sum = 0.0 for i in range(self.ni): sum = sum + self.aii * self.wiij self.ahj = sigmoid(sum)#調(diào)用激活函數(shù) for k in range(self.no): sum = 0.0 for j in range(self.nh2): sum = sum + self.ahj * self.wojk self.aok = purelin(sum) return self.ao:#返回輸出層的值反向傳

6、播:誤差反向傳播的過程實際上就是權(quán)值學(xué)習(xí)的過程。網(wǎng)絡(luò)權(quán)值根據(jù)不同的訓(xùn)練模式進行更新。常用的有在線模式和批處理模式。在線模式中的訓(xùn)練樣本是逐個處理的,而批處理模式的所有訓(xùn)練樣本是成批處理的。輸入個學(xué)習(xí)樣本,用來表示,第個樣本輸入到網(wǎng)絡(luò)后計算得到輸出,。采用平方型誤差函數(shù),于是得到第p個樣本的誤差:  式中:為期望輸出。輸出層權(quán)值的調(diào)整:用梯度下降法調(diào)整,使誤差變小。梯度下降法原理即是沿著梯度下降方向目標(biāo)函數(shù)變化最快,梯度為,其中誤差信號,權(quán)值的改變量為負梯度方向,為學(xué)習(xí)率output_deltas = 0.0 * self.nofor k in range(self.no):

7、 error2 = targetsk-self.aok#輸出值與真實值之間的誤差 output_deltask = dpurelin(self.aok) * error2#輸出層的局部梯度,導(dǎo)數(shù)乘以誤差,不在隱層就這么定義for j in range(self.nh2):#更新隱層與輸出層之間的權(quán)重 for k in range(self.no): change = output_deltask*self.ahj#權(quán)值的校正值w的改變量(若沒有沖量,且學(xué)習(xí)率為1的時候) self.wojk = self.wojk + N*change + M*self.cojk self.cojk = cha

8、nge #print N*change, M*self.cojk隱層權(quán)值的調(diào)整:梯度為,其中誤差信號,從而得到隱層各神經(jīng)元的權(quán)值調(diào)整公式為:         hidden_deltas = 0.0 * self.nh2#隱層的局部梯度for j in range(self.nh2): error1 = 0.0 for k in range(self.no): error1 = error1 + output_deltask*self.wojk hidden_deltasj = dsigmoid(self.

9、ahj) * error1#隱層的梯度定義:不在隱層的梯度與權(quán)重的積再求和,然后與導(dǎo)數(shù)的乘積for i in range(self.ni):#更新輸入層與隱層之間的權(quán)重 for j in range(self.nh1): change = hidden_deltasj*self.aii self.wiij = self.wiij + N*change + M*self.ciij self.ciij = change注:在訓(xùn)練集中我們考慮的是單個模式的誤差,實際上我們需要訓(xùn)練集里所有模式的全局誤差,在這種在線訓(xùn)練中,一個權(quán)值更新有可能減少某個單個模式的誤差,然而卻增加了訓(xùn)練全集上的誤差。不過給出

10、大量這種單次更新,卻可以降低總誤差。參數(shù)簡介:1 初始權(quán)值、閾值:初始的權(quán)值需要有一個范圍,如果選的太小,一個隱單元的網(wǎng)絡(luò)激勵將較小,只有線性模型部分被實現(xiàn),如果較大,隱單元可能在學(xué)習(xí)開始前就達到飽和。閾值一般也是隨機數(shù)。2 學(xué)習(xí)率參數(shù):學(xué)習(xí)率,范圍在0.00110之間。學(xué)習(xí)率是BP訓(xùn)練中的一個重要參數(shù),學(xué)習(xí)率過小,則收斂過慢;學(xué)習(xí)率過大,則可能修正過頭,導(dǎo)致震蕩甚至發(fā)散。3 動量參數(shù):動量法權(quán)值實際是對標(biāo)準BP算法的改進,具體做法是:將上一次權(quán)值調(diào)整量的一部分迭加到按本次誤差計算所得的權(quán)值調(diào)整量上,作為本次的實際權(quán)值調(diào)整量,即: 其中:為動量系數(shù),通常00.9;這種方法所加的動量因

11、子實際上相當(dāng)于阻尼項,它減小了學(xué)習(xí)過程中的振蕩趨勢,從而改善了收斂性降低了網(wǎng)絡(luò)對于誤差曲面局部細節(jié)的敏感性,有效的抑制了網(wǎng)絡(luò)陷入局部極小。4 隱層節(jié)點數(shù):隱層節(jié)點數(shù)過少,則網(wǎng)絡(luò)結(jié)構(gòu)不能充分反映節(jié)點輸入與輸出之間的復(fù)雜函數(shù)關(guān)系;節(jié)點數(shù)過多又會出現(xiàn)過擬合現(xiàn)象。隱層節(jié)點數(shù)的選擇至今尚無統(tǒng)一而完整的的理論指導(dǎo),一般只能由經(jīng)驗選定,具體問題具體分析。注:隱層節(jié)點經(jīng)驗公式法:(經(jīng)驗公式完全是憑經(jīng)驗獲得,缺少相應(yīng)的理論依據(jù),對特定的樣本有效,缺乏普適性的公式。)假設(shè)三層神經(jīng)網(wǎng)絡(luò)的輸入層、隱層、輸出層的節(jié)點數(shù)分別為M,H,N,最佳隱層節(jié)點數(shù)取值范圍為,其中a為1-10之間的常數(shù)(最常用的)當(dāng)輸入節(jié)點大于輸出節(jié)

12、點時,隱層最佳節(jié)點數(shù)為最佳隱層節(jié)點數(shù)取值范圍為根據(jù)kolmogorov定理,最佳隱層節(jié)點數(shù)為最佳隱層節(jié)點數(shù)為滿足下公式的整數(shù)最佳隱層節(jié)點數(shù)為滿足下公式的整數(shù)其中適用于批量訓(xùn)練模式BP學(xué)習(xí)訓(xùn)練過程如下:1) 初始化網(wǎng)絡(luò),對網(wǎng)絡(luò)參數(shù)及各權(quán)系數(shù)進行賦值,權(quán)值系數(shù)取隨機數(shù)2) 輸入訓(xùn)練樣本,通過個節(jié)點間的連接情況正向逐層計算各層的值,并與真實值相比較,得到網(wǎng)絡(luò)的輸入誤差3) 依據(jù)誤差反向傳播規(guī)則,按照梯度下降法調(diào)整各層之間的權(quán)系數(shù),使整個神經(jīng)網(wǎng)絡(luò)的連接權(quán)值向誤差減小的方向轉(zhuǎn)化4) 重復(fù)(2)和(3),直到預(yù)測誤差滿足條件或是訓(xùn)練次數(shù)達到規(guī)定次數(shù),結(jié)束。參數(shù)調(diào)整說明神經(jīng)網(wǎng)絡(luò)算法對于不同的網(wǎng)絡(luò)需用不同的參

13、數(shù),參數(shù)的選擇需要根據(jù)已知的測試數(shù)據(jù)進行訓(xùn)練測試,稱這個調(diào)試參數(shù)的過程為試錯法。神經(jīng)網(wǎng)絡(luò)試錯:神經(jīng)網(wǎng)絡(luò)需要設(shè)置的參數(shù)比較多,初始權(quán)值、學(xué)習(xí)率、動量系數(shù)、隱層節(jié)點數(shù)需要依據(jù)具體問題具體設(shè)置,要分類數(shù)目越多,參數(shù)調(diào)整難度越大。調(diào)整過程中需不斷觀察誤差和正確率的變化。無論調(diào)整哪個參數(shù),遵循的原則為:如果調(diào)小該參數(shù),正確率增大則繼續(xù)調(diào)小該參數(shù),到達某一臨界值如果繼續(xù)調(diào)小參數(shù)正確率減小,則在該臨界值附近尋找最優(yōu)的該參數(shù)的取值;反之亦然。具體的調(diào)整步驟為:1) 初始權(quán)值的范圍選擇,范圍不宜太大,一般為(-0.2,0.2)或(-0.3,0.3)2) 動量系數(shù)的選擇,一般0-0.9之間,宜先隨機設(shè)定一個,先進

14、行學(xué)習(xí)率和隱層節(jié)點數(shù)的調(diào)整,如果學(xué)習(xí)率和隱層節(jié)點數(shù)的調(diào)整都找不到較高正確率,最后返回來調(diào)整動量單元。3) 學(xué)習(xí)率一般越小越好,一般先固定學(xué)習(xí)率為0.01,進行隱層節(jié)點數(shù)的調(diào)試,如果在隱層經(jīng)驗公式的取值范圍內(nèi)找不到使得正確率較高的隱層節(jié)點數(shù),再返回來調(diào)整學(xué)習(xí)率,取0.02,0.05,0.1,0.3,0.5等值,具體問題具體試錯分析。4) 根據(jù)經(jīng)驗公式對隱層節(jié)點數(shù)進行調(diào)整,常用的為隱層節(jié)點數(shù)取值范圍為,其中三層神經(jīng)網(wǎng)絡(luò)的輸入層、隱層、輸出層的節(jié)點數(shù)分別為M,H,N,a為1-10之間的常數(shù)5) 最后對訓(xùn)練次數(shù)進行設(shè)置,如果隨著訓(xùn)練次數(shù)的增加,誤差一直處于下降的狀態(tài),則增大訓(xùn)練次數(shù);如果隨著訓(xùn)練次數(shù)增

15、加,誤差不再繼續(xù)下降,則無需增加訓(xùn)練次數(shù)。參數(shù)調(diào)整沒有確切的固定順序,以最終能達到所需正確率為標(biāo)準。神經(jīng)網(wǎng)絡(luò)做分類預(yù)測:輸入數(shù)據(jù)預(yù)處理:對于原始數(shù)據(jù),不同評價指標(biāo)往往具有不同的量綱和量綱單位,這樣的情況會影響到數(shù)據(jù)分析的結(jié)果,為了消除指標(biāo)之間的量綱影響,需要進行數(shù)據(jù)標(biāo)準化(或歸一化)處理,以解決數(shù)據(jù)指標(biāo)之間的可比性。原始數(shù)據(jù)經(jīng)過數(shù)據(jù)標(biāo)準化處理后,各指標(biāo)處于同一數(shù)量級,適合進行綜合對比評價。常用的歸一化方法:離差標(biāo)準化:對原始數(shù)據(jù)進行線性變換,使結(jié)果值映射到0,1之間。轉(zhuǎn)換函數(shù)如下:,其中max為樣本數(shù)據(jù)的最大值,min為樣本數(shù)據(jù)的最小值。Z-score標(biāo)準化:這種方法給予原始數(shù)據(jù)的均值(mean)和標(biāo)準差(standard deviation)進行數(shù)據(jù)的標(biāo)準化。經(jīng)過處理的數(shù)據(jù)符合標(biāo)準正態(tài)分布,即均值為0,標(biāo)準差為1,轉(zhuǎn)化函數(shù)為:,其中為所有樣本數(shù)據(jù)的均值,為所有樣本數(shù)據(jù)的標(biāo)準差。做分類時訓(xùn)練集輸出數(shù)據(jù)預(yù)處理:用0,1的行向量做輸出表示數(shù)據(jù)的分類情況,若原始數(shù)據(jù)被分成n類,某個樣本屬于第i類,則該樣本對應(yīng)的輸出為,第i個位置為0,其余位置為1。做預(yù)測時訓(xùn)練集輸出數(shù)據(jù)預(yù)處理:對輸出層的數(shù)據(jù)進行歸一化,訓(xùn)練測試完畢后進行反歸一化。(eg:Faul

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論