多層感知器
多層感知器(Multi Layer Perceptron,即 MLP)包括至少一個隱藏層(除了一個輸入層和一個輸出層以外)。單層感知器只能學習線性函數,而多層感知器也可以學習非線性函數。

圖 4:有一個隱藏層的多層感知器
圖 4 表示了含有一個隱藏層的多層感知器。注意,所有的連接都有權重,但在圖中只標記了三個權重(w0,,w1,w2)。
輸入層:輸入層有三個節(jié)點。偏置節(jié)點值為 1。其他兩個節(jié)點從 X1 和 X2 取外部輸入(皆為根據輸入數據集取的數字值)。和上文討論的一樣,在輸入層不進行任何計算,所以輸入層節(jié)點的輸出是 1、X1 和 X2 三個值被傳入隱藏層。
隱藏層:隱藏層也有三個節(jié)點,偏置節(jié)點輸出為 1。隱藏層其他兩個節(jié)點的輸出取決于輸入層的輸出(1,X1,X2)以及連接(邊界)所附的權重。圖 4 顯示了隱藏層(高亮)中一個輸出的計算。其他隱藏節(jié)點的輸出計算同理。需留意 *f *指代激活函數。這些輸出被傳入輸出層的節(jié)點。
輸出層:輸出層有兩個節(jié)點,從隱藏層接收輸入,并執(zhí)行類似高亮出的隱藏層的計算。這些作為計算結果的計算值(Y1 和 Y2)就是多層感知器的輸出。
給出一系列特征 X = (x1, x2, ...) 和目標 Y,一個多層感知器可以以分類或者回歸為目的,學習到特征和目標之間的關系。
為了更好的理解多層感知器,我們舉一個例子。假設我們有這樣一個學生分數數據集:

兩個輸入欄表示了學生學習的時間和期中考試的分數。最終結果欄可以有兩種值,1 或者 0,來表示學生是否通過的期末考試。例如,我們可以看到,如果學生學習了 35 個小時并在期中獲得了 67 分,他 / 她就會通過期末考試。
現(xiàn)在我們假設我們想預測一個學習了 25 個小時并在期中考試中獲得 70 分的學生是否能夠通過期末考試。
這是一個二元分類問題,多層感知器可以從給定的樣本(訓練數據)進行學習,并且根據給出的新的數據點,進行準確的預測。在下面我們可以看到一個多層感知器如何學習這種關系。
訓練我們的多層感知器:反向傳播算法
反向傳播誤差,通??s寫為「BackProp」,是幾種訓練人工神經網絡的方法之一。這是一種監(jiān)督學習方法,即通過標記的訓練數據來學習(有監(jiān)督者來引導學習)。
簡單說來,BackProp 就像「從錯誤中學習」。監(jiān)督者在人工神經網絡犯錯誤時進行糾正。
一個人工神經網絡包含多層的節(jié)點;輸入層,中間隱藏層和輸出層。相鄰層節(jié)點的連接都有配有「權重」。學習的目的是為這些邊緣分配正確的權重。通過輸入向量,這些權重可以決定輸出向量。
在監(jiān)督學習中,訓練集是已標注的。這意味著對于一些給定的輸入,我們知道期望 / 期待的輸出(標注)。
反向傳播算法:最初,所有的邊權重(edge weight)都是隨機分配的。對于所有訓練數據集中的輸入,人工神經網絡都被激活,并且觀察其輸出。這些輸出會和我們已知的、期望的輸出進行比較,誤差會「傳播」回上一層。該誤差會被標注,權重也會被相應的「調整」。該流程重復,直到輸出誤差低于制定的標準。
上述算法結束后,我們就得到了一個學習過的人工神經網絡,該網絡被認為是可以接受「新」輸入的。該人工神經網絡可以說從幾個樣本(標注數據)和其錯誤(誤差傳播)中得到了學習。
現(xiàn)在我們知道了反向傳播的原理,我們回到上面的學生分數數據集。

圖 5:多層感知器的前向傳播
圖 5 中的多層感知器(修改自 Sebastian Raschka 漂亮的反向傳播算法圖解:https://github.com/rasbt/python-machine-learning-book/blob/master/faq/visual-backpropagation.md)的輸入層有兩個節(jié)點(除了偏置節(jié)點以外),兩個節(jié)點分別接收「學習小時數」和「期中考試分數」。感知器也有一個包含兩個節(jié)點的隱藏層(除了偏置節(jié)點以外)。輸出層也有兩個節(jié)點——上面一個節(jié)點輸出「通過」的概率,下面一個節(jié)點輸出「不通過」的概率。
電子發(fā)燒友App














評論