詳解人工智慧(AI) 機器學習(ML) 深度學習(DL)

詳解人工智慧(AI) 機器學習(ML) 深度學習(DL)

來自專欄從零學AI7 人贊了文章

互聯網研究家(公眾號)

有三個詞,這兩年出現的頻率越來越高:人工智慧(AI),機器學習(ML),深度學習(DL),到底他們哥仨是什麼關係?今天小編化繁為簡,用幾張圖帶你迅速看明白。關係如圖,從提出概念的時間上來看也很清楚:

人工智慧AI:模擬人腦,辨認哪個是蘋果,哪個是橙子。

機器學習ML:根據特徵在水果攤買橙子,隨著見過的橙子和其他水果越來越多,辨別橙子的能力越來越強,不會再把香蕉當橙子。

機器學習強調「學習」而不是程序本身,通過複雜的演算法來分析大量的數據,識別數據中的模式,並做出一個預測--不需要特定的代碼。在樣本的數量不斷增加的同時,自我糾正完善「學習目的」,可以從自身的錯誤中學習,提高識別能力。

深度學習DL:超市裡有3種蘋果和5種橙子,通過數據分析比對,把超市裡的品種和數據建立聯繫,通過水果的顏色、形狀、大小、成熟時間和產地等信息,分辨普通橙子和血橙,從而選擇購買用戶需要的橙子品種。

1、機器學習簡史

哲學上的三大終極問題:是誰?從哪來?到哪去?用在任何地方都是有意義的。

——尼古拉斯·沃布吉·道格拉斯·碩德

雖然人工智慧並不是最近幾年才興起的,但在它一直作為科幻元素出現在大眾視野中。自從AlphaGo戰勝李世石之後,人工智慧突然間成了坊間談資,彷彿人類已經造出了超越人類智慧的機器。而人工智慧的核心技術機器學習及其子領域深度學習一時間成了人們的掌上明珠。面對這個從天而降的「怪物」,樂觀者有之,悲觀者亦有之。但追溯歷史,我們會發現機器學習的技術爆發有其歷史必然性,屬於技術發展的必然產物。而理清機器學習的發展脈絡有助於我們整體把握機器學習,或者人工智慧的技術框架,有助於從「道」的層面理解這一技術領域。這一節就先從三大究極哲學問題中的後兩個——從哪來、到哪去入手,整體把握機器學習,而後再從「術」的角度深入學習,解決是誰的問題。(本來想加個縱時間軸,無奈查了半天沒找到方法,如果有人知道,求分享)

圖一 機器學習發展史(圖片來源:Brief History of Machine Learning)

1.1 誕生並奠定基礎時期


1949, Hebb, Hebbian Learning theory

赫佈於1949年基於神經心理的提出了一種學習方式,該方法被稱之為赫布學習理論。大致描述為:

假設反射活動的持續性或反覆性會導致細胞的持續性變化並增加其穩定性,當一個神經元A能持續或反覆激發神經元B時,其中一個或兩個神經元的生長或代謝過程都會變化。

Let us assume that the persistence or repetition of a reverberatory activity (or 「trace」) tends to induce lasting cellular changes that add to its stability.… When an axon of cell A is near enough to excite a cell B and repeatedly or persistently takes part in firing it, some growth process or metabolic change takes place in one or both cells such that A』s efficiency, as one of the cells firing B, is increased

從人工神經元或人工神經網路角度來看,該學習理論簡單地解釋了循環神經網路(RNN)中結點之間的相關性關係(權重),即:當兩個節點同時發生變化(無論是positive還是negative),那麼節點之間有很強的正相關性(positive weight);如果兩者變化相反,那麼說明有負相關性(negative weight)。


1950, Alan Turing, The Turing test

圖二 圖靈測試(圖片來源:維基百科)

1950年,阿蘭·圖靈創造了圖靈測試來判定計算機是否智能。圖靈測試認為,如果一台機器能夠與人類展開對話(通過電傳設備)而不能被辨別出其機器身份,那麼稱這台機器具有智能。這一簡化使得圖靈能夠令人信服地說明「思考的機器」是可能的。

2014年6月8日,一個叫做尤金·古斯特曼的聊天機器人成功讓人類相信它是一個13歲的男孩,成為有史以來首台通過圖靈測試的計算機。這被認為是人工智慧發展的一個里程碑事件。


