機器學習中常用的三種方法
一、總結
一句話總結:
a、人工神經網絡(Artificial Neural Network, ANN)
b、決策樹算法:樹中的每一個節點表示對象屬性的判斷條件,其分支表示符合節點條件的對象。樹的葉子節點表示對象所屬的預測結果。
c、支持向量機(support vector machine, SVM):使特征空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規划問題的求解
1、人工神經網絡方法的一般應用步驟是什么?
1、確定網絡結構;
2、采用有監督的方法訓練網絡參數;
3、進行分類或者預測。
2、神經網絡的學習算法中的反向傳播(Back Propagation, BP)算法 基本思想?
a、信號的正向傳播:輸入樣本從輸入層傳入,經各隱層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出不符,則轉入誤差的反向傳播階段。
b、誤差反向傳播:將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。
二、機器學習總結
轉自或參考:看見到洞見之引子(一)機器學習算法
http://blog.sina.com.cn/s/blog_4006fd240102x05t.html
什么是機器學習?
機器學習(Machine Learning, ML)是人工智能的一個分支,是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的算法。同時,機器學習是一個涉及到多個領域的交叉學科,其涵蓋范圍包括了概率論、統計學、逼近論、凸分析、計算復雜性理論等學科。目前,機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略游戲和機器人等領域。
機器學習的常用算法
人工神經網絡(Artificial Neural Network, ANN)
神經網絡是機器學習的一個分支,與之對應的是生物神經網絡。生物神經網絡一般指由神經元組成的網絡,用於產生意識,幫助生物進行思考與行動。那么什么是神經元呢?
神經元
如圖 1所示為一個生物神經元的示意圖。神經元通過樹突接受來自外界或者其它神經元的刺激,並將刺激傳至細胞體。而軸突將刺激從細胞體傳至遠處,傳遞給另一個神經元的樹突或者肌體的效應器。而神經元之間的連接不是固定不變的。在生物體的學習和成長過程中,一些新的連接會被逐漸建立起來,而一些連接可能會消失。神經元之間的連接關系變遷就形成了生物體的學習過程。
那么什么是人工神經網絡呢?人工神經網絡是一種模仿生物神經網絡的結構和功能的數學模型或計算模型,用於對函數進行估計或近似。與生物神經網絡一樣,人工神經網絡同樣由神經元組成,即感知器[1],如圖 2所示。
感知器
感知器可以看做是一個最簡單的神經網絡,其信號傳遞方程為:
由傳遞方程可知,感知器本身為一個線性分類器。因此,其無法解決線性不可分的問題。如圖 3所示,對於線性可分的AND(與)和OR(或)問題,感知器都可以對其進行求解。而對於XOR(異或)問題,由於其是一個線性不可分問題,所以感知器,也就是最簡單的神經網絡無法對其進行求解。
感知器線性可分與不可分
由於XOR問題不能用單個的感知器進行求解,那么可以考慮采用兩層的感知器,其中,第一層感知器的輸出作為第二層感知器的輸入,如圖 4所示。其中,權值為
其對XOR問題求解的示意圖如圖 5所示。
解決XOR問題的兩層神經網絡
XOR問題求解
因此,對於線性不可分的問題,可以采用多層的神經元互相連接的方式來進行求解。如果需要求解的問題更加復雜,就需要更多的神經元組合在一起,構成更加復雜的網絡,如圖 6所示。在人工神經網絡中,網絡相鄰層之間的節點都通過有向邊進行連接,箭頭的方向代表了信號的傳遞方向,連接的權值代表了不同層神經元之間作用的強度。網絡同一層的節點之間沒有連接。
多層感知器
只有連接的神經網絡還不能進行工作,因為其連接的權值還沒有確定。因此首先需要通過有監督的方式訓練神經網絡,即學習過程。其經典的學習算法為反向傳播(Back Propagation, BP)算法。由於BP算法的推導比較復雜,這里不做詳細闡述,只介紹一下其基本思想:
- 信號的正向傳播:輸入樣本從輸入層傳入,經各隱層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出不符,則轉入誤差的反向傳播階段。
- 誤差反向傳播:將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。
- 因此,人工神經網絡方法的一般應用步驟為:1. 確定網絡結構;2. 采用有監督的方法訓練網絡參數;3. 進行分類或者預測。
決策樹算法
機器學習中決策樹是一個預測模型,它表示對象屬性和對象值之間的一種映射,樹中的每一個節點表示對象屬性的判斷條件,其分支表示符合節點條件的對象。樹的葉子節點表示對象所屬的預測結果。決策樹的示意圖如圖 7所示。
決策樹示意圖
圖 7中的決策樹用來預測貸款用戶是否具有償還貸款的能力。貸款用戶主要具備三個屬性:是否擁有房產,是否結婚,平均月收入。每一個內部節點都表示一個屬性條件判斷,葉子節點表示貸款用戶是否具有償還貸款的能力。例如:用戶甲沒有房產,沒有結婚,月收入 6K。通過決策樹的根節點判斷,用戶甲符合右邊分支(擁有房產為“否”);再判斷是否結婚,用戶甲符合左邊分支(是否結婚為否);然后判斷月收入是否大於5K,用戶甲符合左邊分支(月收入大於5K),該用戶落在“可以償還”的葉子節點上。所以預測用戶甲具備償還貸款的能力。
可以看到,決策樹的決策過程非常直觀,容易被人理解。因此,決策樹在很多領域得到了廣泛的應用。
決策樹的構造過程不依賴於領域知識,它使用屬性選擇度量來選擇將元組最好地划分成不同的類的屬性。所謂決策樹的構造就是進行屬性選擇度量,以確定各個特征屬性之間的拓撲結構。屬性選擇度量算法有很多,常用的有ID3算法[2]和C4.5算法[3]。這里不介紹算法的具體流程,有興趣的讀者可以參考相關的文獻。
從信息論知識中可知,期望信息越小,信息增益越大,從而純度越高。所以ID3算法的核心思想就是以信息增益度量屬性選擇,選擇分裂后信息增益最大的屬性進行分裂。
ID3算法存在一個問題,就是偏向於多值屬性。例如,如果存在唯一標識屬性ID,則ID3會選擇它作為分裂屬性,這樣雖然使得划分充分純凈,但這種划分對分類幾乎毫無用處。ID3的后繼算法C4.5使用增益率(gain ratio)的信息增益擴充,試圖解決這個問題。
在分類模型建立的過程中,很容易出現過擬合的現象。過擬合是指在模型學習訓練中,訓練樣本達到非常高的逼近精度,但對檢驗樣本的逼近誤差隨着訓練次數的增加呈現出先下降后上升的現象。過擬合時訓練誤差很小,但是檢驗誤差很大,不利於實際應用。
決策樹的過擬合現象可以通過剪枝進行一定的修復。剪枝分為預先剪枝和后剪枝兩種。預先剪枝指在決策樹生長過程中,使用一定條件加以限制,使得產生完全擬合的決策樹之前就停止生長。后剪枝是在決策樹生長完成之后,按照自底向上的方式修剪決策樹。后剪枝有兩種方式,一種用新的葉子節點替換子樹,該節點的預測類由子樹數據集中的多數類來決定。另一種用子樹中最常使用的分支代替子樹。預先剪枝可能過早的終止決策樹的生長,后剪枝一般能夠產生更好的效果。但后剪枝在子樹被剪掉后,決策樹生長的一部分計算就被浪費了。
支持向量機
支持向量機(support vector machine, SVM)[4]是一種二類分類模型,其基本模型定義為特征空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規划問題的求解。SVM在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函數擬合等其他機器學習問題中。SVM是一種監督學習方法,其原理示意圖如圖 8所示。
SVM原理
SVM的主要思想是針對兩類分類問題,尋找一個超平面作為兩類訓練樣本點的分割,以保證最小的分類錯誤率。在線性可分的情況下,存在一個或多個超平面使得訓練樣本完全分開,SVM的目標是找到其中的最優超平面,即使得每一類數據中與超平面距離最近的向量距離超平面的距離達到最大。如圖 8所示,中間的實線便是尋找到的最優超平面,其到兩條虛線邊界的距離相等。而虛線間隔邊界上的點則是支持向量。
前面介紹了SVM方法在解決線性可分問題中的應用。線性不可分問題將如何處理呢?這就需要引入核函數的概念。通過核函數將待分類的數據映射到高維空間,來解決在原始空間中線性不可分的問題,如圖 9所示。
SVM核函數
小結
本期介紹了監督學習中常用的三種方法的原理。
- 參考文獻
- F. Rosenblatt, “The perceptron: A probabilistic model for information storage and organization in the brain,” Psychol. Rev., vol. 65, no. 6, pp. 386–408, 1958.
- R. Quinlan, “Induction of decision trees,” Mach. Learn., vol. 1, no. 1, pp. 81–106, 1986.
- R. Quinlan, C4.5: Programs for Machine Learning. San Mateo, CA, USA: Morgan Kaufmann, 1993.
- V. Vapnik, The Nature of Statistical Learning Theory. New York, NY, USA: Spriner, 2010.