Presentation is loading. Please wait.

Presentation is loading. Please wait.

第9章 人工神經網絡 原理及應用 王海.

Similar presentations


Presentation on theme: "第9章 人工神經網絡 原理及應用 王海."— Presentation transcript:

1 第9章 人工神經網絡 原理及應用 王海

2 目錄 人工神經網絡概述 人工神經網絡基礎 前饋人工神經網絡

3 1 概述 1.1 什麼是人工神經網絡 所謂人工神經網絡就是基於模仿生物大腦的結構和功能而構成的一種資訊處理系統(電腦)。
需要指出,儘管人工神經網絡是對大腦結構的模仿,但這種模仿目前還處於極低的水準。

4 1 概述 1.2 人工神經網絡的兩種操作過程 訓練學習 正常操作(回憶操作)
訓練時,把要教給神經網絡的資訊(外部輸入)作為網絡的輸入和要求的輸出,使網絡按某種規則(稱為訓練演算法)調節各處理單元間的連接權值,直至加上給定輸入,網絡就能產生給定輸出為止。 這時,各連接權已調接好,網絡的訓練就完成了。 正常操作(回憶操作) 對訓練好的網絡輸入一個信號,它就可以正確回憶出相應輸出,得到識別結果。

5 1 概述 1.3 人工神經網絡的發展 -初始(萌發)期—— MP模型的提出和人工神經網絡的興起。1943年,美國神經生理學家Warren Mcculloch和數學家Walter Pitts合寫了一篇關於神經元如何工作的開拓性文章:“A Logical Calculus of Ideas Immanent in Nervous Activity”。 該文指出,腦細胞的活動像斷/通開關,這些細胞可以按各種方式相互結合,進行各種邏輯運算。按此想法,他們用電路構成了簡單的神經網絡模型,並預言大腦的所有活動最終將被解釋清楚。雖然問題並非如此簡單,但它給人們一個信念,即大腦的活動是靠腦細胞的組合連接實現的。

6 1 概述 1.3 人工神經網絡的發展 第一次高潮期——感知器模型和人工神經網絡
1957年,電腦專家Frank Rosenblatt開始從事感知器的研究,並製成硬體,通常被認為是最早的神經網絡模型。 1959年,兩位電機工程師Bernard Widrow和Marcian Haff開發出一種叫作自適應線性單元(ADALINE)的網絡模型,並在他們的論文“Adaptive Switching Circuits”中描述了該模型和它的學習演算法( Widrow-Haff演算法)。 該網絡通過訓練,可以成功用於抵消通信中的回波和雜訊,也可用于天氣預報,成為第一個用於實際問題的神經網絡。

7 1 概述 1.3 人工神經網絡的發展 反思期—神經網絡的低潮
1969年,Marvin Minsky和Seymour Papert合著了一本書“Perception”,分析了當時的簡單感知器,指出它有非常嚴重的局限性,甚至不能解決簡單的“異或”問題,為Rosenblatt的感知器判了“死刑”。 此時,批評的聲音高漲,導致了停止對人工神經網絡研究所需的大量投資。 不少研究人員把注意力轉向了人工智慧,導致對人工神經網絡的研究陷入低潮。

8 1 概述 1.3 人工神經網絡的發展 第二次高潮期—Hopfield網絡模型的出現和人工神經網絡的復蘇
1984年,Hopfield設計研製了後來被人們稱為Hopfield網的電路,較好地解決了TCP問題,找到了最佳解的近似解,引起了較大轟動。 1985年,Hinton、Sejnowsky、Rumelhart等研究者在Hopfield網絡中引入隨機機制,提出了所謂的Bolziman機。 1986年,Rumelhart等研究者獨立地提出多層網絡的學習演算法—BP演算法,較好地解決了多層網絡的學習問題。 1990年12月,國內首屆神經網絡大會在北京舉行。

9 1 概述 1.3 人工神經網絡的發展 再認識與應用研究期 主要研究內容
開發現有模型的應用,並在應用中根據實際運行情況對模型、演算法加以改造,以提高網絡的訓練速度和運行的準確度。 充分發揮每種技術各自的優勢,尋找更有效的解決方法。 希望在理論上尋找新的突破,建立新的專用或通用模型和演算法。 進一步對生物神經系統進行研究,不斷豐富對人腦的認識。