1952, Arthur Samuel, 「Machine Learning」

圖三 塞繆爾(圖片來源:Brief History of Machine Learning)

1952,IBM科學家亞瑟·塞繆爾開發了一個跳棋程序。該程序能夠通過觀察當前位置,並學習一個隱含的模型,從而為後續動作提供更好的指導。塞繆爾發現,伴隨著該遊戲程序運行時間的增加,其可以實現越來越好的後續指導。通過這個程序,塞繆爾駁倒了普羅維登斯提出的機器無法超越人類,像人類一樣寫代碼和學習的模式。他創造了「機器學習」這一術語,並將它定義為:

可以提供計算機能力而無需顯式編程的研究領域

a field of study that gives computer the ability without being explicitly programmed.


1957, Rosenblatt, Perceptron

圖四 感知機線性分類器(圖片來源:維基百科)

1957年,羅森·布拉特基於神經感知科學背景提出了第二模型,非常的類似於今天的機器學習模型。這在當時是一個非常令人興奮的發現,它比赫布的想法更適用。基於這個模型羅森·布拉特設計出了第一個計算機神經網路——感知機(the perceptron),它模擬了人腦的運作方式。羅森·布拉特對感知機的定義如下:

感知機旨在說明一般智能系統的一些基本屬性,它不會因為個別特例或通常不知道的東西所束縛住,也不會因為那些個別生物有機體的情況而陷入混亂。

The perceptron is designed to illustrate some of the fundamental properties of intelligent systems in general, without becoming too deeply enmeshed in the special, and frequently unknown, conditions which hold for particular biological organisms.

3年後,維德羅首次使用Delta學習規則(即最小二乘法)用於感知器的訓練步驟,創造了一個良好的線性分類器。


1967年,The nearest neighbor algorithm

圖五 kNN演算法(圖片來源:維基百科)

1967年,最近鄰演算法(The nearest neighbor algorithm)出現,使計算機可以進行簡單的模式識別。kNN演算法的核心思想是如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。這就是所謂的「少數聽從多數」原則。


1969, Minsky, XOR problem

圖六 XOR問題,數據線性不可分

1969年馬文·明斯基提出了著名的XOR問題,指出感知機在線性不可分的數據分布上是失效的。此後神經網路的研究者進入了寒冬,直到 1980 年才再一次復甦。

1.2 停滯不前的瓶頸時期

從60年代中到70年代末,機器學習的發展步伐幾乎處於停滯狀態。無論是理論研究還是計算機硬體限制,使得整個人工智慧領域的發展都遇到了很大的瓶頸。雖然這個時期溫斯頓(Winston)的結構學習系統和海斯·羅思(Hayes Roth)等的基於邏輯的歸納學習系統取得較大的進展,但只能學習單一概念,而且未能投入實際應用。而神經網路學習機因理論缺陷也未能達到預期效果而轉入低潮。

1.3 希望之光重新點亮


1981, Werbos, Multi-Layer Perceptron (MLP)

圖七 多層感知機(或者人工神經網路)

偉博斯在1981年的神經網路反向傳播(BP)演算法中具體提出多層感知機模型。雖然BP演算法早在1970年就已經以「自動微分的反向模型(reverse mode of automatic differentiation)」為名提出來了,但直到此時才真正發揮效用,並且直到今天BP演算法仍然是神經網路架構的關鍵因素。有了這些新思想,神經網路的研究又加快了。

在1985-1986年,神經網路研究人員(魯梅爾哈特,辛頓,威廉姆斯-赫,尼爾森)相繼提出了使用BP演算法訓練的多參數線性規劃(MLP)的理念,成為後來深度學習的基石。


1986, Quinlan, Decision Trees

圖八 決策樹(圖片來源:維基百科)

在另一個譜系中,昆蘭於1986年提出了一種非常出名的機器學習演算法,我們稱之為「決策樹」,更具體的說是ID3演算法。這是另一個主流機器學習演算法的突破點。此外ID3演算法也被發布成為了一款軟體,它能以簡單的規劃和明確的推論找到更多的現實案例,而這一點正好和神經網路黑箱模型相反。

決策樹是一個預測模型,他代表的是對象屬性與對象值之間的一種映射關係。樹中每個節點表示某個對象,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若欲有複數輸出,可以建立獨立的決策樹以處理不同輸出。數據挖掘中決策樹是一種經常要用到的技術,可以用於分析數據,同樣也可以用來作預測。

