1. 程式人生 > >花書《Deep Learning》筆記

花書《Deep Learning》筆記

數學符號

第一章 引言

許多人工智慧任務都可以通過以下方式解決:先提取一個合適的特徵集,然後將這些特徵提供給簡單的機器學習演算法。例如,對於通過聲音鑑別說話者的任務來說,一個有用的特徵是對其聲道大小的估計。這個特徵為判斷說話者是男性、女性還是兒童提供了有力線索。

然而,對於許多工來說,我們很難知道應該提取哪些特徵。例如,假設我們想編寫一個程式來檢測照片中的車。我們知道,汽車有輪子,所以我們可能會想用車輪的存在與否作為特徵。不幸的是,我們難以準確地根據畫素值來描述車輪看上去像什麼。雖然車輪具有簡單的幾何形狀,但它的影象可能會因場景而異,如落在車輪上的陰影、太陽照亮的車輪的金屬零件、汽車的擋泥板或者遮擋的車輪一部分的前景物體等等。

解決這個問題的途徑之一是使用機器學習來發掘表示本身,而不僅僅把表示對映到輸出。這種方法我們稱之為 表示學習(representation learning)。學習到的表示往往比手動設計的表示表現得更好。並且它們只需最少的人工干預,就能讓AI系統迅速適應新的任務。

**深度學習(deep learning)**通過其他較簡單的表示來表達複雜表示,解決了表示學習中的核心問題。

深度學習模型的典型例子是前饋深度網路或 多層感知機(multilayer perceptron, MLP)。多層感知機僅僅是一個將一組輸入值對映到輸出值的數學函式。該函式由許多較簡單的函式複合而成。我們可以認為不同數學函式的每一次應用都為輸入提供了新的表示。

學習資料的正確表示的想法是解釋深度學習的一個視角。另一個視角是深度促使計算機學習一個多步驟的計算機程式。每一層表示都可以被認為是並行執行另一組指令之後計算機的儲存器狀態。更深的網路可以按順序執行更多的指令。順序指令提供了極大的能力,因為後面的指令可以參考早期指令的結果。從這個角度上看,在某層啟用函式裡,並非所有資訊都蘊涵著解釋輸入的變差因素。表示還儲存著狀態資訊,用於幫助程式理解輸入。這裡的狀態資訊類似於傳統計算機程式中的計數器或指標。它與具體的輸入內容無關,但有助於模型組織其處理過程。

目前主要有兩種度量模型深度的方式。第一種方式是基於評估架構所需執行的順序指令的數目。另一種是在深度概率模型中使用的方法,它不是將計算圖的深度視為模型深度,而是將描述概念彼此如何關聯的圖的深度視為模型深度。

本書結構:

深度學習的歷史趨勢

控制論
現代深度學習的最早前身是從神經科學的角度出發的簡單線性模型。這些模型被設計為使用一組 n 個輸入 x1, . . . , xn 並將它們與一個輸出 y 相關聯。這些模型希望學習一組權重 w1, . . . , wn,並計算它們的輸出 f(x, w) = x1w1 + · · · + xnwn。如圖 1.7 所示,這第一波神經網路研究浪潮被稱為控制論。

現代術語 “深度學習’’ 超越了目前機器學習模型的神經科學觀點。它訴諸於學習多層次組合這一更普遍的原理,這一原理也可以應用於那些並非受神經科學啟發的機器學習框架。

線性模型有很多侷限性。最著名的是,它們無法學習異或(XOR)函式,即f([0, 1], w) = 1 和 f([1, 0], w) = 1,但 f([1, 1], w) = 0 和 f([0, 0], w) = 0。觀察到線性模型這個缺陷的批評者對受生物學啟發的學習普遍地產生了抵觸 (Minsky andPapert, 1969)。這導致了神經網路熱潮的第一次大衰退。

現在,神經科學被視為深度學習研究的一個重要靈感來源,但它已不再是該領域的主要指導。
如今神經科學在深度學習研究中的作用被削弱,主要原因是我們根本沒有足夠的關於大腦的資訊來作為指導去使用它。要獲得對被大腦實際使用演算法的深刻理解,我們需要有能力同時監測(至少是)數千相連神經元的活動。我們不能夠做到這一點,所以我們甚至連大腦最簡單、最深入研究的部分都還遠遠沒有理解 (Olshausen and Field, 2005)。