10 1 概述 1.4 人工神經網絡的特點 容錯性 人類大腦具有很強的容錯能力,這正是由於大腦中知識是存儲在很多處理單元和它們的連接上的。
每天大腦的一些細胞都可能會自動死亡,但這並沒有影響人們的記憶和思考能力。 人工神經網絡可以從不完善的數據和圖形進行學習和做出決定 由於知識存在整個系統中,而不是在一個存儲單元內,因此一定比例的結點不參與運算,對整個系統的性能不會產生重大影響。 神經網絡中承受硬體損壞的能力比一般計算機要強得多。

11 1 概述 1.4 人工神經網絡的特點 自適應性 人工神經網絡也具有學習能力
有指導的訓練:將輸入樣本加到網絡輸入並給出相應的輸出,通過多次訓練迭代獲得連接權值。 好像告訴網絡:“當你看到這個圖形(比如5)時,請給我指示5”。 無指導的訓練:網絡通過訓練自行調節連接加權,從而對輸入樣本分類。 在網絡訓練時,有時只能給出大量的輸入圖形,沒有指定它們的輸出,網絡就自行按輸入圖形的特徵對它們進行分類。 如小孩通過大量觀察可以分辨出哪是狗、哪是貓一樣。

12 1 概述 1.4 人工神經網絡的特點 人工神經網絡的局限性 人工神經網絡不適於高精度的計算 人工神經網絡的學習和訓練往往是一個艱難的過程
正像很多人不善於直接計算類似資金的問題一樣,人工神經網絡不用於計算資金方面的問題。 人工神經網絡的學習和訓練往往是一個艱難的過程 網絡的設計沒有嚴格確定的方法(一般憑經驗),所以選擇訓練方法和所需網絡結構沒有統一標準。 離線訓練往往需要很長時間,為了獲得最佳效果,常常要重複試驗多次。 網絡收斂性的問題。

13 2 人工神經網絡基礎 2.1 人工神經網絡的生物原型—大腦 簡單的神經元

14 2 人工神經網絡基礎 2.1 人工神經網絡的生物原型—大腦 簡單的神經元
神經元就是神經細胞,它是動物的重要特徵之一,在人體內從大腦到全身存在大約1010個神經元。神經元間的信號通過突觸傳遞。 神經元的組成 細胞體:它是神經元的本體,內有細胞核和細胞質,完成普通細胞的生存功能。 樹突:它有大量的分枝,多達103數量級,長度較短(通常不超過1毫米),用以接收來自其它神經元的信號。 軸突:它用以輸出信號,有些較長(可達1米以上),軸突的遠端也有分枝,可與多個神經元相連。 突觸:它是一個神經元與另一個神經元相聯繫的特殊部位,通常是一個神經元軸突的端部靠化學接觸或電接觸將信號傳遞給下一個神經元的樹突或細胞體。

15 2 人工神經網絡基礎 2.1 人工神經網絡的生物原型—大腦 神經元的基本工作機制 一個神經元有兩種狀態——興奮和抑制
平時處於抑制狀態的神經元,當接收到其它神經元經由突觸傳來的衝擊信號時,多個輸入在神經元中以代數和的方式疊加。 進入突觸的信號會被加權,起興奮作用的信號為正,起抑制作用的信號為負。 如果疊加總量超過某個閾值,神經元就會被激發進入興奮狀態,發出輸出脈衝,並由軸突的突觸傳遞給其它神經元。 神經元被觸發後有一個不應期,在此期間內不能被觸發,然後閾值逐漸下降,恢復原來狀態。

16 2 人工神經網絡基礎 2.1 人工神經網絡的生物原型—大腦 神經元的基本工作機制
神經元是按照“全或無”的原則工作的,只有興奮和抑制兩種狀態,但也不能認為神經元只能表達或傳遞二值邏輯信號。 神經元興奮時往往不是只發一個脈衝,而是發出一串脈衝,如果把一串脈衝看成是一個調頻信號,脈衝的密度是可以表達連續量的。

17 2 人工神經網絡基礎 2.1 人工神經網絡的生物原型—大腦 大腦及大腦皮層的結構
研究證明,大腦中大約有1000個不同的模組,每個模組包含有50*106個神經元。 我們可以假設每個模組就是眾多神經網絡中的一類。 大腦的主要計算機构是大腦皮層,在其斷面上一般有3~6層神經細胞排列,大約10萬個神經元組成一組。 在一個典型的腦模型中,大約有500個神經網絡進行計算工作,平均一個神經元向其它神經元發出2000個突觸。 不同層間神經元的連接方式有平行型、發散型、收斂型和回饋型,這些連接的強度是隨機的,隨著對外部世界的回應而逐漸形成。