在ID3演算法提出來以後,研究社區已經探索了許多不同的選擇或改進(如ID4、回歸樹、CART演算法等),這些演算法仍然活躍在機器學習領域中。

1.4 現代機器學習的成型時期


1990, Schapire, Boosting

圖九 Boosting演算法(圖片來源:百度百科)

1990年, Schapire最先構造出一種多項式級的演算法,這就是最初的Boosting演算法。一年後 ,Freund提出了一種效率更高的Boosting演算法。但是,這兩種演算法存在共同的實踐上的缺陷,那就是都要求事先知道弱學習演算法學習正確的下限。

1995年,Freund和schapire改進了Boosting演算法,提出了 AdaBoost (Adaptive Boosting)演算法,該演算法效率和Freund於1991年提出的 Boosting演算法幾乎相同,但不需要任何關於弱學習器的先驗知識,因而更容易應用到實際問題當中。

Boosting方法是一種用來提高弱分類演算法準確度的方法,這種方法通過構造一個預測函數系列,然後以一定的方式將他們組合成一個預測函數。他是一種框架演算法,主要是通過對樣本集的操作獲得樣本子集,然後用弱分類演算法在樣本子集上訓練生成一系列的基分類器。


1995, Vapnik and Cortes, Support Vector Machines (SVM)

圖十 支持向量機(圖片來源:維基百科)

支持向量機的出現是機器學習領域的另一大重要突破,該演算法具有非常強大的理論地位和實證結果。那一段時間機器學習研究也分為NN和SVM兩派。然而,在2000年左右提出了帶核函數的支持向量機後。SVM在許多以前由NN佔據的任務中獲得了更好的效果。此外,SVM相對於NN還能利用所有關於凸優化、泛化邊際理論和核函數的深厚知識。因此SVM可以從不同的學科中大力推動理論和實踐的改進。

而神經網路遭受到又一個質疑,通過Hochreiter等人1991年和Hochreiter等人在2001年的研究表明在應用BP演算法學習時,NN神經元飽和後會出現梯度損失(gradient loss)的情況。簡單地說,在一定數量的epochs訓練後,NN會產生過擬合現象,因此這一時期NN與SVM相比處於劣勢。


2001, Breiman, Random Forests(RF)

決策樹模型由布雷曼博士在2001年提出,它是通過集成學習的思想將多棵樹集成的一種演算法,它的基本單元是決策樹,而它的本質屬於機器學習的一大分支——集成學習(Ensemble Learning)方法。隨機森林的名稱中有兩個關鍵詞,一個是「隨機」,一個就是「森林」。「森林」我們很好理解,一棵叫做樹,那麼成百上千棵就可以叫做森林了,這樣的比喻還是很貼切的,其實這也是隨機森林的主要思想—集成思想的體現。

其實從直觀角度來解釋,每棵決策樹都是一個分類器(假設現在針對的是分類問題),那麼對於一個輸入樣本,N棵樹會有N個分類結果。而隨機森林集成了所有的分類投票結果,將投票次數最多的類別指定為最終的輸出,這就是一種最簡單的 Bagging 思想。

1.5 爆發時期


2006, Hinton, Deep Learning

在機器學習發展分為兩個部分,淺層學習(Shallow Learning)和深度學習(Deep Learning)。淺層學習起源上世紀20年代人工神經網路的反向傳播演算法的發明,使得基於統計的機器學習演算法大行其道,雖然這時候的人工神經網路演算法也被稱為多層感知機,但由於多層網路訓練困難,通常都是只有一層隱含層的淺層模型。

神經網路研究領域領軍者Hinton在2006年提出了神經網路Deep Learning演算法,使神經網路的能力大大提高,向支持向量機發出挑戰。 2006年,機器學習領域的泰斗Hinton和他的學生Salakhutdinov在頂尖學術刊物《Scince》上發表了一篇文章,開啟了深度學習在學術界和工業界的浪潮。

