1. 程式人生 > >機器學習入門-機器學習的不同型別(轉)

機器學習入門-機器學習的不同型別(轉)

轉自:http://iccm.cc/types-of-machine-learning/

機器學習指的是機器通過學習資料,得到技巧的過程。比如,現在需要讓機器學習病人判斷是否獲病。我們可以從目標整體(population)所有人中抽出用以訓練的樣本(sample),把這些樣本的病人、正常人身體資料作為輸入(input),是否患病等訊息作為輸出(output)餵給機器,機器以某種學習演算法(training algorithm)對其進行處理,最後獲得某種有用的知識(final hypothesis),比如某種根據N個變數的關係判斷是否患病的計算公式。我們希望用有效的演算法使得這個最終的hypothesis儘量貼近整體的真實情況。根據這個過程中的幾個關鍵字,可以將機器學習分類成不同型別。

按照輸入空間不同:特徵學習(feature learning) 
按照輸出空間不同:二元分類(binary classification),多元分類(multiclass classification),迴歸問題(regression),結構化預測(structured prediction) 
按照輸出標記型別不同:監督式學習(supervised learning),非監督式學習(unsupervised learning),半監督式學習(semi-supervised learning),增強式學習(reinforcement learning)。這也是機器學習中最常見的分類 
按照學習方法不同:批次學習(Batch Learning),線上學習(Online Learning),主動學習(Active Learning)。 

一、特徵學習(feature learning)

機器學習中的資訊來源——資料變數,可能是以不同的方式提供的。 
如果提供的變數,是非常具體的,可以直接使用,比如對判斷病人是否得病例子中,提供病人的身高體重性別等身體常規指標,及一些化驗結果指標。這樣的變數都叫做concrete features,一般由建模者選擇出來使用。 
相應的,有concrete feature,就有raw/abstract feature。這些徵是非常抽象的,需要經過一定地加工,提取特徵才能使用,提取特徵的過程就叫做特徵學習(feature learning),或者特徵工程(feature engineering)。比如在辨識手寫數字圖片時,我們很少會將這些n*m格的畫素各格灰度直接用作變數,輸入模型中。我們可能會先對圖片通過人腦經驗做些處理,比如提取出左右/上下對稱,總筆畫濃度等等一些特徵;或者藉由機器學習的演算法提取特徵,

eg。最近很火的深度學習(deep learning)最簡單的說,也是用非監督方式抽取具體特徵的一種演算法。

二、二元分類、多元分類、迴歸分析、結構化預測

二元分類(binary classification),目標變數取值只有兩種可能性,簡單地說就是做判斷題,在現實生活中應用非常廣泛。銀行根據客戶資料,判斷信用好壞以決定是否發放信用卡/貸款(german credit data);根據郵件內容,判斷是否垃圾郵件(spam email);根據病人資料,判斷病人是否患癌症(breast cancer)等等。二元分類是機器學習中最基本最核心的問題,許多其他演演算法的基礎都來自他。

多元分類(Multiclass Classification),簡單地說就是做選擇題,目標變數是level>1的factor。比如判斷某種植物所屬科目(iris),評估汽車價值高低(car evaluation)等等。

迴歸分析(regression analysis)的目標變數是Numeric型別的,取值無限多個點。典型的迴歸分析問題包括用歷史資料做出歷年GDP的迴歸線,用相關變數估計房屋價格(Housing Data Set)等等。

結構化預測(Structured Learning)的目標變數和以上三者都不一樣,是一種結構。典型的結構化學習是對一個語言中的分析樹(parse tree)。

三、監督式學習、非監督式學習、半監督式學習、強化學習

非監督式學習(Unsupervised Learning)中沒有對應於每個觀測的標籤。典型的問題是聚類問題(Clustering Analysis)比如對客戶分群,我們不知道總共有幾個客戶型別,更不知道每個客戶是屬於哪個型別。但是可以根據客戶資料將一些屬性相似的客戶分成一群。

其他非監督式學習還包括密度分析問題(density estimation)比如將犯罪案發比較多的地區標註出來。異常檢測(anomaly detection)比如在visa交易過程中將異常情況發現出來。

對監督式學習來說,最後的假說能使預測值越貼近輸出標籤越好。但是對於非監督式學習就沒有那麼明確的判斷標準了。

半監督式學習(semi-supervised):是監督式學習和非監督式學習的綜合,不是所有案例都有標註型別。如果是對input取得很簡單,但是對如果取得所有output tag很難或很貴,那麼可以採取半監督式學習的方式。

強化學習(Reinforcement Learning)的輸出標籤不是直接的對/不對,而是一種獎懲機制。舉例來說,訓練寵物的時候無法直接告訴它,做出某個手勢時想要它幹嘛,或者它的反應是對是錯。但是可以通過做對了獎勵吃的,做錯了就凶它的獎懲方法訓練。雖然它還是無法和人直接溝通,不明白手勢含義,但是漸漸使寵物能對手勢做出正確反應。

四、批次學習、線上學習、主動學習

批次學習(Batch Learning) 把所有資料都直接用於機器學習,比如用所有的點按照OLS擬合出迴歸線。這是最常見的機器學習方式。 
線上學習(Online Learning)中的的online並不是指需要上網,而是指對資料的運用增加一步“更新”的工作。比如用一些影象管理的軟體可以幫你識別人臉。軟體會一個個問你該面孔對應名字。機器學習到的東西是在一輪輪問題中更新的,每次學習一個觀測。之前提到的“增強式學習”異曲同工。 
主動學習(Active Learning)比起線上學習更具主動性。主動學習能互動地詢問使用者問題,並將獲得的結果當做新的資料點。拿之前影象管理的例子來說,主動學習可能會通過演算法做出某種影象詢問你,該人對應的名字。