18 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元(PE)就是人工神經元,也稱為結點,通常用圓圈表示。 輸 輸 出 入 1 2 …
N

19 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的結構和功能與生物神經元有類似之處,可以說是生物神經元的簡單近似。
處理單元只模擬了生物神經元所能執行的150多個處理功能中的若干個。 處理單元的功能 對每個輸入信號進行處理以確定其強度(加權); 確定所有輸入信號的組合效果(求和); 確定其輸出(轉移特性)。

20 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 對生物神經元的模擬
就像生物神經元中有很多輸入(激勵)一樣,處理單元也有很多輸入信號,並且同時加到處理單元上,處理單元以輸出作為回應。 處理單元的輸出像實際神經元一樣,輸出回應不但受輸入信號的影響,同時也受內部其它因素的影響。 內部因素:內部閾值或一個額外輸入(稱為偏置項)

21 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能

22 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能
輸入信號來自外部(用黑色圓點表示輸入端點)或別的處理單元的輸出,在數學上表示為行向量x x = (x1, x2,…, xN) 其中xi為第i個輸入的激勵電平,N表示輸入數目。

23 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能 連接到結點j的加權表示為加權向量
Wj=(W1j, W2j,…, WNj) 其中Wij表示從結點i(或第i個輸入點)到結點j的加權,或稱i與j結點之間的連接強度。

24 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能
考慮到內部閾值θj,用x0=-1的固定偏置輸入點表示,其連接強度取W0j= θj。於是,可得輸入的加權和為

25 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能 如果向量x和Wj分別包含了x0和W0j,則有
x = (x0, x1,…, xN) Wj=(W0j, W1j,…, WNj)

26 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能 於是sj可表示為x和Wj的點積或內積 sj= x•Wj
這一結果是標量,它由兩個向量的內積得到,可以作為兩個向量相似程度的測量。 如果向量處於相同的方向,則其內積最大; 如果向量處於相反的方向,則其內積最小。

27 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 處理單元的基本結構和功能
處理單元的激勵電平sj通過一個轉移函數F(•),得到處理單元的最後輸出值yj

28 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 轉移函數
轉移函數F(•)也稱激勵函數、傳輸函數或限幅函數,其作用就是將可能的無限域變換到一指定的有限範圍內輸出,這類似於生物神經元具有的非線性轉移特性。 常用的轉移函數 線性函數 斜坡函數 階躍函數 符號函數 Sigmoid函數 雙曲正切函數

29 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 線性函數 最簡單的轉移函數 y = F(s) = ks
其中y為輸出值,s為輸入信號的加權和,k是一個常數,表示直線的斜率。

30 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 斜坡函數 r和-r分別是處理單元的最大值和最小值,稱為飽和值,一般|r|=1。

31 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 階躍函數 硬限幅函數的一種

32 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 符號函數(sgn(•)) 硬限幅函數的一種

33 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 Sigmoid函數 S型函數的一種 y = F(s) = 1/(1+e-s)

34 2 人工神經網絡基礎 2.2 人工神經網絡處理單元 雙曲正切函數 S型函數的一種
y = tand(s)=(es- e-s)/(es+e-s) 相對於Sigmoid函數,它是原點對稱的。 當s=0時有y=0,即同時具有雙級輸出。 當要求輸出(-1 1)範圍的信號時,它常被採用。

35 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 雖然單個處理單元可以處理簡單的圖形檢測功能,但更強的識別處理能力是來自多個結點“連成”的網絡,即人工神經網絡。 這裡的“連成”,是靠輸入至結點或者結點至結點間的信號傳輸通路實現的,這一通路相當於生物神經系統中的軸突和突觸,它們影響著輸入信號。 以後我們把這種信號傳輸通路稱為“連接”,每一個連接都具有一個加權值,稱為“連接權”,反映連接的強度。

36 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 單層網絡 最簡單的網絡是把一組結點形成一層。
左邊的黑色圓點隻起著分配輸入信號的作用,沒有計算作用,不看作是網絡的一層。 右邊用圓圈表示的一組結點被看作一層。

37 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 單層網絡
輸入信號表示為行向量:x = (x1, x2,…, xN),其中每一分量通過加權連接到各結點。 每一個結點均可產生一個加權和。 輸入和結點間採用全連接,並且都是前饋連接。 在這種單層網絡中可把各加權表示為加權矩陣W。 矩陣的維數是N × n,N是輸入信號向量的分量數,n是該層內的結點數。 由第三個輸入連接到第二個結點的連接權表示為W32。