這篇文章有兩個主要的訊息:1)很多隱層的人工神經網路具有優異的特徵學習能力,學習得到的特徵對數據有更本質的刻劃,從而有利於可視化或分類;2)深度神經網路在訓練上的難度,可以通過「逐層初始化」( layer-wise pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監督學習實現的。

2015年,為紀念人工智慧概念提出60周年,LeCun、Bengio和Hinton推出了深度學習的聯合綜述。

深度學習可以讓那些擁有多個處理層的計算模型來學習具有多層次抽象的數據的表示。這些方法在許多方面都帶來了顯著的改善,包括最先進的語音識別、視覺對象識別、對象檢測和許多其它領域,例如藥物發現和基因組學等。深度學習能夠發現大數據中的複雜結構。它是利用BP演算法來完成這個發現過程的。BP演算法能夠指導機器如何從前一層獲取誤差而改變本層的內部參數,這些內部參數可以用於計算表示。深度卷積網路在處理圖像、視頻、語音和音頻方面帶來了突破,而遞歸網路在處理序列數據,比如文本和語音方面表現出了閃亮的一面。

當前統計學習領域最熱門方法主要有deep learning和SVM(supportvector machine),它們是統計學習的代表方法。可以認為神經網路與支持向量機都源自於感知機。

神經網路與支持向量機一直處於「競爭」關係。SVM應用核函數的展開定理,無需知道非線性映射的顯式表達式;由於是在高維特徵空間中建立線性學習機,所以與線性模型相比,不但幾乎不增加計算的複雜性,而且在某種程度上避免了「維數災難」。而早先的神經網路演算法比較容易過訓練,大量的經驗參數需要設置;訓練速度比較慢,在層次比較少(小於等於3)的情況下效果並不比其它方法更優。

神經網路模型貌似能夠實現更加艱難的任務,如目標識別、語音識別、自然語言處理等。但是,應該注意的是,這絕對不意味著其他機器學習方法的終結。儘管深度學習的成功案例迅速增長,但是對這些模型的訓練成本是相當高的,調整外部參數也是很麻煩。同時,SVM的簡單性促使其仍然最為廣泛使用的機器學習方式。

1.6 啟示與未來的發展

人工智慧機器學習是誕生於20世紀中葉的一門年輕的學科,它對人類的生產、生活方式產生了重大的影響,也引發了激烈的哲學爭論。但總的來說,機器學習的發展與其他一般事物的發展並無太大區別,同樣可以用哲學的發展的眼光來看待。

機器學習的發展並不是一帆風順的,也經歷了螺旋式上升的過程,成就與坎坷並存。其中大量的研究學者的成果才有了今天人工智慧的空前繁榮,是量變到質變的過程,也是內因和外因的共同結果。

機器學習的發展詮釋了多學科交叉的重要性和必要性。然而這種交叉不是簡單地彼此知道幾個名詞或概念就可以的,是需要真正的融會貫通:

  • 統計學家弗萊德曼早期從事物理學研究,他是優化演算法大師,而且他的編程能力同樣令人讚歎;
  • 喬丹教授既是一流的計算機學家,又是一流的統計學家,而他的博士專業為心理學,他能夠承擔起建立統計機器學習的重任;
  • 辛頓教授是世界最著名的認知心理學家和計算機科學家。雖然他很早就成就斐然,在學術界聲名鵲起,但他依然始終活躍在一線,自己寫代碼。他提出的許多想法簡單、可行又非常有效,被稱為偉大的思想家。正是由於他的睿智和身體力行,深度學習技術迎來了革命性的突破。

深度學習的成功不是源自腦科學或認知科學的進展,而是因為大數據的驅動和計算能力的極大提升。可以說機器學習是由學術界、工業界、創業界(或競賽界)等合力造就的。學術界是引擎,工業界是驅動,創業界是活力和未來。學術界和工業界應該有各自的職責和分工。學術界的職責在於建立和發展機器學習學科,培養機器學習領域的專門人才;而大項目、大工程更應該由市場來驅動,由工業界來實施和完成。

《機器學習 第九期》從零到機器學習實戰項目,提供GPU&CPU雙雲平台,作業考試1V1批改(優秀學員內推BAT等);點擊文末「閱讀原文」了解詳情

weixin.qq.com/r/NDjo8E3 (二維碼自動識別)

推薦閱讀:

一維搜索方法總結
ZT:機器學習中如何選擇特徵值
網路表示學習論文引介
斯坦福大學《機器學習》- 核心內容(2.2)

TAG:機器學習 | 自然語言處理 |