從腦細胞到簡筆畫
你腦袋裡真實的神經元會從成千上萬個鄰居那裡收集微小的電訊號刺激。當刺激的總和越過某個閾值,它就沿著自己的「導線」發出一個脈衝;否則就保持安靜。這就是早期研究者借來的全部圖景——不是那一團雜亂的生物化學,而僅僅是這句口號:*把你的輸入加起來,如果總和足夠大就發放*。人工神經元 是這句口號刻意畫出的一幅簡筆畫,而坦白承認它只是簡筆畫,正是誠實的起點。
這個想法正好坐落在被稱為 聯結主義 的傳統之中:它押注智能並非來自人手寫下的規則,而是從許多連接在一起的簡單單元中湧現出來。這與你在本階梯前面遇到的、由邏輯和顯式規則構成的 符號式人工智慧 恰好是相反的哲學。兩個陣營都不是全部真理,但神經元是聯結主義的原子。
加權求和與偏置
給神經元一把數字作為輸入——比如像素的亮度,或者一棟房子的各項 特徵。每個輸入都會被乘上它自己的 權重,這個數說明該輸入有多重要、又朝哪個方向起作用。把這些乘積加在一起,你就得到了加權求和。一個很大的正權重在說「要重視這個輸入」;一個負權重在說「這個輸入把我往反方向推」;一個接近零的權重則說「忽略它」。
然後我們再加上一個只屬於這個神經元自己的數:偏置。它不乘任何輸入;它只是把整個和往上或往下平移,決定在任何輸入到來之前、這個神經元有多「躍躍欲發放」。可以把權重想成一個決定的*斜率*,把偏置想成你在數軸上把這個決定*栽*在哪裡。如果你前面學過 線性迴歸,你其實已經見過完全相同的形狀:權重乘輸入再加一個截距。
z = (w1*x1 + w2*x2 + ... + wn*xn) + b x = inputs (given to the neuron) w = weights (learned, one per input) b = bias (learned, one per neuron) z = the weighted sum, also called the 'pre-activation'
激活函數:為什麼要把直線掰彎
到目前為止,神經元還是純線性的——一條直線,或在更高維裡是一張平面。最後一步是讓加權求和 z 通過一個 激活函數,也就是一條固定的非線性曲線。最早的神經元用的是一個硬階躍:若 z 越過零就發放 1,否則發放 0。如今更常用的是更平滑的選擇——S 形的 sigmoid 把任何數擠進 0 到 1 之間,而風靡一時的 ReLU 乾脆在 z 為正時輸出 z、否則輸出 0。
到底為什麼要費勁把直線掰彎?因為把線性步驟疊在線性步驟之上,得到的還是一條直線——一百個筆直的層會塌縮成單獨一條直線,學不到任何單層學不到的東西。正是那個非線性的「拐折」,讓疊起來的神經元能在資料中刻畫出彎曲而精細的邊界。激活函數就是那一點點讓「深度」變得有價值的關鍵配料。
每個激活函數都有自己的脾性。sigmoid 給出乾淨的、類似機率的輸出,但會飽和——離零稍遠,它的曲線就幾乎變平,而平坦的曲線幾乎不帶梯度,這預示著你在訓練深層網路時會遇到的 梯度消失 麻煩。ReLU 對正輸入保持陡峭,而且計算便宜,這在很大程度上正是深度學習得以騰飛的原因。並不存在唯一的最佳選擇;這是更寬泛的 沒有免費午餐 道理的一個小小實例。
感知機,以及它如何學習
給單個神經元配上階躍激活,你就得到了 感知機——Frank Rosenblatt 在 1958 年造的機器,也是第一個能夠*自己學習權重*的人工神經元。它的配方簡單得讓人感動:給它看一個樣例,看看它是否正確發放,如果錯了,就把每個權重朝正確答案的方向輕輕推一下。在許多樣例上反覆進行,權重就會漂移到一個能把兩類分開的設置上。
- 從隨機的(常常是零)權重和偏置開始。
- 取一個帶標籤的樣例,算出加權求和,套上階躍得到一個猜測。
- 如果猜測與標籤一致,什麼都不改。
- 如果錯了,就給每個權重加上(或減去)輸入的一個小倍數,把它推向正確的一側。
- 在資料上循環,直到它不再犯錯(如果它做得到的話)。
這是你第一次嘗到 監督學習 的滋味:一個 標籤 告訴這個單元答案本應是什麼,而誤差驅動著更新。它也是 梯度下降 的嬰兒版——朝著錯誤「往下坡滾」——而正是這同一台引擎,經由 反向傳播 推廣之後,訓練著每一個現代網路。感知機不是古雅的遺物;它是整門學問的種子。
一個神經元做不到什麼
該說點誠實話了。單個神經元恰好只能畫出一條直的邊界——在二維裡是一條線,在更高維裡是一張平面。只有當一刀直切就夠用時,它才能把蘋果和橙子分開。經典的反例是互斥或(XOR)模式:你必須在兩個輸入中恰好有一個為開時說「是」。沒有任何一條直線能把那四個點分開,因此沒有任何單個神經元——無論訓練得多麼巧妙——能夠學會互斥或。
好戲與懸念都在這裡。把好幾個神經元並排連成一層,再把一層餵給下一層,那些直的切口就會組合成彎曲、摺疊的區域,從而*能夠*解決互斥或乃至更難得多的問題——這就是 多層感知機。一個著名的結果,通用逼近定理,甚至許諾:一個足夠大的層,原則上幾乎能逼近任何講理的函數。
不過,要仔細讀這個許諾。定理說的是存在一個合適的網路;它從不保證訓練能找到它、它必須有多大,也不保證它能 泛化 到新資料上。「存在」不是「配方」。這條誠實的鴻溝——介於「什麼是可能的」與「什麼是學得會的」之間——正是本階梯接下來要一個神經元一個神經元去探索的地盤。