1. 程式人生 > >深度學習、遷移學習、強化學習

深度學習、遷移學習、強化學習

一. 深度學習
大資料造就了深度學習,通過大量的資料訓練,我們能夠輕易的發現數據的規律,從而實現基於監督學習的資料預測。
這裡寫圖片描述
這裡要強調的是基於監督學習的,也是迄今為止我在講完深度學習基礎所給出的知識範圍。
這裡寫圖片描述
基於卷積神經網路的深度學習(包括CNN、RNN),主要解決的領域是 影象、文字、語音,問題聚焦在 分類、迴歸。然而這裡並沒有提到推理,顯然我們用之前的這些知識無法造一個 AlphaGo 出來,通過一張圖來了解深度學習的問題域:

2016年的 NIPS 會議上,吳恩達 給出了一個未來 AI方向的技術發展圖,還是很客觀的:
這裡寫圖片描述
毋庸置疑,監督學習是目前成熟度最高的,可以說已經成功商用,而下一個商用的技術 將會是 遷移學習(Transfer Learning),這也是 Andrew 預測未來五年最有可能走向商用的 AI技術。

二. 遷移學習(舉一反三)

遷移學習解決的問題是 如何將學習到知識 從一個場景遷移到另一個場景?

拿影象識別來說,從白天到晚上,從 Bottom View 到 Top View,從冬天到夏天,從識別中國人到 識別外國人……

這是一個普遍存在的問題,問題源自於你所關注的場景缺少足夠的資料來完成訓練,在這種情況下你需要 通過遷移學習來實現 模型本身的泛化能力。

借用一張示意圖(From:A Survey on Transfer Learning)來進行說明:
這裡寫圖片描述
實際上,你可能在不知不覺中使用到了 遷移學習,比如所用到的預訓練模型,在此基礎所做的 Fine-Turning,再比如你做 Tracking 所用的 online learning。

遷移學習的必要性和價值體現在:

1、複用現有知識域資料,已有的大量工作不至於完全丟棄;
2、不需要再去花費巨大代價去重新採集和標定龐大的新資料集,也有可能資料根本無法獲取;
3、對於快速出現的新領域,能夠快速遷移和應用,體現時效性優勢;

關於遷移學習演算法 有許多不同的思路,我們總結為:

1、通過 原有資料 和 少量新領域資料混淆訓練;
2、 將原訓練模型進行分割,保留基礎模型(資料)部分作為新領域的遷移基礎;
3、通過三維模擬來得到新的場景影象(OpenAI的Universe平臺藉助賽車遊戲來訓練);
4、藉助對抗網路 GAN 進行遷移學習 的方法;
這裡寫圖片描述
三. 強化學習(反饋與修正)

強化學習全稱是 Deep Reinforcement Learning(DRL),其所帶來的推理能力 是智慧的一個關鍵特徵衡量,真正的讓機器有了自我學習、自我思考的能力,毫無疑問Google DeepMind 是該領域的執牛耳者,其發表的 DQN 堪稱是該領域的破冰之作。
這裡寫圖片描述
目前強化學習主要用在遊戲 AI 領域(有我們老生常談的 AlphaGo)和 機器人領域,除此之外,Google宣稱通過 強化學習 將資料中心的冷卻費用降低了 40%,雖無法考證真偽,但我願意相信他的價值。

強化學習 是個複雜的命題,Deepmind 大神 David Silver 將其理解為這樣一種交叉學科:
這裡寫圖片描述
實際上,強化學習是一種探索式的學習方法,通過不斷 “試錯” 來得到改進,不同於監督學習的地方是 強化學習本身沒有 Label,每一步的 Action 之後它無法得到明確的反饋(在這一點上,監督學習每一步都能進行 Label 比對,得到 True or False)。

強化學習是通過以下幾個元素來進行組合描述的:

物件(Agent)

也就是我們的智慧主題,比如 AlphaGo。

環境(Environment)

Agent 所處的場景-比如下圍棋的棋盤,以及其所對應的狀態(State)-比如當前所對應的棋局。

Agent 需要從 Environment 感知來獲取反饋(當前局勢對我是否更有利)。

動作 (Actions)

在每個State下,可以採取什麼行動,針對每一個 Action 分析其影響。

獎勵 (Rewards)

執行 Action 之後,得到的獎勵或懲罰,Reward 是通過對 環境的觀察得到。

通過強化學習,我們得到的輸出就是:Next Action?下一步該怎麼走,這就是 AlphaGo 的棋局,你能夠想到,對應圍棋的 Action 數量嗎?

關於強化學習的具體演算法,大多從 馬爾可夫鏈 講起。