多層感知器
多層感知器(MLP)是最初的「深度」神經網路:數層神經元一層接一層堆疊,前一層的每個神經元連到後一層的每個神經元,層與層之間夾著非線性。資訊嚴格地向前流動(輸入層、一或多個隱藏層、輸出層),沒有迴圈。它是你在加入那些讓網路專門化於影像或序列的結構性技巧(卷積、注意力)之前,會先採用的基準架構。
一個 L 層的 MLP 把仿射變換與非線性複合起來:h0 = x,接著對每一層 l,h_l = phi(W_l·h_(l-1) + b_l),輸出從最末層讀出(通常帶一個任務特定的最終激活,如 softmax)。每個 W_l 是權重矩陣、每個 b_l 是偏置向量、phi 是逐元素的激活如 ReLU。隱藏層就是你永遠不會直接觀察到其輸出的那些層;它們的寬度(神經元數)與網路的深度(層數)是主要的容量旋鈕。
只要有單一夠寬的隱藏層與一個非線性 phi,MLP 就能在有界定義域上近似任意連續函數(通用近似定理),所以原則上 MLP 可以分類影像。但實務上它對原始像素並不合適:把影像攤平成向量會丟掉空間結構,而把每個像素連到每個隱藏單元會造出龐大數量的權重,導致過擬合,並忽略「貓無論出現在哪裡都是貓」這個事實。卷積網路正是藉由在局部區塊上共享權重來解決此事。
儘管如此,MLP 仍遍布於現代視覺系統內部,只是不在原始像素上。CNN 或 ViT 主幹之上的分類頭是一個 MLP;每個 Transformer 區塊在注意力之後都含有一個逐位置的 MLP(其前饋網路);而像 MLP-Mixer(2021)這樣的架構也顯示,只要有合適的詞元化(tokenization),單靠 MLP 在影像分類上也能具競爭力。因此 MLP 既是歷史上的基準,也是活躍的建構基石。
為何重要:理解 MLP 的「先攤平再全連接」做法,會讓卷積的動機一目了然。CNN 就是加上權重共享與局部性約束的 MLP,這些約束內建了「鄰近像素彼此相關」與「特徵應具平移等變性」這兩個先驗。