機器學習

本文由探討機器學習的本質出發,從連接主義、概率模型以及模型結構三個角度對機器學習算法進行了分類,並探討了機器學習與相關學科與領域的關係以及如何選擇機器學習算法,最後展望了機器學習的未來。

1機器學習的本質

通俗一點說,現有一定數量的數據,想找到一個能夠描述這些數據內部規律的模型(也就是一個數學表達式),有了這個模型之後,對於後來的新的數據,通過這個模型,就可以將新的數據映射到學習到的規律中(比如類別,數據對應的響應)。

簡潔一點說,現有一定量的數據,假設了一個模型HypothesisFunction(這個模型可以用來描述已有數據到規律的映射關係,它有一些未知參數),並在HypothesisFunction和已有數據下定義了一個CostFunction(用來衡量HypothesisFunction對已有數據內部規律的擬合),通過一些優化策略(數學優化理論和方法)找到HypothesisFunction的參數,使得在已知數據下CostFunction代價最小。這也就是機器學習的本質,最終轉化成了一個數學優化問題。

形象一點說,現有一定量的數據,還有一個黑匣子(描述數據內部規律的模型),黑匣子上面有很多按鈕(模型參數),現在將已有的數據送入黑匣子中,並通過某種策略(數學優化理論和方法)來調整黑匣子上面的按鈕,使得黑匣子的輸出和已有數據的類別或響應儘可能的接近。

 

2從連接主義角度對機器學習算法分類

所謂連接主義就是統合了認知心理學、人工智能和心理哲學領域的一種理論。從連接主義角度可將機器學習算法通用的分爲:有監督,無監督,半監督以及增強學習。下面分別對不用類別進行介紹。

 

2.1有監督學習

有監督的學習算法進一步可以細分爲分類和迴歸兩類,分類和迴歸最大的區別在於其“老師”,也就是數據已知的“類別”或“響應”,分類的“老師”是離散的,而回歸的“老師”是連續的。

常用的分類算法有:Bayes系列(Nave Bayes線性和非線性判別,KNN),SVMLogistic RegressionDecision Tree系列(ID3C4.5C5.0),Bagging系列(Random Forest),Booting系列(AdaptBoost),基於仿生學的Artificial Neural Network系列(MLPDBNsCNNRNN等)。

常用的迴歸算法有:多元線性迴歸,CARTCART是分類迴歸樹的意思,也就是既可以做分類也可以做迴歸。做分類時它和Decision Tree基本相同,只不過CART是統計學家提出,有完美的理論,而Decision Tree是人工智能專家提出。

注:將線性和非線性判別,KNN分到Bayes系列主要原因是認爲它們是在Bayes判別函數的啓發下形成的。

 

2.2無監督學習

在無監督學習中一個重要的部分就是聚類的,其中基於EM思想的是一個比較常用的系列,常用的算法包括:K-MeansFussy C-MeansGMM等。

瞭解更多:http://t.cn/R2ZfF9e

 

2.3半監督學習

半監督學習算法的應用有很多。比如它可以輔助實現在線學習,比較好的一個例子就是TLD實時跟蹤算法中的PN-Learning。另一個較好的例子就是用於數據降維的DBMs,也就是多個兩層的Boltsman Machine疊加在一起,就可以得到一個從數據映射到數據特徵的深度網絡結構。不管是PN-Learning還是DBMs它們都需要有監督的支持,如單獨的一個兩層的BM的訓練本質還是個有監督的過程,再如PN-Learning中的PN也是要事先知道的,本質上也是一個有監督的過程。如此看來,半監督學習是在有監督學習的支撐下來完成的。

 

2.4增強學習

增強學習是一種評價學習的機器學習算法,常常應用與智能控制,機器人及分析預測等。增強學習的本質就是從環境到行爲映射的學習,以使增強信號函數值最大。增強學習不同於主要表現在教師信號上的有監督學習,在增強學習過程中有環境提供的增強信號時對產生動作好壞的一種評價(通常爲標量信號),而不是告訴增強學習系統如何去產生正確的動作。由於外部環境提供的信息很少,增強學習系統必須考自身的經歷進行學習。通過這種方式,增強學習系統在行動-評價的過程中獲得知識,改進行動方案以適應環境。

