880
京東網上商城
《TensorFlow技術解析與實戰》——第1章 人工智能概述 1.2什麼是深度學習
第1章 人工智能概述
有人說,人工智能在世界範圍的流行,是因為那盤圍棋。2016年3月,穀歌公司的AlphaGo向韓國棋院圍棋九段大師李世石發起挑戰,而這棋局走法的可能性有361!種,最終AlphaGo戰勝了這場“棋局數比可見宇宙中的原子數還多”的智力遊戲。2015年11月9日(在距這場比賽前4個月),穀歌公司開源了它的第二代深度學習係統TensorFlow,也就是AlphaGo的基礎程序。
1.2 什麼是深度學習
深度學習,顧名思義,需要從“深度”和“學習”兩方麵來談。
1.深度
深度學習的前身是人工神經網絡(artificial neural network,ANN),它的基本特點就是試圖模仿人腦的神經元之間傳遞和處理信息的模式。神經網絡這個詞本身可以指生物神經網絡和人工神經網絡。在機器學習中,我們說的神經網絡一般就是指人工神經網絡。
圖1-3給出的是一個最基本的人工神經網絡的3層模型。
圖1-3
人工神經網絡由各個層組成,輸入層(input layer)輸入訓練數據,在輸出層(output layer)輸出計算結果,中間有1個或多個隱藏層(hidden layer),使輸入數據向前傳播到輸出層。“深度”一詞沒有具體的特指,一般就是要求隱藏層很多(一般指5層、10層、幾百層甚至幾千層)。
人工神經網絡的構想源自對人類大腦的理解——神經元的彼此聯係。二者也有不同之處,人類大腦的神經元是按照特定的物理距離連接的,而人工神經網絡有獨立的層和連接,還有數據傳播方向。
例如,我們拿一張圖片,對它做一些預處理,如圖像居中、灰度調整、梯度銳化、去除噪聲、傾斜度調整等,就可以輸入到神經網絡的第一層。然後,第一層會自己提取這個圖像的特征,把有用的特征向下傳遞,直到最後一層,然後輸出結果。這就是一次前向傳播(forword propagation)。
最後一層的輸出要給出一個結論,例如,在分類問題中,要告訴我們到底輸入的圖像是哪個類別,一般它會給出一個“概率向量”。如圖1-4所示,列出了這隻貓所屬品種的前5個概率值。
圖1-4
人工神經網絡的每一層由大量的節點(神經元)組成,層與層之間有大量連接,但是層內部的神經元一般相互獨立。深度學習的目的就是要利用已知的數據學習一套模型,使係統在遇見未知的數據時也能夠做出預測。這個過程需要神經元具備以下兩個特性。
(1)激活函數(activation function):這個函數一般是非線性函數,也就是每個神經元通過這個函數將原有的來自其他神經元的輸入做一個非線性變化,輸出給下一層神經元。激活函數實現的非線性能力是前向傳播(forword propagation)很重要的一部分。
(2)成本函數(cost function):用來定量評估在特定輸入值下,計算出來的輸出結果距離這個輸入值的真實值有多遠,然後不斷調整每一層的權重參數,使最後的損失值最小。這就是完成了一次反向傳播(backword propagation)。損失值越小,結果就越可靠。
神經網絡算法的核心就是計算、連接、評估、糾錯和訓練,而深度學習的深度就在於通過不斷增加中間隱藏層數和神經元數量,讓神經網絡變得又深又寬,讓係統運行大量數據,訓練它。
2.學習
什麼是“學習”?有一些成語可以概括:舉一反三、聞一知十、觸類旁通、問牛知馬、融會貫通等。計算機的學習和人類的學習類似,我們平時大量做題(訓練數據),不斷地經過階段性考試(驗證數據)的檢驗,用這些知識和解題方法(模型)最終走向最終(測試數據)的考場。
最簡單也最普遍的一類機器學習算法就是分類(classification)。對於分類,輸入的訓練數據有特征(feature),有標記(label),在學習中就是找出特征和標記間的映射關係(mapping),通過標記來不斷糾正學習中的偏差,使學習的預測率不斷提高。這種訓練數據都有標記的學習,稱為有監督學習(supervised learning)。
無監督學習(unsupervised learning)則看起來非常困難。無監督學習的目的是讓計算機自己去學習怎樣做一些事情。因此,所有數據隻有特征而沒有標記。
無監督學習一般有兩種思路:一是在訓練時不為其指定明確的分類,但是這些數據會呈現出聚群的結構,彼此相似的類型會聚集在一起。計算機通過把這些沒有標記的數據分成一個個組合,就是聚類(clustering);二是在成功時采用某種形式的激勵製度,即強化學習(reinforcement learning,RL)。對強化學習來說,它雖然沒有標記,但有一個延遲獎賞與訓練相關,通過學習過程中的激勵函數獲得某種從狀態到行動的映射。強化學習一般用在遊戲、下棋(如前麵提到的AlphaGo)等需要連續決策的領域。(6.7.1節會講解強化學習的應用。)
有人可能會想,難道就隻有有監督學習和無監督學習這兩種非黑即白的關係嗎?二者的中間地帶就是半監督學習(semi-supervised learning)。對於半監督學習,其訓練數據一部分有標記,另一部分沒有標記,而沒標記數據的數量常常極大於有標記數據的數量(這也符合現實,大部分數據沒有標記,標記數據的成本很大)。它的基本規律是:數據的分布必然不是完全隨機的,通過結合有標記數據的局部特征,以及大量沒標記數據的整體分布,可以得到比較好的分類結果。
因此,“學習”家族的整體構造如圖1-5所示[3]。
圖1-5
關於有監督學習和無監督學習在實戰中的應用,會在本書“實戰篇”中介紹。
最後更新:2017-05-23 19:32:05