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

下載本文檔

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

文檔簡(jiǎn)介

1、神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介:人工神經(jīng)網(wǎng)絡(luò)是以工程技術(shù)手段來模擬人腦神經(jīng)元網(wǎng)絡(luò)的結(jié)構(gòu)和特征的系統(tǒng)。利用人工神經(jīng)網(wǎng)絡(luò)可以構(gòu)成各種不同拓?fù)浣Y(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ò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸

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

3、,即權(quán)值;為閾值;為傳遞函數(shù);為第個(gè)神經(jīng)元的輸出。若記,于是節(jié)點(diǎn)j的凈輸入可表示為:;凈輸入通過激活函數(shù)后,便得到第個(gè)神經(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ò)通常有一個(gè)或多個(gè)隱層,該層中的神經(jīng)元均采用sigmoid型傳遞函數(shù),輸出層的神經(jīng)元可以采用線性傳遞函數(shù),也可用S形函數(shù)。正向傳播:設(shè) BP網(wǎng)絡(luò)的輸入層有個(gè)節(jié)點(diǎn),隱層有個(gè)節(jié)點(diǎn),輸出層有個(gè)節(jié)點(diǎn),輸入層與隱層之間的權(quán)值為(

4、為的矩陣),隱層與輸出層之間的權(quán)值為(為的矩陣),隱層的傳遞函數(shù)為,輸出層的傳遞函數(shù)為,則隱層節(jié)點(diǎn)的輸出為(將閾值寫入求和項(xiàng)中):;輸出層節(jié)點(diǎn)的輸出為:由此,BP網(wǎng)絡(luò)就完成了維空間向量對(duì)維空間的近似映射。def update(self, inputs):#更新ai,ah,a0中的元素,所以輸入的元素個(gè)數(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)入初始層 self.aii = inp

5、utsi 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:#返回輸出層的值反向傳播:誤差反向傳播的過程實(shí)際

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

7、getsk-self.aok#輸出值與真實(shí)值之間的誤差 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的時(shí)候) self.wojk = self.wojk + N*change + M*self.cojk self.cojk = change #print N*

8、change, M*self.cojk隱層權(quán)值的調(diào)整:梯度為,其中誤差信號(hà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.ahj) * error1

9、#隱層的梯度定義:不在隱層的梯度與權(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)練集中我們考慮的是單個(gè)模式的誤差,實(shí)際上我們需要訓(xùn)練集里所有模式的全局誤差,在這種在線訓(xùn)練中,一個(gè)權(quán)值更新有可能減少某個(gè)單個(gè)模式的誤差,然而卻增加了訓(xùn)練全集上的誤差。不過給出大量這種單次更新,卻可以降

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論