常用的算法有:瞬時差分法,Q-學習算法,自適應啓發評價算法等[4]

 

3從概率模型角度對機器學習算法分類

從概率模型的角度可以將機器學習算法分爲DiscriminativeGenerative兩個類別。先假設X爲樣本數據,Y爲數據對應的狀態(數據的類別或者響應)。

Discriminative方法直接對PY|X)建模。通俗一點說就是建立一個對Y之間的區別進行描述的模型,預測時可以直接給出X對應的Y。典型的方法如SVMLogistic Regression等。

Generative方法對PYX)建模。通俗一點說就是對每個Y建立一個模型,預測時選擇對應的最大的PY|X)的Y作爲X的類別或響應。典型的方法如Nave Bayes

另外概率圖模型的中文版已經出來了:

http://www.tup.tsinghua.edu.cn/book/Showbook.asp?CPBH=039921-01&DJ=198

 

4從模型結構角度對機器學習算法分類

從模型結構角度可將機器學習算法分爲淺層學習和深度學習兩類。在1中已經對學習的本質進行了解釋,其本質可以描述成數學優化問題,而深與淺和學習本身是沒有關係的,它們是用來修飾被訓練的模型的結構的[1]

2中列舉出來的除ArtificialNeural Network外的都可以稱作淺層學習。深度學習的概念是06年提出來的,神經網絡是一種非常適合於構建深度模型的結構,於是有像MLPDBNsDBMsCNN(上世紀90年代左右)等的前饋型網絡,以及用於訓練RNNLSTM反饋型網絡(用於序列標註)。

 

5機器學習相關學科與領域

先給出一副圖片(摘自[5])。下面會對部分的學科和領域與機器學習的關係進行介紹。

wKioL1VYqRWThOCNAAD3U13xrXI798.jpg

 

5.1機器學習與數理統計

機器學習在很大程度上是受到了數理統計的啓發,就如Decision TreeCART的關係一樣。但是機器學習又有別與數理統計,這也是其成爲一門獨立學科的原因中的一個。我們知道傳統的數理統計是有嚴格的理論基礎,但是在大數據時代背景下,傳統的數理統計的根基被破壞掉了,如不相關的假設。這使得在大數據時代背景下,機器學習取代傳統統計或是必然趨勢。由此,廣義上來講,機器學習包含並發展了數理統計。

 

5.2機器學習與模式識別

說到模式識別還得從人工智能說起。早期的人工智能被認爲是簡單的,認爲簡單的數理邏輯就能表示出智能。當認識到人工智能是一個極其複雜的問題的時候,人們開始研究解決人工智能中的一個問題,就是模式識別。簡單來講,模式識別就是一個分類任務,這個任務是人工智能這個複雜問題中的一部分。由此看來,模式識別是對人工智能問題妥協的一個產物,而反過來模式識別的發展也就是發展了人工智能。

說到這裏,機器學習與模式識別的關係就比較好解釋了,模式識別是人工智能問題的一個任務,而機器學習就是輔助完成這個任務的工具。

 

5.3機器學習與數據挖掘

數據挖掘是大數據時代背景下一個相對較新的領域。其涉及領域包括:數據獲取技術(傳感器),數據管理技術(數據庫,數據倉庫),數據存儲技術(雲),數據分析技術(統計學習,機器學習,數據建模),計算技術(高性能計算,分佈式計算)以及可視化技術。其中數據分析與處理是一個亟待解決的問題,現狀是有大量的數據,而不知道用什麼方法去分析,這需要數學領域的科學家來解決了。

從上面可以看出,機器學習也是數據挖掘過程中的一個工具,這個工具用來提供數據分析技術的。

 

5.4機器學習與機器視覺

機器視覺也是一門交叉衆多的學科,可以對其進行這樣簡單的描述:傳感器獲取數據,使用相應的數據分析技術對數據進行分析,進而幫助機器完成模式識別任務。這似乎與數據挖掘有所重疊,但微妙之處在於,機器視覺領域中的數據大多是圖像數據,因此對於數據分析技術大多采用圖像處理技術,當然在數據量足夠的情況下,選用機器學習技術來做數據分析是更好的選擇。