38 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 單層網絡 s是各結點加權和的行向量,s=(s1, s2,…, sn)。
輸入信號的加權和表示為: s是各結點加權和的行向量,s=(s1, s2,…, sn)。 輸出向量 y=(y1, y2,…, yn),其中yj=F(sj)。

39 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 多層網絡 一般來說,大而複雜的網絡能提供更強的計算能力。
雖然目前已構成了很多網絡模型,但它們的結點都是按層排列的,這一點正是模仿了大腦皮層中的網絡模組。 多層網絡是由單層網絡進行級聯構成的,即上一層的輸出作為下一層的輸入。

40 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 多層網絡 兩層網絡(前饋全連接網絡)

41 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 多層網絡 三層網絡(前饋全連接網絡)

42 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 多層網絡
注意:在構成多層網絡時,層間的轉移函數應是非線性的,否則多層網絡的計算能力並不比單層網絡強。 在線性轉移函數的情況下,兩層網絡輸出的計算是第一層的輸出xW1作為第二層的輸入,通過第二個加權矩陣得到網絡的輸出 y=(xW1) W2=x(W1W2) 這表明兩層線性網絡等效于單層網絡,只是後者的加權矩陣為兩個加權矩陣的乘積。

43 2 人工神經網絡基礎 2.3 人工神經網絡的拓撲結構 多層網絡 多層網絡中,接收輸入信號的層稱為輸入層。 產生輸出信號的層稱為輸出層。
它不計入網絡層數,因為它只起著輸入信號緩衝器的作用,沒有處理功能。 產生輸出信號的層稱為輸出層。 除此之外的中間層稱為隱藏層(或隱蔽層),它不直接與外部環境打交道。 隱藏層的層數可從零到若干層。

44 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習)
人工神經網絡的最主要特徵之一是它可以學習。任何一個人工神經網絡模型要實現某種功能的操作,就必須對它進行訓練,讓它學會要做的事情,並把這些知識記憶(存儲)在網絡的加權中。 學習或訓練的實質就是加權矩陣隨外部激勵(環境)做自我調整的變化。

45 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 人工神經網絡被訓練後,它每加入一組輸入就會產生一組要求的輸出。
一組輸入(或輸出)就是所謂的向量或圖形。 訓練就是相繼加入輸入向量,並按預定規則調整網絡加權。 在進行訓練後,網絡的各加權都收斂到一個確定值,以便每個輸入向量都會產生一個要求的輸出向量。 調整加權所遵循的預定規則就是訓練演算法。 有指導的訓練 無指導的訓練

46 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 有指導的訓練
對有指導的訓練演算法,不但需要訓練用的輸入向量,同時還要求與之對應的表示所需要輸出的目標向量。 輸入向量與對應的目標向量一起稱作一個訓練對。通常訓練一個網絡需要很多訓練對,這些訓練對組成訓練組。 當加上一個輸入向量時,要計算網絡的實際輸出,並同相應的目標向量做比較,根據比較結果的誤差,按規定的演算法改變加權。 把訓練組中的每個向量對相繼加入,對每個向量都計算誤差並調節加權,直到訓練組中的誤差都達到可接受的最低值為止。

47 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 無指導的訓練 無指導的訓練不要求有目標向量,網絡通過自身的“經歷”來學會某種功能。
人們發現在幼兒的早期發育中,存在有自組織的能力,據此,認為無指導的訓練是在生物上更有道理的訓練演算法。 1984年,Kohonen等人提出了無指導的訓練演算法。

48 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法 目前應用的訓練演算法很多,其中有很大部分是早期的Hebb演算法的變形。
人們仍在以生物學習訓練的模式作為目標,繼續探索新的演算法。 可以相信,真正的生物學習訓練過程肯定比目前常用的訓練演算法複雜得多。

49 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法之一 — Hebb演算法
Hebb演算法是由Donald Hebb提出的一種最早的訓練演算法。 Hebb認為,如果源和目的神經元都被啟動(或抑制),它們之間的突觸的強度就會增強。 人工神經網絡中Hebb演算法的簡單描述: 如果一個處理單元從另一個處理單元接收激勵信號,而且兩者處於相同的激勵電平(數學上具有相同的符號),那麼處理單元之間的加權就應當增強。

50 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法之一 — Hebb演算法 人工神經網絡中Hebb演算法的簡單描述:
按數學表示,就是兩結點的連接權將按兩結點的激勵電平的乘積來改變 其中,Wij(n)是第(n+1)次調節前從結點i到結點j的連接權值; Wij(n+1)是第(n+1)次調節後從結點i到結點j的連接權值;η為訓練速率係數;yi為結點i的輸出,並輸入到結點j; yj為結點j的輸出。

