核心概念#
2018 年圖靈獎頒給了深度學習三巨頭:本杰奧(Yoshua Bengio)、辛頓(Geoffrey Hinton)和萊昆(Yann LeCun)。Google 大腦的本質是利用並行計算技術重新實現了人工神經網絡(Artificial Neural Network)的訓練方法。
人工神經網絡#
- 人工神經網絡本質上是一種特殊的有向圖,借用了生物學「神經元」的名詞,但與人腦沒有半點關係
- 結構特殊性:
- 所有節點分層排列,每一層節點通過有向弧指向上一層
- 同一層節點之間沒有弧互相連接,且不能越過一層連接
- 每條弧上有一個值(權重),節點的值由輸入值的線性加權組合決定
- 最下層為輸入層,最上層為輸出層,中間各層統稱為隱含層
- 每個神經元的計算分兩步:
- 線性組合:$G = w_0 + x_1 \cdot w_1 + x_2 \cdot w_2 + … + x_n \cdot w_n$
- 非線性變換:$y = f(G)$,其中 $f(\cdot)$ 稱為神經元函數(必須是非線性的,但只接受一個變量)
- 當神經元函數選用指數函數 $f(G) = e^G$ 時,其模式分類能力等價於最大熵模型
人工神經網絡擅長的是多維空間中的模式分類問題。語音識別、機器翻譯、人臉識別、癌細胞識別、疾病預測和股市預測等,大多與「智能」有關的問題都可歸結為此。
訓練人工神經網絡#
- 訓練分為有監督訓練和無監督訓練兩種
- 有監督訓練:有標注好的樣本(輸入 $x$ 和對應輸出 $y$),定義成本函數 $C = \Sigma(y(w) - y)^2$,目標是找到參數 $\hat{w}$ 使成本最小
- 求最優化的常用方法是梯度下降法(Gradient Descent)——每次向最「陡」的方向走一步,保證最快到達山頂(或谷底)
- 無監督訓練:只有輸入數據沒有對應輸出,需要定義新的成本函數,用梯度下降法訓練
對於結構複雜的人工神經網絡,訓練量非常大,而且這是一個 NP 完全問題,很多機器學習的專家都在尋找各種好的近似方法。
人工神經網絡與貝葉斯網絡的關係#
相同點:
- 都是有向圖,每個節點取值只取決於前一級的節點(馬爾可夫假設)
- 訓練方法類似
- 對於很多模式分類問題,兩種方法在效果上相似,準確性也是類似的
- 訓練計算量都特別大
差異點:
- 人工神經網絡結構完全標準化,而貝葉斯網絡更靈活(Google 大腦選用人工神經網絡正是看中其標準化)
- 神經元函數的各變量只能先進行線性組合再做非線性變換,而貝葉斯網絡中變量可以組合成任意函數
- 貝葉斯網絡更容易考慮上下文相關性,可以解碼一個序列;而人工神經網絡的輸出相對孤立
- 人工神經網絡的訓練算法相對簡單,容易並行實現
延伸閱讀:Google 大腦#
- 人工神經網絡的概念始於 1940 年代,1950 年代在計算機上實現,但 1960 年代末 Marvin Minsky 指出兩大問題導致其沉寂:簡單網絡無法完成異或運算;複雜網絡的計算量不可承受
- 從 1970 年代到 2000 年前後是低谷期,本杰奧、辛頓、萊昆三人在各自大學堅持研究,引入概率論改進算法,拓寬應用範圍,並重新命名為深度學習
- 從 1990 年代到 2010 年,半導體技術使計算能力增長了上萬倍,加上雲計算可同時使用成千上萬台計算機,使大規模訓練成為可能
- Google 大腦的創新之處:利用雲計算的並行處理技術訓練人工神經網絡
- 採用隨機梯度下降法(Stochastic Gradient Descent)降低每次迭代的計算量
- 採用 L-BFGS 方法減少迭代次數,且容易並行化
- 將大網絡切成數千塊,分配到不同服務器上計算
- 模型參數由專門的參數服務器集中存儲和同步
本章小結#
人工神經網絡是一個形式上非常簡單但分類功能強大的機器學習工具。Google 大腦並不是一個什麼都能思考的大腦,而是一個很能計算的人工神經網絡。與其說 Google 大腦很聰明,不如說它很能算。隨著計算能力的不斷提高,計算量大但簡單的數學方法有時能夠解決很複雜的問題。