因此,機器學習在機器視覺應用中起到的仍然是工具的作用,用於幫助機器完成模式識別任務。

 

5.5總結

機器學習發展了數理統計,是輔助完成模式識別,數據挖掘,機器視覺等上層應用強有力的工具。

 

6如何選擇機器學習算法

下面的內容是原文[7]的翻譯,翻譯摘自[8]

你知道如何爲你的分類問題選擇合適的機器學習算法嗎?當然,如果你真正關心準確率,那麼最佳方法是測試各種不同的算法(同時還要確保對每個算法測試不同參數),然後通過交叉驗證選擇最好的一個。但是,如果你只是爲你的問題尋找一個“足夠好”的算法,或者一個起點,這裏有一些我這些年發現的還不錯的一般準則。

 

6.1你的訓練集有多大?

如果訓練集很小,那麼高偏差/低方差分類器(如樸素貝葉斯分類器)要優於低偏差/高方差分類器(如k近鄰分類器),因爲後者容易過擬合。然而,隨着訓練集的增大,低偏差/高方差分類器將開始勝出(它們具有較低的漸近誤差),因爲高偏差分類器不足以提供準確的模型。

你也可以認爲這是生成模型與判別模型的區別。

 

6.2一些特定算法的優點

樸素貝葉斯的優點:超級簡單,你只是在做一串計算。如果樸素貝葉斯(NB)條件獨立性假設成立,相比於邏輯迴歸這類的判別模型,樸素貝葉斯分類器將收斂得更快,所以你只需要較小的訓練集。而且,即使NB假設不成立,樸素貝葉斯分類器在實踐方面仍然表現很好。如果想得到簡單快捷的執行效果,這將是個好的選擇。它的主要缺點是,不能學習特徵之間的相互作用(比如,它不能學習出:雖然你喜歡布拉德·皮特和湯姆·克魯斯的電影,但卻不喜歡他們一起合作的電影)。

邏輯迴歸的優點:有許多正則化模型的方法,你不需要像在樸素貝葉斯分類器中那樣擔心特徵間的相互關聯性。與決策樹和支撐向量機不同,你還可以有一個很好的概率解釋,並能容易地更新模型來吸收新數據(使用一個在線梯度下降方法)。如果你想要一個概率框架(比如,簡單地調整分類閾值,說出什麼時候是不太確定的,或者獲得置信區間),或你期望未來接收更多想要快速併入模型中的訓練數據,就選擇邏輯迴歸。

決策樹的優點:易於說明和解釋(對某些人來說—我不確定自己是否屬於這個陣營)。它們可以很容易地處理特徵間的相互作用,並且是非參數化的,所以你不用擔心異常值或者數據是否線性可分(比如,決策樹可以很容易地某特徵x的低端是類A,中間是類B,然後高端又是類A的情況)。一個缺點是,不支持在線學習,所以當有新樣本時,你將不得不重建決策樹。另一個缺點是,容易過擬合,但這也正是諸如隨機森林(或提高樹)之類的集成方法的切入點。另外,隨機森林往往是很多分類問題的贏家(我相信通常略優於支持向量機),它們快速並且可擴展,同時你不須擔心要像支持向量機那樣調一堆參數,所以它們最近似乎相當受歡迎。

SVM的優點:高準確率,爲過擬合提供了好的理論保證,並且即使你的數據在基礎特徵空間線性不可分,只要選定一個恰當的核函數,它們仍然能夠取得很好的分類效果。它們在超高維空間是常態的文本分類問題中尤其受歡迎。然而,它們內存消耗大,難於解釋,運行和調參也有些煩人,因此,我認爲隨機森林正漸漸開始偷走它的“王冠”。

 

6.3然而…

儘管如此,回憶一下,更好的數據往往打敗更好的算法,設計好的特徵大有裨益。並且,如果你有一個龐大數據集,這時你使用哪種分類算法在分類性能方面可能並不要緊(所以,要基於速度和易用性選擇算法)。

重申我上面說的,如果你真的關心準確率,一定要嘗試各種各樣的分類器,並通過交叉驗證選擇最好的一個。或者,從Netflix Prize(Middle Earth)中吸取教訓,只使用了一個集成方法進行選擇。

 