51 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法之二 — σ訓練演算法
這種演算法的基本思路是:按差值(σ值)最小準則連續地修正各連接權的強度。 所謂差值最小,就是指處理單元所要求的輸出與當前實際輸出間的差值,靠調節各加權以達到最小。 該演算法也稱為Widdrow-Hoff訓練演算法或最小均方(LMS)演算法。

52 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法之三 — 梯度下降演算法 σ訓練演算法是梯度下降演算法的一個特例。
這是將數學上的優化方法用於使要求的輸出與實際輸出之差最小。 在該方法中,加權的修正量正比於誤差對加權的一階導數,數學表示如下: 其中,E是描述誤差的誤差函數,Wij(n)是結點i到結點j的連接權,η為訓練速率係數。 σ訓練演算法是梯度下降演算法的一個特例。 該演算法收斂到穩定點較慢,但它是一種比較有效和普遍應用的訓練演算法。

53 2 人工神經網絡基礎 2.4 人工神經網絡的訓練(學習) 訓練演算法之四 — 隨機訓練演算法
該演算法利用了隨機過程,用概率和能量關係來調節連接權。 基本思路:在訓練過程中,隨機改變一個權值,確定權值改變後產生的最終能量,並按如下準則來確定是否保留此加權的變化。 若改變加權後,人工神經網絡的能量降低了,則保留這一改變。 若改變加權後,能量沒有降低,則根據一個預選的概率分佈來保留這一改變。(這一步的目的是為了保證人工神經網絡能夠獲得全域能量最小點,而不是局部能量最小點。) 否則,拒絕這一改變,使權值恢復到原來的值。 典型的隨機訓練演算法:模擬退火演算法

54 3 前饋神經網絡 神經生理學和神經解剖學的研究表明,大腦中實際的神經網絡一般具有層次結構,同時結點間的連接很多屬於前饋連接,同時這種前饋連接構成的網絡(前饋網絡)學習過程比較容易,所以首先討論前饋網絡模型。 1958年心理學家Frank Rosenblatt及其合作者首先研究了這種前饋層次網絡模型,將其稱為感知器(Perception)。

55 3 前饋神經網絡 在感知器模型中,輸入向量x=(x1, x2,…,xN)通過各輸入端點分配給下一層的各結點,這下一層稱為中間層,它可以是一層,也可以是多層,最後通過輸出層結點得到輸出向量y=(y1, y2,…, yn)。 在這種前饋網絡模型中,沒有層內聯接,也沒有隔層的前饋聯接,每一個結點只能前饋聯接到其下一層的所有結點。 由於在早期對於含有隱蔽層的多層感知器沒有可行的訓練演算法,所以初期研究的感知器是一層感知器(或稱簡單感知器,通常簡稱為感知器)。 由於多層網絡具有較強的處理功能,因此人們一直致力於尋找多層網絡的訓練演算法,直到Rumelhart等人提出完整的誤差反傳訓練演算法(BP演算法),解決了多層網絡的訓練問題。

56 3 前饋神經網絡 3.1單層感知器 --感知器模型

57 3 前饋神經網絡 oj x1 -1 xn 3.1單層感知器 --感知器模型 j=1,2,…,m 淨輸入: 輸出:

58 3 前饋神經網絡 3.1單層感知器 x1 oj --感知器的功能 x2 (1)設輸入向量X=(x1 ,x2)T 輸出:
-1 x2 3.1單層感知器 --感知器的功能 (1)設輸入向量X=(x1 ,x2)T 單計算節點感知器 輸出: 則由方程 w1jx1+w2jx2-Tj=0 確定了二維平面上的一條分界線。

59 3 前饋神經網絡 3.1單層感知器 --感知器的功能

60 3 前饋神經網絡 3.1單層感知器 (2)設輸入向量X=(x1,x2,x3)T x1 oj x2 --感知器的功能 x3
-1 3.1單層感知器 --感知器的功能 (2)設輸入向量X=(x1,x2,x3)T 輸出: 則由方程 w1jx1+w2jx2+w3j x3–Tj=0 確定了三維空間上的一個分界平面。

61 3 前饋神經網絡 3.1單層感知器 --感知器的功能

62 3 前饋神經網絡 3.1單層感知器 (3) 設輸入向量X=(x1,x2,…,xn)T
--感知器的功能 (3) 設輸入向量X=(x1,x2,…,xn)T sgn(w1jx1+w2jx2+…+wnjxn –Tj) 輸出: 則由方程 w1jx1+w2jx2+…+wnj xn–Tj=0 確定了n維空間上的一個分界平面。

