神經網絡反向傳播算法原理筆記

       神經網絡是一種是基於生物學中神經網絡的基本原理,在理解和抽象了人腦結構和外界刺激響應機制後,以網絡拓撲知識爲理論基礎,模擬人腦的神經系統對複雜信息的處理機制的一種數學模型。該模型以並行分佈的處理能力、高容錯性、智能化和自學習等能力爲特徵,將信息的加工和存儲結合在一起,以其獨特的知識表示方式和智能化的自適應學習能力,引起各學科領域的關注。它實際上是一個有大量簡單元件相互連接而成的複雜網絡,具有高度的非線性,能夠進行復雜的邏輯操作和非線性關係實現的系統。

       神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱爲激活函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之爲權重(weight),神經網絡就是通過這種方式來模擬人類的記憶。網絡的輸出則取決於網絡的結構、網絡的連接方式、權重和激活函數。而網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。神經網絡的構築理念是受到生物的神經網絡運作啓發而產生的。人工神經網絡則是把對生物神經網絡的認識與數學統計模型相結合,藉助數學統計工具來實現。另一方面在人工智能學的人工感知領域,通過數學統計學的方法,使神經網絡能夠具備類似於人的決定能力和簡單的判斷能力。
       神經網絡架構:
1
2
假設有這樣一個學生分數數據集:
3
       兩個輸入欄表示了學生學習的時間和期中考試的分數。最終結果欄可以有兩種值,1 或者 0,來表示學生是否通過的期末考試。例如,如果學生學習了 35 個小時並在期中獲得了 67 分,他 / 她就會通過期末考試。
       現在假設我們想預測一個學習了 25 個小時並在期中考試中獲得 70 分的學生是否能夠通過期末考試 ?這是一個二元分類問題,多層感知器可以從給定的樣本(訓練數據)進行學習,並且根據給出的新的數據點,進行準確的預測。
訓練多層感知器:反向傳播算法
       反向傳播誤差,通常縮寫爲「BackProp」,是幾種訓練人工神經網絡的方法之一。這是一種監督學習方法,即通過標記的訓練數據來學習(有監督者來引導學習)。簡單說來,BackProp 就像「從錯誤中學習」。監督者在人工神經網絡犯錯誤時進行糾正。
       一個人工神經網絡包含多層的節點;輸入層,中間隱藏層和輸出層。相鄰層節點的連接都有配有「權重」。學習的目的是爲這些邊緣分配正確的權重。通過輸入向量,這些權重可以決定輸出向量。在監督學習中,訓練集是已標註的。這意味着對於一些給定的輸入,我們知道期望的輸出。
       反向傳播算法:最初,所有的邊權重(edge weight)都是隨機分配的。對於所有訓練數據集中的輸入,人工神經網絡都被激活,並且觀察其輸出。這些輸出會和我們已知的、期望的輸出進行比較,誤差會「傳播」回上一層。該誤差會被標註,權重也會被相應的「調整」。該流程重複,直到輸出誤差低於制定的標準。
       上述算法結束後,我們就得到了一個學習過的神經網絡,該網絡被認爲是可以接受「新」輸入的。該神經網絡可以說從一些樣本(標註數據)和其錯誤(誤差傳播)中得到了學習。

多層感知器的前向傳播:
4
       在分類任務中,通常在感知器的輸出層中使用 Softmax 函數作爲激活函數,以保證輸出的是概率並且相加等於 1。Softmax 函數接收一個隨機實值的分數向量,轉化成多個介於 0 和 1 之間、並且總和爲 1 的多個向量值。所以,在這個例子中:
       概率(Pass)+概率(Fail)=1

第一步:前向傳播
       網絡中所有的權重都是隨機分配的。現在考慮上圖中標註 V 的隱藏層節點。假設從輸入連接到這些節點的權重分別爲 w1、w2 和 w3(如圖上圖所示)。
       神經網絡會將第一個訓練樣本作爲輸入(已知在輸入爲 35 和 67 的情況下,通過的概率爲 1)。
       網絡的輸入=[35, 67]
       期望的網絡輸出(目標)=[1, 0]
       涉及到的節點的輸出 V 可以按如下方式計算(f 是類似 Sigmoid 的激活函數):
               V = f(1w1 + 35w2 + 67*w3)

第二步:反向傳播和權重更新
       計算輸出節點的總誤差,並將這些誤差用反向傳播算法傳播回網絡,以計算梯度。接下來,使用類似梯度下降之類的算法來「調整」網絡中的所有權重,目的是減少輸出層的誤差。下圖展示了這一過程(暫時忽略圖中的數學等式)。
       假設附給節點的新權重分別是 w4,w5 和 w6(在反向傳播和權重調整之後)。
5

在同樣的輸入下,多層感知器網絡有更好的表現:
6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章