1. 程式人生 > >機器學習、監督學習、非監督學習、強化學習、深度學習、遷移學習

機器學習、監督學習、非監督學習、強化學習、深度學習、遷移學習

文章目錄

機器學習(machine learning)

機器學習的主要任務:

  • 分類(classification):將例項資料劃分到合適的類別中。

  • 迴歸(regression):主要用於預測數值型資料。

機器學習可以分為三種形式:

  • 監督學習(supervised learning)

  • 非監督學習(unsupervised learning)

  • 強化學習(reinforcement learning)

監督學習(supervised learning)

  • 必須確定目標變數的值,以便機器學習演算法可以發現特徵和目標變數之間的關係。在監督學習中,給定一組資料,我們知道正確的輸出結果應該是什麼樣子,並且知道在輸入和輸出之間有著一個特定的關係。 (包括:分類和迴歸)

  • 訓練樣本 = 特徵(feature) + 目標變數(label: 分類-離散值/迴歸-連續值)

非監督學習(unsupervised learning)

  • 無監督學習,即在未加標籤的資料中,試圖找到隱藏的結構。資料沒有類別資訊,也沒有給定的目標值。

  • 非監督學習包括的型別:

    • 聚類:將資料集分成由類似的物件組成多個類。

    • 密度估計:通過樣本分佈的緊密程度,來估計與分組的相似性。

  • 此外,無監督學習還可以減少資料特徵的維度,以便我們可以使用二維或三維圖形更加直觀地展示資料資訊。

強化學習(reinforcement learning)

強化學習,又稱再勵學習或者評價學習,也是機器學習的技術之一。

所謂強化學習就是智慧系統從環境到行為對映的學習,以使獎勵訊號(強化訊號)函式值最大,由於外部給出的資訊很少,強化學習系統必須依靠自身的經歷進行自我學習。通過這種學習獲取知識,改進行動方案以適應環境。

強化學習最關鍵的三個因素:

  • 狀態

  • 行為

  • 環境獎勵。

強化學習和深度學習的主要區別:

  • 深度學習的訓練樣本是有標籤的,強化學習的訓練是沒有標籤的,它是通過環境給出的獎懲來學習

  • 深度學習的學習過程是靜態的,強化學習的學習過程是動態的。這裡靜態與動態的區別在於是否會與環境進行互動,深度學習是給什麼樣本就學什麼,而強化學習是要和環境進行互動,再通過環境給出的獎懲來學習

  • 深度學習解決的更多是感知問題,強化學習解決的主要是決策問題。因此有監督學習更像是五官,而強化學習更像大腦。

應用:

關於深度學習和強化學習的例項,最典型的莫過於谷歌的AlphaGo和AlphaZero兩位了。AlphaGo是通過深度卷積神經網路,在訓練了大約三千萬組人類的下棋資料生成的模型,而AlphaZero使用強化學習的方式,通過自己和自己下棋的方式生成模型。而最終的實驗結果也很讓人震撼。AlphaGo擊敗了人類圍棋頂尖高手,而AlphaZero擊敗了AlphaGo。

強化學習實際應用目前還較窄,主要包括AI遊戲(如Atari),推薦系統,機器人控制相關(如Ng的無人機飛行)

傳統機器學習

機器學習(ML)技術在預測中發揮了重要的作用,ML經歷了多代的發展,形成了豐富的模型結構,例如:

  • 線性迴歸

  • 邏輯迴歸

  • 決策樹

  • 支援向量機

  • 貝葉斯模型

  • 正則化模型

  • 整合模型

  • 神經網路

這些預測模型中的每一個都基於特定的演算法結構,引數都是可調的。訓練預測模型涉及以下步驟:

  1. 選擇一個模型結構(例如邏輯迴歸,隨機森林等)。

  2. 用訓練資料(特徵和標籤)輸入模型。

  3. 學習演算法將輸出最優模型(即具有使訓練錯誤最小化的特定引數的模型)。

每種模式都有自己的特點,在一些任務中表現不錯,但在其他方面表現不佳。但總的來說,我們可以把它們分成低功耗(簡單)模型和高功耗(複雜)模型。選擇不同的模型是一個非常棘手的問題。

機器學習的主要障礙是特徵工程這個步驟,特徵工程要靠手動設計完成,需要大量領域專業知識,因此它成為當今大多數機器學習任務的主要瓶頸。

深度學習 (deep learning)

深度學習,也是一種機器學習的技術。最初的深度學習網路是利用神經網路來解決特徵層分佈的一種學習過程。

DNN(深度神經網路)可以將原始訊號(例如RGB畫素值)直接作為輸入值,而不需要建立任何特定的輸入特徵。通過多層神經元(這就是為什麼它被稱為“深度”神經網路),DNN可以“自動”在每一層產生適當的特徵,最後提供一個非常好的預測,極大地消除了尋找“特徵工程”的麻煩。

DNN也演變成許多不同的網路拓撲結構,例如:

  • CNN(卷積神經網路)

  • RNN(遞迴神經網路)

  • LSTM(長期短期記憶網路)

  • GAN(生成對抗網路)

所有的這些被統稱為深度學習(Deep Learning)。

遷移學習 (transfer learning)

遷移學習能夠將適用於大資料的模型遷移到小資料上,作為小資料模型的訓練起點,節約訓練神經網路需要的大量計算和時間資源。

例如採用在計算機視覺挑戰賽通過ImageNet資料(源資料)集訓練出來的AlexNet 模型遷移應用到另一個新的資料集(目標資料集)重新進行訓練(微調)。

主要步驟:

  • 在源資料上訓練一個神經網路。比如在 ImageNet 上訓練出的 AlexNet 模型。

  • 將模型的輸出層改成適合目標資料的大小。 新載入的資料並不需要作1000個類別的分類任務,因此 AlextNet 的最後三層可以針對性按照新的分類問題重新調整,例如:

    • 降低之前訓練網路的特徵初始學習率,減緩遷移層的學習。

    • 降低遷移學習設定過多的迭代訓練次數,提高訓練效率。

    • 減小批(Mini Batch Size)的大小,降低記憶體使用率。

  • 將輸出層的權重初始化成隨機值,但其他層的權重保持跟原先訓練好的權重一致。

  • 在目標資料集上開始訓練。