原文:Brief History of Machine Learning
第一次看到這篇文章應該是在去年,覺得很不錯。收藏了很久,最近才想到把它翻譯成中文。文中沒有太多理論和技術的細節,對機器學習和人工智能感興趣的可以當作茶余飯后的消遣了解一下。本文沒有包括參考文獻,如需要,請閱讀原文。水平有限,歡迎指正。
自從科技和人工智能發源以來,科學家們追隨帕斯卡和萊布尼茨的腳步,思考著機器是否能像人類一樣具備智能這一命題。儒勒·凡爾納、法蘭克·鮑姆(《綠野仙蹤》)、瑪麗·雪萊(《弗蘭肯斯坦》)、喬治·盧卡斯(《星球大戰》)都設想了能夠模仿人類行為,甚至在不同情境下都具備類人技能的人造物。
機器學習是實現人工智能的一個重要途徑,如今在學術界和工業界都是炙手可熱。公司和高校都投入了大量資源來拓展這一領域的知識。最新的成果在多種不同任務中都表現非常不錯,足以媲美人類(識別交通標志的準確率高達98.80%,超過了人類)。
我接下來要講的,是機器學習發展歷程的一條粗略時間線,我會指出其中一些具有里程碑意義的節點,但這并不是全部。另外,在文中每個觀點的前面,都應該加上“據我所知”四個字。
1949年,Hebb在一個神經心理學學習方程的基礎上,向如今盛行于世的機器學習邁出了第一步。該理論被稱為“赫布理論”。簡單來講,赫布理論研究的是循環神經網絡(Recurrent Neural Network)中節點之間的相關性。RNN在網絡中記憶共性特征,起到類似記憶的作用。赫布理論的形式化表述如下:
假定反射行為的持續和重復(或稱作“痕跡”)能夠引起細胞的永久改變,進而提高該行為的穩定性...如果細胞A的軸突距離近到可以激發細胞B,并且反復或持續的參與到細胞B的激活中,兩個細胞其中之一或者兩者皆會進行增長或發生代謝性變化,使得A激活B的效率得到提升。
1952年,IBM的Arthur Samuel開發了一個玩西洋跳棋的程序。這個程序可以觀察棋子的位置并構建一個隱式的模型,用來改進之后下棋的策略。Samuel和這個程序玩了很多局,發現它隨著時間的推移玩得越來越好。
Samuel用這個程序推翻了機器的能力不能超越其代碼且不能像人類一樣學習的論斷。他以如下方式定義了“機器學習”這一概念:
不需要顯式編程就可以賦予機器某項能力的研究領域。
1957年,同樣具備神經科學背景的Rosenblatt提出了第二個模型:感知機(Perceptron),它更接近如今的機器學習模型。這在當時是一個讓人激動的發現,實際上感知機也比赫布的理論更加容易應用。Rosenblatt是這樣介紹感知機的:
感知機用來從總體上描述智能系統的一些基本屬性,而不必過多糾纏于具體生物組織的那些特殊的、通常未知的條件。
3年之后,Widrow提出了差量學習規則,隨即被用于感知機的訓練。這也被稱為“最小平方”問題。結合感知機和差量學習,可以創建出很好的線性分類器。然而,Minsky在1969年給感知機的熱潮潑了一盆冷水。他提出了著名的“異或”問題,指出感知機無法處理像這樣線性不可分的數據分布。這是Minsky對神經網絡社區的致命一擊。此后,神經網絡研究陷入停滯直到80年代。
盡管Linnainmaa在1970年曾以 “ reverse mode of automatic differentiation ” 這個名字提出過反向傳播的想法,但是并沒有得到太多關注,直到Werbos在1981年提出了多層感知機(Multi-Layer Perceptron)的設想和針對神經網絡的反向傳播算法(Backpropagation)。反向傳播至今仍是神經網絡架構的關鍵算法。有了這些想法,神經網絡的研究再次提速。1985到1986年之間,多位研究者先后提出了MLP的想法和具有使用價值的BP算法。
與此同時,J. R. Quinlan在1986年提出了一個非常著名的機器學習算法,我們稱之為“決策樹”,具體來講就是ID3算法。這是機器學習另一個主流分支的起點。不僅如此, 作為一個發行軟件 ,ID3的簡單規則和清晰預測可以找到更具實際意義的使用場景,這點不同于還是黑盒的神經網絡模型。
在ID3之后,研究社區提出了很多變體和改進(例如ID4、回歸樹、CART等等),至今仍是機器學習領域里的一個活躍分支。
機器學習的最重要的突破之一是Vapnik和Cortes在1995年提出的支持向量機(Support Vector Machine),它同時具備堅實的理論基礎和亮眼的實驗結果。從那時開始,機器學習社區分裂成了擁護神經網絡和SVM的兩個派別。然而,當SVM的核化版本在2000年左右被提出之后(我找不到第一篇關于這個話題的論文了),神經網絡開始在競爭中處于下風。SVM在此前被神經網絡模型占據的很多任務中都取得了最佳成績。并且,SVM可以利用在凸優化、綜合邊際理論和核函數方面的豐富研究成果來超越神經網絡。因此,它可以從不同學科汲取養分從而極大的推動了理論和實踐的發展。
Hochreiter在1991年的學位論文和2001年發表的論文又給了神經網絡沉重的一擊,這些論文表明,應用BP學習在神經網絡的單元飽和時將遭遇梯度損失。簡而言之,由于單元會飽和,在超過一定循環次數之后繼續訓練神經網絡是畫蛇添足的,因為神經網絡很可能在少數訓練循環之后就產生了過擬合。
在此之前不久,Freund和Schapire在1997年提出了另一個有效的機器學習模型,這種名為Adaboost的模型組合多個弱分類器來提升性能。這項研究在當時為作者贏得了Godel獎。Adaboost構建一組易于訓練的弱分類器,同時對其中相對較難訓練的個體賦予較高的重要性。這一模型現在也是很多不同任務的基礎,比如面部識別和檢測。它也是“可能近似正確”(PAC)學習理論的實現。一般來講,所謂的弱分類器被選作簡單的決策樁(決策樹中的單個節點)。他們如此介紹Adaboost:
我們研究的模型可以被解釋為在一般決策場景下對已經充分研究的在線預測模型的一種廣泛的、抽象的擴展。
Breiman在2001年研究了另一種使用多個決策樹的組合模型,其中每棵樹都是用訓練樣例的一個隨機子集訓練得到的,樹的每個節點都來自一組隨機選擇的特征子集。由于這一特點,該算法被稱作“隨機森林(Random Forest)”。理論和實踐都證明RF可以避免過擬合。AdaBoost在面臨過擬合和異常數據時表現不佳,但是RF在這方面這更加健壯。(RF的更多細節請參考我以前的文章)。RF在Kaggle競賽等很多任務上都有不錯的表現。
隨機森林是一組樹形預測器的組合,每棵樹取決于獨立隨機采樣的向量值且該向量值對森林中所有樹具有相同分布。當森林中樹的數目很大時,泛化誤差收斂于某個極限值。
時至今日,神經網絡已經進入了“深度學習”的新時代。“深度學習”一詞是指具備多個級聯層次的神經網絡模型。2005年前后,依靠Hinton、LeCun、Bengio、Andrew Ng以及其他很多資深研究人員在以往和當時的各種研究成果,神經網絡開始了第三次崛起。我列出了其中一些重要的標題(我想我以后可能會專門寫篇文章討論深度學習)。
- GPU編程
- 卷積神經網絡(CNN)
- Deconvolutional Networks
- 最優化算法
- 隨機梯度下降(Stochastic Gradient Descent)
- BFGS和L-BFGS
- 共軛梯度下降(Conjugate Gradient Descent)
- 反向傳播
- 整流單元(Rectifier Units)
- 稀疏性(Sparsity)
- Dropout網絡
- Maxout Nets
- 無監督神經網絡
- 深度置信網絡(Deep Belief Networks)
- Stacked Auto-Encoders
- Denoising NN models
基于這些以及其他沒有列出的成果,神經網絡模型在諸多不同任務上都擊敗了當時最先進的算法,例如物體識別,語音識別,自然語言處理等等。然而,值得說明的是,這絕不表示機器學習的其他分支就此終結。盡管深度學習聲名鵲起,對這些模型仍然有很多關于訓練成本和外生參數調優的批評。同時,SVM憑借其簡潔性仍然得到了更多的應用。(據說如此,但存在爭議)。
結束本文之前,我想談談機器學習領域里另一個相對新興的研究趨勢。隨著萬維網和社交媒體的增長,大數據這個新概念開始嶄露頭角并且對機器學習的研究產生了重大影響。由大數據引發的大問題,讓很多強大的機器學習算法在現實系統中毫無用武之地(當然,科技巨頭們除外)。因此,研究人員提出了一類被稱為“土匪算法”(官方名稱是“在線學習”)的簡單模型,這讓學習變得更加簡單以適應大規模問題。
這篇不成熟的機器學習簡史就到此為止了。如果你發現了錯誤,不足和沒有引用文獻的地方,歡迎不擇手段的向我發出警告。