神經科學已經給了我們依靠單一深度學習演算法解決許多不同任務的理由。神經學家們發現,如果將雪貂的大腦重新連線,使視覺訊號傳送到聽覺區域,它們可以學會用大腦的聽覺處理區域去 ‘‘看” (Von Melchner et al., 2000)。這暗示著大多數哺乳動物的大腦能夠使用單一的演算法就可以解決其大腦可以解決的大部分不同任務。在這個假設之前,機器學習研究是比較分散的,研究人員在不同的社群研究自然語言處理、計算機視覺、運動規劃和語音識別。如今,這些應用社群仍然是獨立的,但是對於深度學習研究團體來說,同時研究許多或甚至所有這些應用領域是很常見的。

深度學習研究者比其他機器學習領域(如核方法或貝葉斯統計)的研究者更可能地引用大腦作為影響,但是大家不應該認為深度學習在嘗試模擬大腦。現代深度學習從許多領域獲取靈感,特別是應用數學的基本內容如線性代數、概率論、資訊理論和數值優化。

聯結主義
聯結主義的中心思想是,當網路將大量簡單的計算單元連線在一起時可以實現智慧行為。這種見解同樣適用於生物神經系統中的神經元,因為它和計算模型中隱藏單元起著類似的作用。

其中一個概念是 分散式表示(distributed representation)(Hinton et al., 1986)。其思想是:系統的每一個輸入都應該由多個特徵表示,並且每一個特徵都應該參與到多個可能輸入的表示。聯結主義潮流的另一個重要成就是反向傳播在訓練具有內部表示的深度神經網路中的成功使用以及反向傳播演算法的普及。

深度學習
神經網路研究的第三次浪潮始於 2006 年的突破。Geoffrey Hinton 表明名為深度信念網路的神經網路可以使用一種稱為貪婪逐層預訓練的策略來有效地訓練(Hinton et al., 2006a),我們將在第 15.1 節中更詳細地描述。

神經網路研究的這一次浪潮普及了 “深度學習’’ 這一術語的使用,強調研究者現在有能力訓練以前不可能訓練的比較深的神經網路,並著力於深度的理論重要性上 (Bengio and LeCun, 2007b; Delalleau and Bengio, 2011; Pascanu et al., 2014a;Montufar et al., 2014)。此時,深度神經網路已經優於與之競爭的基於其他機器學習技術以及手工設計功能的 AI 系統。在寫這本書的時候,神經網路的第三次發展浪潮仍在繼續,儘管深度學習的研究重點在這一段時間內發生了巨大變化。第三次浪潮已開始著眼於新的無監督學習技術和深度模型在小資料集的泛化能力,但目前更多的興趣點仍是比較傳統的監督學習演算法和深度模型充分利用大型標註資料集的能力。

與日俱增的資料量

截至 2016 年,一個粗略的經驗法則是,監督深度學習演算法在每類給定約 5000 個標註樣本情況下一般將達到可以接受的效能,當至少有 1000 萬個標註樣本的資料集用於訓練時,它將達到或超過人類表現。此外,在更小的資料集上獲得成功是一個重要的研究領域,為此我們應特別側重於如何通過無監督或半監督學習充分利用大量的未標註樣本。

與日俱增的模型規模

聯結主義的主要見解之一是,當動物的許多神經元一起工作時會變得聰明。幾十年來,我們的機器學習模型中每個神經元的連線數量已經與哺乳動物的大腦在同一數量級上。

就神經元的總數目而言,直到最近神經網路都是驚人的小。自從隱藏單元引入以來,人工神經網路的規模大約每 2.4 年擴大一倍。這種增長是由更大記憶體、更快的計算機和更大的可用資料集驅動的。更大的網路能夠在更復雜的任務中實現更高的精度。這種趨勢看起來將持續數十年。除非有能力迅速擴充套件的新技術,否則至少要到 21 世紀 50 年代,人工神經網路將才能具備與人腦相同數量級的神經元。

第一部分 應用數學與機器學習基礎

本書這一部分將介紹理解深度學習所需的基本數學概念。我們從應用數學的一般概念開始,這能使我們定義許多變數的函式,找到這些函式的最高和最低點,並量化信念度。
接著,我們描述機器學習的基本目標,並描述如何實現這些目標。我們需要指定代表某些信念的模型、設計衡量這些信念與現實對應程度的代價函式以及使用訓練演算法最小化這個代價函式。
這個基本框架是廣泛多樣的機器學習演算法的基礎,其中也包括非深度的機器學習方法。在本書的後續部分,我們將在這個框架下開發深度學習演算法。

第二章 線性代數