63 3 前饋神經網絡 3.1單層感知器 --感知器的功能 一個最簡單的單計算節點感知器具有分類功能。其分類原理是將分類知識存儲於感知器的權向量(包含了閾值)中,由權向量確定的分類判決界面將輸入模式分為兩類。

64 3 前饋神經網絡 3.1單層感知器 -- 感知器的學習演算法 感知器學習規則的訓練步驟:
-- 感知器的學習演算法 感知器學習規則的訓練步驟: (1) 對各權值w0j(0),w1j(0),┄,wnj(0),j=1, 2,┄,m (m為計算層的節點數)賦予較小的非零隨機數; (2) 輸入樣本對{Xp,dp},其中Xp=(-1,x1p,x2p,┄,xnp), dp為期望的輸出向量(教師信號),上標p代表 樣本對的模式序號,設樣本集中的樣本總數為P, 則p=1,2,┄,P;

65 3 前饋神經網絡 3.1單層感知器 -- 感知器的學習演算法 感知器學習規則的訓練步驟:
-- 感知器的學習演算法 感知器學習規則的訓練步驟: (3)計算各節點的實際輸出 ojp(t)=sgn[WjT(t)Xp], j=1,2,...,m; (4)調整各節點對應的權值,Wj(t+1)= Wj(t)+η[dj p-oj p(t)]Xp, j=1, 2,┄,m, 其中η為學習率,用於控制調整速度,太大 會影響訓練的穩定性,太小則使訓練的收斂速度變慢, 一般取0<η≤1; (5)返回到步驟(2)輸入下一對樣本,周而復始直到對所有 樣本,感知器的實際輸出與期望輸出相等。

66 3 前饋神經網絡 3.1單層感知器 -- 感知器的學習演算法舉例 例: 單計算節點感知器,3個輸入。給定3對訓練樣本對如下:
-- 感知器的學習演算法舉例 例: 單計算節點感知器,3個輸入。給定3對訓練樣本對如下: X1 = (-1,1,-2,0)T d1 = 1 X2 = (-1,0,1.5,-0.5)T d2 =  1 X3 = (-1,-1,1,0.5)T d3 =1 設初始權向量W(0)=(0.5,1,-1,0)T,η=0.1。注意,輸入向量中第一個分量 x0 恒等於-1,權向量中第一個分量為閾值,試根據以上學習規則訓練該感知器。

67 3 前饋神經網絡 3.1單層感知器 解:第一步 輸入X1,得 WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5
-- 感知器的學習演算法舉例 解:第一步 輸入X1,得 WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5 o1(0)=sgn(2.5)=1 W(1)= W(0)+η[d1- o1(0)] X1 =(0.5,1,-1,0)T+0.1(-1-1)(-1,1,-2,0)T =(0.7,0.8,-0.6,0)T

68 3 前饋神經網絡 3.1單層感知器 -- 感知器的學習演算法舉例 第二步 輸入X2,得
-- 感知器的學習演算法舉例 第二步 輸入X2,得 WT(1)X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T= -1.6 o2(1)=sgn(-1.6)= -1 W(2)= W(1)+η[d2- o2(1)] X2 =(0.7,0.8,-0.6,0)T+0.1[-1-(-1)](-1,0,1.5,-0.5)T =(0.7,0.8,-0.6,0)T 由於d2= o2(1),所以W(2)= W(1)。