7機器學習的發展 

要談談機器學習的發展,人工神經網絡的發展歷程的確是一個不錯的例子。人工神經網絡作爲機器學習一個非常重要的分支,可以追溯到上世紀的40年代。下面的這段話摘自清華大學胡曉林[2],個人認爲是對人工神經網絡發展史最好的簡述。

第一個神經元模型是1943McCullochPitts提出的,稱爲thresholdlogic,它可以實現一些邏輯運算的功能。自此以後,神經網絡的研究分化爲兩個方向,一個專注於生物信息處理的過程,稱爲生物神經網絡;一個專注於工程應用,稱爲人工神經網絡。這裏主要介紹後者。1958Rosenblatt提出了感知機(perceptron),它本質上是一個線性分類器,1969MinskyPapert寫了一本書“Perceptrons”,他們在書中指出:單層perceptron不能實現XOR功能;計算機能力有限,不能處理神經網絡所需要的長時間運行過程。這本書爲人工神經網絡帶來了長達十多年的“冬天”。事實上,如果把單層感知機堆成多層(稱爲multilayer perceptronMLP),是可以求解線性不可分問題的,但當時缺乏有效的算法。儘管1974年哈佛大學的博士生Paul Werbos提出了比較有效的BP算法,但沒有引起學界的重視。直到1986年多倫多大學的Geoff Hinton等人重新發現這一算法,並在“Nature”上發表,人工神經網絡纔再次受到重視。與此同時,帶反饋的神經網絡開始興起,其中以Stephen GrossbergJohn Hopfield的工作最具代表性。很多複雜的認知現象比如聯想記憶都可以用反饋神經網絡進行模擬和解釋。所有這些因素促成了上世紀80年代神經網絡的研究熱潮。但是BP算法在神經網絡的層數增多時很容易陷入局部最優,也很容易過擬合。上世紀90年代,Vladimir Vapnik提出了SVM,雖然其本質上是一特殊的兩層神經網絡,但因其具有高效的學習算法,且沒有局部最優的問題,使得很多神經網絡的研究者轉向SVM。多層前饋神經網絡的研究逐漸變得冷清。直到2006年深度網絡(deep network)和深度學習(deep learning)概念的提出,神經網絡又開始煥發一輪新的生命。

    對於淺層機器學習的應用,一般分爲兩個步驟:數據特徵表達;機器學習模型選擇。其中數據特徵表達是非常關鍵的一個部分,而且經驗也證實一個好的特徵表達往往比機器學習模型對於上層應用能夠產生較好效果要重要的多,因此多數研究者都將重心放在了數據特徵表達的研究上。然而傳統的特徵表達方法具有手工性和局部領域性,這也就要求研究者有足夠的經驗而且對應用領域的知識比較熟悉,而且大數據時代背景下,數據的多樣性又對數據特徵表達提出了新的要求。目前在工業界和學術界普遍認同的一種方法就是採用端到端(end-to-end[3]的系統來學習數據內部規律,也就是將數據直接映射到類別或響應,而人工神經網絡結構就非常適合構造端到端的系統。從沒有感知域(Receptive Field)的深度神經網絡,到固定感知域的卷積神經網絡,再到可變感知域的遞歸神經網絡,深度學習模型在各種應用中不斷演進,在沒有出現新的有效的對大數據分析的技術出現之前,工業界和學術界對數據直接映射到類別或響應的這種“暴力”方法的認同,會使得人工神經網絡成爲大數據分析技術研究的熱點,正如下圖-機器學習算法TimeLine表現出來的趨勢。圖片來自[6]。


wKioL1VYqd7gVsT3AAIAYPFi7eI728.jpg 


Reference

[1] 對話深度學習專家雅恩·樂昆:讓深度學習擺脫束縛

[2] 深度學習--人工神經網絡再掀研究熱潮

[3] 基於深度學習的圖像識別進展--百度的若干實踐

[4] 強化學習理論、算法及應用

[5] http://www.open-open.com/lib/view/open1420615208000.html

[6]http://www.kdnuggets.com/2014/10/deep-learning-make-machine-learning-algorithms-obsolete.html

[7] http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/

[8] http://blog.jobbole.com/67671/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章