們今天在這里詳細講講機器學習算法的幾大分類:
比如,根據數據標注類型區分的:
- Supervised Learning 有監督學習
- Unsupervised Learning 無監督學習
- Semisupervised Learning 半監督學習
以及,根據任務類型的
- Reinforcement Learning 強化學習
- Transfer Learning 遷移學習
PS:實際上還有更多種類,但是我們這里先只討論這些比較常見的類別。
我們先從Supervised Learning 有監督學習,Unsupervised Learning 無監督學習,Semisupervised Learning 半監督學習這三項說起。簡單來說Supervised Learning就是在訓練一個模型的時候,你會應用到數據集中標注的Y。比如下面的例子,可以看到表中的數據集只有3個樣本,每個樣本都對應了一個已知的Y信息。比如常見的例子如我們之前提到的Linear Regression, Logistic Regression, Decision Tree, KNN 等等?;旧洗蟛糠炙惴ǘ际荢upervised Learning,也就是在訓練的過程中要充分利用數據中Y的信息,才能更新模型內部的參數來找到符合數據的分布。用一句話總結,就是學習必須有老師指導!
Fig1. 監督學習數據集的例子
相對應下,Unsupervised Learning 無監督學習就是指我的數據集不需要有樣本的標注信息,我也能找出整個數據的分布并更新模型內部的參數。比如下面的例子,我們在最后一欄Y的信息是完全丟失的,但這并不影響我們訓練一些模型,比如Kmeans, Self-Organizing Map(自組織映射)等Clustering算法。用一句話總結,就是學習完全可以沒有老師指導!無師自通!!
Fig2. 無監督學習數據集的例子
而介于這兩者之間的就是Semisupervised Learning 半監督學習了,也就是說,在訓練我的模型時,需要用到數據集中一些樣本的標注信息,從而才能估算整個數據集的分布。這類算法往往都是監督學習或者無監督學習算法的變種,比如Semi-supervised supported vector machine(S3VM半監督支持向量機)等。用一句話總結,就是學習開始時要有老師指導!然后再一通百通!!
Fig3. 半監督學習數據集的例子
由于當前監督學習會充分利用標注信息,所以模型的performance往往會比無監督和半監督要好。這也推動了對于高質量數據的極大需求。但是由于高質量數據往往很有限,所以更多的時候,我們只能采取無監督學習和半監督學習等方法。
再來就是強化學習Reinforcement Learning。這類算法和之前提到的幾種方法有些不同。之前提到的方法往往都有明確的目標,比如如果你做股票預測,那么你的目標就是計算生成一個數值去描述股價;或者如果你訓練一個圖像分類器,那么你的目標就是輸出測試圖片的類別信息等。
但是對于強化學習,這類學習往往沒有明確的目標。我們有的只是基于當前狀態下的評估結果。比如,我們走迷宮,我們是看不到終點在哪的,而且通往迷宮終點的路很有可能有很多條,這就意味著我們是不知道當前狀態下的目標是什么。但是我們身處在迷宮中,為了脫險必須走下去,而為了評估當前這一步的好壞,我們需要引入Rewards。這就是強化學習的概念了。那么你可以看到,這類算法更適合被用來做各種決策,因為決策往往不是立竿見影的,而是有連鎖反應的。常見的應用有很多,比如自動駕駛,掃地機器人,還有像之前提到的AlphaGo,還有像最新的AI玩超級瑪麗等等。
Fig4. Artificial intelligence learns Mario level in just 34 attempts
最后就是遷移學習,這項很好理解就是把已經訓練好的模型參數,遷移到新的模型上以幫助新模型訓練。一個簡單的例子就是,我訓練了一個分類器區分貓和狗,那么我能不能將這個分類器稍微改變讓他能區分獅子和老虎呢(不同,但是相似的任務)。還有就是在上面提到的AI玩超級瑪麗。當我們有了這個AI,我們可不可以讓他在這個基礎上去學如何玩魂斗羅呢。