69 3 前饋神經網絡 3.1單層感知器 -- 感知器的學習演算法舉例 第三步 輸入X3,得
-- 感知器的學習演算法舉例 第三步 輸入X3,得 WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T= -2.1 O3(2)=sgn(-2.1)= -1 W(3)= W(2)+η[d3- o3(2)] X3 =(0.7,0.8,-0.6,0)T+0.1[1-(-1)](-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T 第四步 返回到第一步,繼續訓練直到 dp - op = 0,p=1,2,3。

70 3 前饋神經網絡 3.2 多層感知器 x1 x2 y1 y2 o 1 “異或”的真值表 例 用兩計算層感知器解決“異或”問題。 雙層感知器
1 3.2 多層感知器 例 用兩計算層感知器解決“異或”問題。 雙層感知器 “異或”問題分類

71 3 前饋神經網絡 3.2 多層感知器 x1 x2 y1 y2 o 1 “異或”的真值表 例 用兩計算層感知器解決“異或”問題。 雙層感知器
1 3.2 多層感知器 例 用兩計算層感知器解決“異或”問題。 雙層感知器 “異或”問題分類

72 3 前饋神經網絡 3.2 多層感知器 x1 x2 y1 y2 o 1 “異或”的真值表 例 用兩計算層感知器解決“異或”問題。 雙層感知器
1 3.2 多層感知器 例 用兩計算層感知器解決“異或”問題。 雙層感知器 “異或”問題分類

73 3 前饋神經網絡 3.2 多層感知器 x1 x2 y1 y2 o 1 “異或”的真值表 例 用兩計算層感知器解決“異或”問題。 雙層感知器
1 3.2 多層感知器 例 用兩計算層感知器解決“異或”問題。 雙層感知器 “異或”問題分類

74 R實戰-感知器 plot(1:i,eps[1:i],type="o") a<-0.2 w<-rep(0,3)
data(iris) View(iris) iris1<-t(as.matrix(iris[,3:4])) d<-c(rep(0,50),rep(1,100)) e<-rep(0,150) p<-rbind(rep(1,150),iris1) max< eps<-rep(0,100000) i<-0 repeat{ v<-w%*%p; y<-ifelse(sign(v)>=0,1,0); e<-d-y; eps[i+1]<-sum(abs(e))/length(e) if(eps[i+1]<0.01){ print("finish:"); print(w); break; } w<-w+a*(d-y)%*%t(p); i<-i+1; if(i>max){ print("max time loop"); print(eps[i]); print(y); break;} #繪圖程式 plot(Petal.Length~Petal.Width,xlim=c(0,3),ylim=c(0,8),data=iris[iris$Species=="virginica",]) data1<-iris[iris$Species=="versicolor",] points(data1$Petal.Width,data1$Petal.Length,col=2) data2<-iris[iris$Species=="setosa",] points(data2$Petal.Width,data2$Petal.Length,col=3) x<-seq(0,3,0.01) y<-x*(-w[2]/w[3])-w[1]/w[3] lines(x,y,col=4) #繪製每次迭代的平均絕對誤差 plot(1:i,eps[1:i],type="o") 我們以鳶尾花數據集為例,由於單層感知器是一個二分類器,所以我們將鳶尾花數據也分為兩類,“setosa”與“versicolor” (將後兩類均看做第2類),那麼數據按照特徵:花瓣長度與寬度做分類。

75 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 基於BP演算法的多層前饋網絡模型

76 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 基於BP演算法的多層前饋網絡模型 輸入向量: X=(x1,x2,…,xi,…,xn)T
隱層輸出向量: Y=(y1,y2,…,yj,…,ym)T 輸出層輸出向量: O=(o1,o2,…,ok,…,ol)T 期望輸出向量:d=(d1, d2,…,dk,…,dl)T 輸入層到隱層之間的權值矩陣:V=(V1,V2,…,Vj,…,Vm) 隱層到輸出層之間的權值矩陣:W=(W1,W2,…,Wk,…,Wl)

77 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 基於BP演算法的多層前饋網絡模型 對於輸出層: k=1,2,…,l 對於隱層:
j=1,2,…,m

78 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 基於BP演算法的多層前饋網絡模型 單極性Sigmoid函數: 雙極性Sigmoid函數:

79 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 BP學習演算法 一、網絡誤差 定義與權值調整思路 輸出誤差E定義:
將以上誤差定義式展開至隱層: (3.3.7)

80 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 BP學習演算法 一、網絡誤差與權值調整 進一步展開至輸入層: (3.3.8)

81 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 BP學習演算法 j=0,1,2,…,m; k=1,2,…,l (3.3.9a)
i=0,1,2,…,n; j=1,2,…,m (3.3.9b) 式中負號表示梯度下降,常數η∈(0,1)表示比例係數。 在全部推導過程中,對輸出層有j=0,1,2,…,m; k=1,2,…,l 對隱層有 i=0,1,2,…,n; j=1,2,…,m。

82 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 BP演算法推導 yj xi 對於輸出層,式(3.4.9a)可寫為 (3.3.10a)
對輸出層和隱層各定義一個誤差信號,令 (3.3.11a) (3.3.11b)

83 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 綜合應用上式,可將式 (3.3.10a)的權值調整式改寫為 (3.3.12a)
可以看出,只要計算出式(3.4.12)中的誤差信號 o和 y,權值調整量的計算推導即可完成。下面繼續推導如何求誤差信號 o和 y 。

84 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 對於輸出層,  o可展開為 (3.3.13a) 對於隱層,  y可展開為
下麵求式(3.3.13)中網絡誤差對各層輸出的偏導。

85 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 對於輸出層: (3.3.14a) 可得: 對於隱層,利用式(3.3.7): 可得:

86 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 將以上結果代入式 並應用式 得到: (3.3.15a) 同理 (3.3.15b)
至此兩個誤差信號的推導已完成。

87 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 將式(3.3.15)代回到式(3.3.12),得到三層前饋網的BP學習演算法權值調整計算公式為: (3.3.16a) (3.3.16b)

88

89 3 前饋神經網絡 BP演算法的程式實現 3.3 誤差反傳(BP)演算法 (1)初始化;
(2)輸入訓練樣本對X Xp、d dp計算各層輸出; (3)計算網絡輸出誤差: (4)計算各層誤差信號; (5)調整各層權值; (6)檢查是否對所有樣本完成一次輪訓; (7)檢查網絡總誤差是否達到精度要求。 BP演算法的程式實現

90 3 前饋神經網絡 多層前饋網(感知器)的主要能力 3.3 誤差反傳(BP)演算法 (1)非線性映射能力
多層前饋網能學習和存貯大量輸入-輸出模式映射關係,而無需事先瞭解描述這種映射關係的數學方程。只要能提供足夠多的樣本模式供BP網絡進行學習訓練,它便能完成由n維輸入空間到m維輸出空間的非線性映射。

91 3 前饋神經網絡 多層前饋網(感知器)的主要能力 3.3 誤差反傳(BP)演算法 (2)泛化能力
當向網絡輸入訓練時未曾見過的非樣本數據時,網絡也能完成由輸入空間向輸出空間的正確映射。這種能力稱為多層前饋網的泛化能力。 (3)容錯能力 輸入樣本中帶有較大的誤差甚至個別錯誤對網絡的輸入輸出規律影響很小。

92 3 前饋神經網絡 誤差曲面與BP演算法的局限性 3.3 誤差反傳(BP)演算法
誤差函數的可調整參數的個數 nw 等於各層權值數加上閾值數,即: 誤差 E 是 nw+1 維空間中一個形狀極為複雜的曲面,該曲面上的每個點的“高度”對應於一個誤差值,每個點的座標向量對應著 nw 個權值,因此稱這樣的空間為誤差的權空間。

93 3 前饋神經網絡 3.3 誤差反傳(BP)演算法 誤差曲面與BP演算法的局限性 誤差曲面的分佈有兩個特點: 特點之一:存在平坦區域

94 3 前饋神經網絡 誤差曲面與BP演算法的局限性 3.3 誤差反傳(BP)演算法
多數極小點都是局部極小,即使是全域極小往往也不是唯一的,但其特點都是誤差梯度為零。 特點之二:存在多個極小點 誤差曲面的平坦區域會使訓練次數大大增加,從而影響了收斂速度;而誤差曲面的多極小點會使訓練陷入局部極小,從而使訓練無法收斂於給定誤差。

95 3 前饋神經網絡 標準BP演算法的改進 3.3 誤差反傳(BP)演算法 標準的BP演算法在應用中暴露出不少內在的缺陷:
⑴ 易形成局部極小而得不到全域最優; ⑵ 訓練次數多使得學習效率低,收斂速度慢; ⑶ 隱節點的選取缺乏理論指導; ⑷ 訓練時學習新樣本有遺忘舊樣本的趨勢。 針對上述問題,國內外已提出不少有效的改進演算法。 標準BP演算法的改進

96 R實戰-神經網絡 library(Rcpp) library(RSNNS) data(iris)
iris = iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)] # 將數據順序打亂 irisValues= iris[,1:4] # 定義網絡輸入 irisTargets = decodeClassLabels(iris[,5]) # 定義網絡輸出 # 訓練樣本和檢驗樣本,預設20%劃分為測試樣本 iris = splitForTrainingAndTest(irisValues, irisTargets, ratio=0.20) iris = normTrainingAndTestSet(iris) #數據標準化 # 訓練預測模型,利用mlp命令執行 前饋反向傳播神經網絡演算法 model = mlp(iris$inputsTrain, iris$targetsTrain, size=4, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, , 0.1), maxit=100, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest) summary(model) weightMatrix=weightMatrix(model) #查看神經網絡各節點連接的權重 predResult = predict(model,iris$inputsTest) #利用上面建立的模型進行預測 conMatrix=confusionMatrix(iris$targetsTest, predResult)

97 謝 謝!


Download ppt "第9章 人工神經網絡 原理及應用 王海."

Similar presentations


Ads by Google