機器學習的幾個重要問題


本文是我看《機器學習哪些事》的一些總結和感想。如果我現在就是一個能夠學習的機器的話,那我現在進行的就是機器學習中的“歸納”。

另:本人剛開始接觸機器學習這一領域,歡迎交流溝通,表述如有不當之處,懇求指出。


*我的總結:

1.機器學習實現爲一個學習器,學習器通過樣例訓練集的訓練,學到假設空間裏一個最優的算法(比如一個最優的分類器集合中的一個分類器)。其中,樣例訓練集可以理解爲學習器要學習的知識,選出來的最優算法要再使用樣例測試集進行測試(即現在的軟件測試)。

2.學習器之所以能夠學習成功,就是在一些特定的實例上,進行一些泛化假設,從而繞過了“沒有免費的午餐”理論的限制。所以最好的學習器的表示應該是基於實例的方法。


一、一些介紹:

1.機器學習系統自動地從數據中學習程序。 並實現爲一個學習器(見下面的定義)。

2.機器學習分類

        機器學習有許多不同的類型, 一個最常用的是分類,一個分類器(classifier)是一個系統,系統輸入是一個包含若干相關或者離散的特徵值(feature values)的向量,系統輸出是一個離散的值,代表分類的類別(class).

3.學習器的定義

        一個學習器將一個訓練集(training set)樣例(x i,y i)作爲輸入,其中x i = (x i,1,...,x i,d)是觀察到的輸入,y i是相應的輸出,學習器的輸出是一個分類器。對學習器的檢驗就是判斷它輸出的分類器是否能夠對將來的輸入樣例x t輸出正確的y t。

4.如何選擇一個機器學習算法

       現在有成千上萬的機器學習算法,每年還有成百上千的新算法發表出來。避免迷失在這麼多算法中的關鍵是,要認識到這些算法都是由三個部分組成的,分別是:

       a)表示(Representation) ,爲學習器選擇一種表示,就意味選擇一個特定的分類器集合。學習器可能學出的分類器只能在這個集合中。這個集合被稱爲學習器的假設空間(hypothesis space)。如果某個分類器不在該空間中,它就不可能被該學習器學到。

       b)評價(Evaluation),我們需要一個評價函數(亦稱爲目標函數或打分函數)來判斷分類器的優劣。機器學習算法內部使用的評價函數和我們希望分類器進行優化的外部評價函數有所不同。

       c)優化(Optimization),最後,我們需要一個搜索方法,能夠在假設空間中找到評價函數得分最高的那個分類器。

5.泛化(generalization)很重要

      機器學習的基本目標是對訓練集合中樣例的泛化。這是因爲,不管我們有多少訓練數據, 在測試階段(更不用說生產階段)這些數據都不太可能會重複出現。

6.“沒有免費的午餐”定理

     沒有學習器能夠比在所有可能的布爾函數中隨機猜測的結果更優。這似乎是一個非常讓人失望的消息。那我們還能指望能學到什麼東西嗎?幸運的是,在真實世界中,我們要學習的函數並非均勻地來自所有可能的函數!實際上,一些非常泛泛的假設——比如平滑(smoothness),相似的樣例有相似的類別,有限依賴,或者有限複雜度——通常足夠起很大作用,這也是機器學習能夠如此成功的重要原因。                  


二、幾個重要的問題:

1.過擬合(overfitting)有多張面孔

       一種理解:過擬合是將泛化誤差(generalization error)分爲偏置(bias)和方差(variance)。偏置度量了學習器傾向於一直學習相同錯誤的程度。方差則度量了學習器傾向於忽略真實信號、學習隨機事物的程度。

      一種誤解:認爲它是由噪音造成的,但是即使沒有噪音依然會發生嚴重的過擬合。

      解決方法:交叉驗證 、對評價函數增加一個正則項(regularization term),等等。。。

      另一個問題:多重檢驗(multiple testing)問題與過擬合密切相關。 這個問題可以通過在顯著性檢驗中將假設的個數考慮進去來解決,但這樣也會導致欠擬合。更好的途徑是控制錯誤接受的非零假設(non-null  hypotheses)的比率,該方法通常被稱爲錯誤發現率(false discovery rate)方法。  


2.維度災難(curse of dimensionality)問題

       定義:許多在低維度工作良好的算法,當輸入是高維度的時候就變得不可行了。

       解釋:隨着樣例維度(即特徵數目)的增加,正確泛化的難度將會以指數增加,原因就是同等規模的訓練集只能覆蓋越來越少的輸入空間比例。

       解決方法:降低樣例的維度。一種是學習器隱式的利用輸入樣例的有效的更低維的空間(如果輸入樣例有這個特性的話,即是“非均勻性的祝福”),另一種就是學習器可以顯式的進行將維。


3.理論保證(theoretical guarantees)通常與實際情況不一樣

      兩種常見的理論保證:樣例數目的邊界保證(bound)、漸進(asymptotic,即是輸入數據無窮多)保證。

      應用:機器學習中理論保證的主要作用並不是在實踐中作爲決策的標準,而是在算法設計時作爲理解和驅動的來源。


4.特徵工程(feature engineering)是關鍵

      地位:原始數據不能拿來直接學習,需要從中構建特徵,這是機器學習的主要工作,這通常也是最有趣的地方。

      構建特徵的方法:機器學習的一個終極目標就是將特徵工程過程越來越多的自動化,但是這樣容易導致出現上述的問題1,因此,仍需要人爲地介入特徵工程。

      

5.更多的數據和聰明的算法之間的關係

      當你構建的最好的學習器仍不能很好的工作的事後,機器學習研究者更關注設計更好的學習算法,但是作爲一條經驗,有大量數據的笨算法要勝過數據量較少的聰明算法。而後者又會遇到可擴展性的問題。

      這裏面,大數據和聰明的算法之間存在一個悖論。即,聰明的算法沒有學習更多的數據有效,另一方面,實際上不會有足夠多的數據供學習(維度災難)或者算法的複雜度問題,哪些聰明的算法(能夠充分利用現有的數據的算法)又能夠取得很好的效果。

6.建立模型集成(model ensembels)

      模型集成已經成爲機器學習工具的重要組成部分。

7.簡單並不意味着準確

      這部分暫時沒有看懂,暫略。

8.可表示並不意味着可學習

      略

9.相關並不意味着因果

      因果是否存在是一個哲學問題,機器學習關注的是:根據相關性來預測我們行動的效果。


結尾語:本文講的是“民間智慧”,即正規知識的民間化表達。




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