神經網路

多層感知器(multilayer perceptron)

/ MUL-tee-lay-er per-SEP-tron /

多層感知器,簡稱 MLP,是最基礎的一種神經網路:一排排的人工神經元一前一後地疊在一起,資訊從輸入筆直流向輸出。想像一條由「拿主意的人」組成的流水線。第一排讀入原始輸入,每個神經元做出自己那點加權的判斷,把數字傳給下一排,下一排把這些判斷綜合成更抽象的判斷,如此層層推進,直到最後一排給出答案。這裡沒有迴路,也沒有捷徑——只有一條乾淨的、向前的級聯,這也正是它又被稱為前饋網路的原因。

MLP 與它的祖先、單個感知器的區別,在於中間的隱藏層——那些既非輸入、也非輸出的排。孤零零一個感知器只能用一條直線去切分資料,並以在 XOR 這類簡單模式上栽跟頭而出名。在輸入與輸出之間塞進一個隱藏層,再在每個神經元處加上一個非線性激活函數,網路忽然就能把它的決策邊界彎折成幾乎任何形狀。從一層到多層的這一躍,正是讓神經網路真正強大起來的關鍵。

一層中的每個神經元,通常都與下一層的每個神經元相連——這就是全連接層,MLP 的標誌。這種稠密既是它的長處也是它的短處:它能學到輸入之間豐富的關係,卻沒有任何對結構的內建感知,所以它會把一張被打亂的圖像和一張有序的圖像同等對待。對於具有空間或序列結構的資料,專門的網路(卷積或循環)通常表現更好。不過 MLP 仍是概念上的根基——理解了它,你就理解了大多數深度學習底下的那副骨架。

一個預測房價的小型 MLP,也許有 4 個輸入神經元(面積、臥室數、房齡、到市區的距離),一個含 8 個神經元的隱藏層把這些事實揉合成「吸引力」之類的抽象概念,再加 1 個給出價格的輸出神經元。把一棟房子的這四個數字餵進去,它們便層層向前流動,直到末端蹦出一個單一的價格數字。

一個 MLP:輸入 → 全連接的隱藏層 → 輸出,資訊單向流動。

「多層感知器」這個名字有點名不副實:它的神經元使用平滑的激活函數、靠反向傳播來學習,與最初那個階躍函數的感知器並不相同。這名字是出於歷史原因才沿用下來的,並非技術上的準確。

又稱
MLPfeedforward neural networkfully-connected network多层感知机多層感知器前馈神经网络