遷移學習經過將源任務學習到的經驗應用到目標任務,從而讓目標任務的訓練更靈活高效,也更貼近現實狀況——每每要解決的目標問題可能很難直接學習,由於訓練數據不足或者沒法直接與環境交互難以得到訓練數據。所以將遷移學習應用到強化學習中,勢必能幫助強化學習更好地落地到實際問題。本文將從遷移學習、強化學習中的遷移學習、強化學習中的遷移技術最新進展三個部分向你們分享。
機器之心原創,做者:Luo Sainan,編輯:H4O。
git
1、遷移學習是什麼?github
機器學習技術在許多領域取得了重大成功,可是,許多機器學習方法只有在訓練數據和測試數據在相同的特徵空間中或具備相同分佈的假設下才能很好地發揮做用。當分佈發生變化時,大多數統計模型須要使用新收集的訓練數據重建模型。在許多實際應用中,從新收集所需的訓練數據並重建模型的代價是很是昂貴的,在這種狀況下,咱們須要在任務域之間進行知識遷移 (Knowledge Transfer) 或遷移學習 (Transfer Learning),避免高代價的數據標註工做。算法
好比說,咱們在一個感興趣的領域中有一個分類任務,但咱們只在另外一個感興趣的領域中有足夠的訓練數據,其中後者的數據可能在不一樣的特徵空間中或遵循不一樣的數據分佈,咱們但願可以從後者中將知識進行遷移從而幫助完成前者的任務。現實生活中就有許多遷移學習的例子,好比說,掌握 C++語言有助於快速上手 Java、Python 等。人們能夠聰明地應用之前學到的知識來更快更有效地解決新的問題,這就是一種遷移學習。跨域
遷移學習的定義[1] 以下:給定一個源域 Ds 和學習任務 Ts,一個目標域 Dt 和學習任務 Tt,遷移學習致力於經過使用源域 Ds 和源任務 Ts 中的知識,幫助提高目標域 Dt 中的目標預測函數 f_T() 的學習,其中 Ds≠Dt,或者 Ts≠Tt。安全
2、遷移學習的三個主要研究問題網絡
在遷移學習中主要研究如下三個問題:架構
遷移什麼app
如何遷移dom
什麼時候遷移機器學習
「遷移什麼」指的是跨域或跨任務遷移哪一部分知識。一些知識多是特定於單個域或任務的,而一些知識可能在不一樣域之間是相同的,經過遷移知識的選擇能夠幫助提升目標域或任務的性能。目前,遷移學習的內容主要可分爲四類:實例遷移、特徵表示遷移、參數遷移、關係知識遷移。
在發現能夠遷移的知識以後,須要開發學習算法來遷移知識,這就是「如何遷移」的問題。
而「什麼時候遷移」指的是在什麼狀況下能夠進行遷移,在哪些狀況下不該該遷移。在某些狀況下,當源域和目標域彼此不相關時,強行進行遷移可能會失敗。而在最壞的狀況下,它甚至可能損害目標域的學習表現,這種狀況一般被稱爲負遷移。當前有關「遷移什麼」和「如何遷移」的大多數遷移學習工做都暗含源域和目標域彼此相關這一假設。可是,如何避免負遷移仍舊是遷移學習領域受關注的問題。
3、遷移學習方法劃分
根據遷移學習的定義,表 1 中總結了傳統機器學習與各類遷移學習設置之間的關係,其中根據源域和目標域與任務之間的不一樣狀況,將遷移學習分爲三個類別:
概括式遷移學習(Inductive Transfer Learning)
無監督遷移學習(Unsupervised Transfer Learning)
直推式遷移學習(Transductive Transfer Learning)
1. 在概括式遷移學習設置中,不管源域和目標域是否相同,目標任務都與源任務不一樣。算法利用來自源域的概括誤差幫助改進目標任務。根據源域中數據的不一樣狀況,概括式遷移學習進一步分爲兩種狀況:
1)源域中有不少帶標籤的數據。在這種狀況下,概括式遷移學習設置相似於多任務學習設置。可是,概括式遷移學習設置僅旨在經過遷移源任務中的知識來實現目標任務中的高性能,而多任務學習則嘗試同時學習目標任務和源任務;
2)源域中沒有標籤數據。在這種狀況下,概括遷移學習設置相似於自學習。在自學習設置中,源域和目標域之間的標籤空間可能不一樣,這意味着不能直接使用源域的信息。
2. 在無監督遷移學習設置中,與概括遷移學習設置相似,目標任務不一樣於源任務,但與源任務有關。然而,無監督的遷移學習側重於解決目標域中的無監督的學習任務,例如聚類,降維和密度估計。在這種狀況下,源域和目標域中都沒有可用的標籤數據。
3. 在直推式遷移學習設置中,源任務和目標任務是相同的,而源域和目標域是不一樣的。在這種狀況下,目標域中沒有可用的標籤數據,而源域中有許多可用的標籤數據。另外,根據源域和目標域之間的不一樣狀況,咱們能夠進一步將直推式學習設置分爲兩種狀況:
1)源域和目標域之間的特徵空間不一樣;
2)源域和目標域之間的特徵空間相同,但輸入數據的邊際機率分佈不一樣。
1、描述強化學習中的遷移問題
強化學習是一種根據環境反饋進行學習的技術。強化學習 agent 辨別自身所處的狀態 (state),按照某種策略決定動做(action),並根據環境提供的獎賞來調整策略,直至達到最優。馬爾可夫決策 MDP(Markov Decision Process)是強化學習任務的標準描述,咱們定義一個任務 M,用四元組< S , A , T, R>表示,其中 S 是狀態空間,A 是動做空間,T 是狀態轉移機率,R 是獎賞函數。state-action 空間 S×A 定義了任務的域,狀態轉移機率 T 和獎賞函數 R 定義了任務的目標。當強化學習的狀態動做空間 S×A 很大時,爲了尋找最優策略,搜索過程很是耗時。此外,學習近似最優解所需的樣本數量在實際問題中每每使人望而卻步。不管是基於值的方法仍是基於策略的方法,只要問題稍稍變更,以前的學習結果就會失效,而從新訓練的代價巨大。所以,研究者們針對強化學習中的遷移學習展開了研究,但願可以將知識從源任務遷移到目標任務以改善性能。
2、對強化學習中的遷移進行分類
關於強化學習中的遷移研究已經有不少,這些研究涉及到許多不一樣的遷移問題。因爲在處理這一複雜而具備挑戰性的問題時採用的方法和思路大不相同,所以一般很難清晰地瞭解 RL 的當前最新技術。在 [2] 中,Lazaric A 從主要的遷移設置,遷移的知識種類以及遷移目標這三個方面,對強化學習中的遷移進行分類,如表 2 所示。
設定(setting):
1)從單一源任務到目標任務的固定域遷移。任務域由其狀態-動做空間 S×A 決定,而任務的具體結構和目標由狀態轉移模型 T 和獎勵函數 R 決定。RL 中遷移學習的早期研究大多任務域是固定的且只涉及兩個任務:一個源任務和一個目標任務。
2)跨多個源任務到目標任務的固定域遷移。在這種狀況下,任務共享相同的域,遷移算法將以從一組源任務中收集到的知識做爲輸入,並使用它來改進在目標任務中的表現。
3)源任務和目標任務不一樣域遷移。在該設置中,任務有不一樣的狀態-動做空間,不管是在數量上仍是範圍上。在這種狀況下,大多數遷移方法都着重於如何定義源狀態-動做變量和目標變量之間的映射,以便得到有效的知識遷移。
知識 (Knowledge):
1. 實例遷移 (Instance Transfer)。RL 算法依賴於從與 MDP 的直接交互中收集的一組樣原本爲手頭的任務構建解決方案。這組樣本能夠用於在基於模型的方法中估計 MDP 模型,或者在無模型方法中構建值函數或策略的近似。最簡單的遷移算法收集來自不一樣源任務的樣本,並將其重用於目標任務的學習。
2. 特徵遷移(Representation Transfer)。每種 RL 算法對於任務和解決方案都使用特定的表示,如神經網絡,或一組近似最優值函數的基函數。在不一樣任務的學習過程當中,遷移算法一般會改變任務和解的表示形式以進行目標任務的學習。
3. 參數遷移(Parameter Transfer)。RL 算法有大量參數定義了初始化和算法行爲。一些遷移方法根據源任務改變和調整算法參數。例如,若是某些狀態-動做對中的動做值在全部源任務中都很是類似,則能夠據此將目標任務的 Q-table 初始化,從而加快學習過程。初始解決方案 (策略或值函數) 一般被用來在只有一個源任務的遷移設置中初始化算法。
目標 (Objective):
1. 學習速度的提高。學習算法的複雜性一般由實現所需性能所需的樣本數量來衡量。在實踐中,可使用時間與閾值,面積比,有限樣本分析等來衡量學習速度的提高。經過設置閾值,並測量單任務和遷移算法須要多少經驗 (如樣本、片斷、迭代) 來達到這個閾值,以斷定遷移效果。面積比度量方法經過考慮遷移學習先後學習曲線下的區域進行度量。
2. 初始(JumpStart)提高。經過從源任務進行遷移,看 agent 在目標任務中的初始性能的提高來衡量遷移學習的效果。學習過程一般從假設空間中的隨機或任意的假設開始。根據環境的定義,全部的任務都來自同一個分佈Ω。
3. 漸進(Asymptotic)提高。在大多數實際感興趣的問題中,最優值函數或策略的完美近似是不可能的。使用函數逼近技術,近似值越精確,收斂性越好。近似的準確率嚴格依賴於用於表示解決方案的假設空間的結構。該目標就是看遷移學習後,Agent 最終表現的提高。
筆者整理了部分結合強化學習與遷移學習的最新技術研究,速覽以下:
《Transfer Learning For Related Reinforcement Learning Tasks Via Image-to-Image Translation(ICLR-2019)》
中文名:經過圖像到圖像翻譯的相關強化學習任務的轉移學習
論文連接:https://arxiv.org/abs/1806.07377
代碼連接:http://github.com/ShaniGam/RL-GAN
論文速覽:儘管深度 RL 在從原始像素中學習控制策略取得了巨大的成功,可是結果模型泛化能力太差。做者使用 Atari Breakout 遊戲 (打磚塊遊戲),證實了訓練後的 agent 難以應對小的視覺變化(好比說在背景上增長矩形圖案做干擾,或者在背景上添加一些對角線,人類能夠輕鬆適應這些小的變化,如圖 2)。
圖 2 :(a) 爲原始版本的打磚塊遊戲,其他爲在背景上添加了一些小的視覺變化。(b) 添加固定藍色矩形干擾,(c) 紅色矩形在三個固定位置閃現 (d) 綠色線條幹擾 (e) 對角線干擾。
做者使用常見的遷移學習策略——微調,來應對這些視覺上的改變卻遭遇了慘敗。甚至從某種程度上來講,從頭開始對 agent 進行訓練比對通過訓練的 agent 進行微調還要更快。所以,做者建議經過添加專用組件來改善遷移學習,該組件的目標是學習在已知域和新域之間進行映射。做者提議將視覺遷移和動態遷移分開,agent 嘗試重新域到舊域進行類比:觀察新域中的一組狀態(圖像)後,代理能夠學習將其映射到源域中類似熟悉的狀態,並根據其源域策略對映射狀態採起行動。
更具體地來講,給定具備訓練參數θ的訓練策略π(a|s;θ) 提出針對源域狀態 s∈S 的動做 a,但願從目標域狀態 t∈T 學習映射函數 G:T→S 這樣,經過應用策略π(a|G(t));θ) 與環境 T 進行交互。也就是尋求一個映射函數 G,該函數容許在與目標環境 T 交互時重用爲源環境 S 學習的相同策略πθ。因爲源域項目和目標域項目都是圖像,所以經過從 S 和 T 收集圖像集並使用 Unaligned GAN 直觀地映射它們之間的圖像來啓發式學習函數 G。做者將經過π(a|G(t));θ) 與環境相互做用得到的分數用於 GAN 模型選擇和中止標準。
做者使用 unaligned GAN 建立映射,以將目標任務中的圖像轉換爲源任務中的相應圖像。這種映射使得可以在 Breakout 遊戲的各類變體之間以及 Road Fighter 遊戲的不一樣級別之間進行遷移。結果顯示,學習此映射比從新訓練更有效。做者給出了本文方法在兩種遊戲上的可視化效果,圖 3 給出 Breakout 上的可視化動圖。
此外,這篇論文的 review 也很是有意思,值得一看:https://openreview.net/forum?id=rkxjnjA5KQ
《Transfer in Deep Reinforcement Learning using Knowledge Graphs》
中文名:使用知識圖譜的深度強化學習中的遷移
論文連接:https://arxiv.org/pdf/1908.06556.pdf
論文速覽:文字類冒險遊戲是一種玩家必須經過文本描述來了解世界,經過相應的文本描述來聲明下一步動做的遊戲(有點像你們比較熟知的橙光小遊戲)。教 agent 玩文字類冒險遊戲是一項具備挑戰性的任務,學習它的控制策略須要大量的探索。主要緣由是大多數深度強化學習算法都是在沒有真實先驗的狀況下針對任務進行訓練的,從本質上來講,agent 必須從與環境的交互中瞭解關於遊戲的一切。然而文字類冒險遊戲充分利用了常識知識(好比斧頭能夠用來砍木頭)和一些類型主題(在恐怖題材的遊戲中,棺材裏可能會有吸血鬼等等),遊戲自己就是個謎,所以也致使了訓練效率低下。
知識圖是一個有向圖,由一組語義三元組(主體,關係,對象)構成。在本文中,做者探索使用知識圖和相關的神經嵌入做爲域知識遷移的表示形式,以訓練文字類冒險遊戲的強化學習 agent,從而減小訓練時間並提升所學習控制策略的質量。做者在 KG-DQN 的基礎上展開他們的工做,探索知識圖和網絡參數的遷移。從靜態文本資源中提取出 graph,並使用它向 agent 提供特定領域的詞彙,對象能力等知識。agent 也能訪問遊戲解析器接收到的全部 action,經過提取解析器接收到的一系列模板(用 OBJ 標記替代 action 中的 object 或者名詞短語),將 OBJ 標記更換爲遊戲給定詞彙中可能的 object 便可。DQN 網絡由兩個獨立的神經網絡構成,分別編碼 state 和 action,由最終的 state-action 對的 Q 值做爲兩個網絡之間交互的結果,使用貝爾曼方程更新。
將知識圖從靜態文本資源遷移到 DQN 中的問題做者稱之爲播種,KG-DQN 使用知識圖做爲狀態表示,並對動做空間進行精簡,圖 X 是隨着時間的推移,經過 agent 的探索而創建起來的,當 agent 首次開始遊戲時,這個圖是空的,所以在 action 精簡過程當中幫助不大。而從另外一個來源種子化知識圖,好比同一故事類型的文本冒險遊戲,就能夠給 agent 一個強的先驗。
此外,做者證實了可使用 DQN 網絡參數權重有效地遷移知識,或者經過使用問答系統對網絡的各個部分進行預訓練,也能夠將參數從源遷移到目標遊戲。這樣 agent 總體訓練速度更快(包括對源任務進行預訓練和訓練所需的情節數量),而且與未使用這些技術的 agent 相比,其收斂性能提升了 80%。做者的方法在多種計算機生成的和人工創做的遊戲中進行了測試,這些遊戲的域和複雜性各不相同,經過實驗做者得出結論,知識圖經過爲 agent 提供不一樣遊戲的狀態和動做空間之間的更明確且可解釋的映射,從而使他們可以在深度強化學習 agent 中進行遷移。
《Transfer of Temporal Logic Formulas in Reinforcement Learning(IJCAI-2019)》
中文名:強化學習中時序邏輯的遷移
論文連接:https://arxiv.org/pdf/1909.04256.pdf
論文速覽:將高層次知識從源任務遷移到目標任務是加快強化學習的有效方法。例如,命題邏輯和一階邏輯已被用做這種知識的表示。做者將事件時序相當重要的那些任務稱爲時序任務(temporal tasks),經過邏輯可遷移性的概念具體化時序任務之間的類似性,並開發不一樣但類似的時序任務之間的遷移學習方法。做者首先提出一種推理技術,以從兩個 RL 任務收集的標記軌跡中,按順序析取正態形式提取度量間隔時序邏輯(MITL)公式。若是經過此推斷肯定了邏輯可遷移性,做者爲從這兩個任務推斷出的 MITL 公式的每一個順序合取子式構造一個定時自動機。做者在擴展狀態下執行 RL,其中包括源任務定時自動機的位置和時鐘評估。而後,做者根據兩個任務在定時自動機的相應組件(時鐘,位置等)之間創建映射,並根據已創建的映射來遷移擴展的 Q 函數。最後,做者從遷移的擴展 Q 函數開始,對目標任務的擴展狀態執行 RL。兩個案例研究中的結果代表,根據源任務和目標任務的類似程度,經過在擴展狀態空間中執行 RL,能夠將目標任務的採樣效率提升一個數量級。
《Value Function Transfer for Deep Multi-Agent Reinforcement Learning Based on N-Step Returns (IJCAI-2019)》
中文名:基於 N 步返回的深度多智能體強化學習的值函數遷移
論文連接:https://www.ijcai.org/proceedings/2019/0065.pdf
論文速覽:許多現實世界的問題,如機器人控制,足球比賽,都被建模爲稀疏交互多 agent 系統。在具備稀疏交互的多 agent 系統中重用單 agent 知識能夠極大地加速多 agent 學習過程。先前的工做依賴於互模擬度量(bisimulation metric)來定義馬爾可夫決策過程(MDP)的類似性以控制知識遷移。可是,互模擬度量的計算成本很高,而且不適用於高維狀態空間問題。在這項工做中,做者提出了一種基於新型 MDP 類似性概念的可擴展的遷移學習方法。首先根據 MDP 的 N 步返回值(NSR)定義 MDP 類似度。而後,做者提出了兩種基於深度神經網絡的知識遷移方法:直接值函數遷移和基於 NSR 的值函數遷移。做者在基於圖像的網格世界,MPE 和《吃豆人》遊戲中進行實驗。結果代表,所提出的方法能夠顯著加速多 agent 強化學習,同時具備更好的漸近性能。
《Importance Weighted Transfer of Samples in Reinforcement Learning (ICML-2018)》
中文名:強化學習中樣本的重要性權重遷移
論文連接:https://arxiv.org/pdf/1805.10886.pdf
論文速覽:做者考慮從一組源任務中收集強化學習(RL)中的經驗樣本(即元組<s,a,s',r>)的遷移,以改善給定目標任務中的學習過程。大多數相關方法都集中於選擇最相關的源樣原本解決目標任務,但隨後使用全部遷移的樣本沒有再考慮任務模型之間的差別。在本文中,做者提出了一種基於模型的技術,該技術能夠自動估計每一個源樣本求解目標任務的相關性(重要性權重)。在所提出的方法中,全部樣本都經過批強化學習算法遷移並用於解決目標任務,可是它們對學習過程的貢獻與它們的重要性權重成正比。經過擴展監督學習文獻中提供的重要性加權結果,做者對提出的批 RL 算法進行了有限樣本分析。此外,做者將提出的算法與最新方法進行了經驗比較,代表即便在某些源任務與目標任務明顯不一樣的狀況下,該算法也能得到更好的學習性能,而且對負遷移具備很是強的魯棒性。
《StarCraft Micromanagement with Reinforcement Learning and Curriculum Transfer Learning》
中文名:強化學習和課程遷移學習進行星際爭霸微操
論文連接:https://arxiv.org/pdf/1804.00810.pdf
機器之心解讀:https://www.jiqizhixin.com/articles/2018-04-06-4
論文速覽:實時策略遊戲已成爲遊戲人工智能的重要領域。本文提出了一種強化學習和課程遷移學習方法,以控制星際爭霸微操中的多個單元。做者定義了一種有效的狀態表示形式,該表示形式能夠消除遊戲環境中大型狀態空間所引發的複雜性。而後提出了一種參數共享的多 agent 梯度 Sarsa(λ)(PS-MAGDS)算法來訓練單元。單元之間共享學習策略,以鼓勵合做行爲。
做者使用神經網絡做爲函數逼近器來估算動做-值函數,並提出獎賞函數以幫助部隊平衡其行動和進攻。另外,使用遷移學習方法將模型擴展到更困難的場景,能夠加快訓練過程並提升學習性能。在小規模場景中,部隊成功學習瞭如何以 100%的獲勝率與內置 AI 戰鬥並擊敗它。在大型方案中,課程遷移學習方法用於逐步訓練一組單元,而且在目標方案中顯示出優於某些 baseline 方法的性能。經過強化學習和課程遷移學習,訓練的單元可以在《星際爭霸》微管理場景中學習適當的策略。
做者介紹
羅賽男,西安電子科技大學計算機科學與技術學院研究生,研究方向爲網絡空間安全與機器學習,關注前沿技術,熱愛文字分享,但願可以與你們一塊兒學習,共同進步,ღ( ´・ᴗ・` ) 比心!
下方爲筆者推薦的與遷移學習相關的資料: