目錄

(註:筆記編排順序按照原文章結構,但是個人覺得……先看1再看0比較容易理解)

  • 【遷移強化學習】Survey筆記 - 0
  • >>>【遷移強化學習】Survey筆記 - 1 <<<
  • 待續

上一篇文章記錄了Survey的前兩章,主要記錄了原Survey中對於相應問題的一些定義和分析,闡述了一些比較方法,讓後續對於各個遷移學習演算法的介紹有了權衡的標準。並且引出了區分遷移學習演算法的5個維度。

在這篇筆記中,將會對應原文第三章,對強化學習(Reinforcement Learning)的通用方法和名詞定義、強化學習下的遷移學習所要解決的問題和大致的解決思路、以及與強化遷移學習相關的領域做一個全面而不失深度的概覽

發車啦~


3 - 面向強化學習的遷移學習

3.1 - 強化學習背景知識

這一章主要講述強化學習相關的背景知識,這裡假定大家對於強化學習都有一定的了解,就不做額外的展開了,僅對文中所使用的符號系統和重要的名詞做一個簡單的複習介紹。 關於強化學習的背景知識,推薦UCL與DeepMind合辦的強化學習課程 (youtube)。

對強化學習了解較深的可以跳過大多數的部分,但是Options這一概念在後文用得很多,需要額外了解一下

文章首先介紹了強化學習的基本要素MDP過程,文章指出,在遷移學習的語境下,一個Task和一個MDP過程的概念是可以等價看待的(used interchangably)

文中使用的符號系統和名詞:

  • s in S 「世界」的當前狀態
  • s_{initial} 一個MDP/Task開始時,世界的的初始狀態
  • R 獎勵函數,從狀態映射到獎勵數值 R: S 
ightarrow mathbb{R}
  • gamma 獎勵(隨時間)衰減係數
  • A , 動作集合(動作空間),Agent能夠做出的所有動作(actions)
    • 在一些狀態下,動作空間中的一些動作可能是不可用的。比如你在考場里的時候,唱歌動作可能就是不可用的。但唱歌動作依舊在動作空間中
  • T 遷移函數,表示一個狀態下的一個動作會導致怎樣的下一個狀態 T: S 	imes A 
ightarrow S
    • 在一些情況下, T 將是一種概率分布,而非確定性函數
  • 在多數情況下,具體的 RT 是不會告訴Agent的,將由Agent自己學習
  • Episodic task 階段性任務:有明確開始和結束的任務
    • s_{final} 階段性任務的終止態,又成為目標態 goal state
    • 階段性任務中的Agent試圖最大化各個階段的平均獎勵(每一次完整的任務執行成為一個階段)
    • 非階段性任務中的Agent視圖最大化在 gamma 衰減下的總累積獎勵
  • Observation Agent對世界狀態 s 的觀察
    • Observation包含 s 的完整信息,則Agent對真實的 s 進行估計
    • Observation只包含 s 的部分信息,則這一過程稱為 Partial Observable MDP (POMDP)
    • 此篇Survey基本不考慮POMDP的情況
    • Observation 包含的信息和 state 可能有所偏離(感知雜訊 perceptual noise
  • X , State Variables 狀態變數,又稱作 features ,對於state巨大和/或連續的情況,往往將狀態視作一組變數構成的向量 s = langle x_1, x_2, ... x_n 
angle這一概念在之後的討論中將被頻繁使用 (註:文中對於state variable使用的符號沒有統一,用 v 表示,用 s.v 表示和用 X 表示的情況都有,筆記中統一用 X 表示)
  • pi 策略函數(policy), 對於當前世界狀態 s ,Agent應該採取何種動作來應對 pi: S 
ightarrow A
  • pi^* 最優策略,使得Agent能夠在任務中最大化總獎勵預期的策略
    • 一些學習最優策略的方法
      • Temporal Difference(TD) 不多解釋了,不熟悉的可以參考Wikipedia 或者這篇博客
      • Policy Search Methods 通過policy iteration, policy gradient 或 direct policy search等方法找到最優policy。文中表示這一類方法從某種意義上比TD要簡單,因為它們直接對policy進行更改
      • Dynamic Programming 動態規劃 在世界的完整MDP模型被提供給Agent時適用的方法,基礎中的基礎,也不多做解釋了,不熟悉的可以參考Wikipedia
      • Model-basedModel-learning 方法中,Agent將在與環境的交互中學習估計真實的世界模型( T R
        • Instance based methods 存儲已經觀察到的交互並且通過這些"Instance"來直接預測模型 (註:最早我以為這裡的Instance Based是指從學習中總結出「世界」中的「實體」,但讀過相應論文之後我發現此處所述Instance Based又稱作 Kernel Based Learning,是根據歷史採樣到的事件/狀態,通過其對當前狀態的距離度量,來估計當前狀態的價值,因為最後的價值受「更接近」的狀態影響更多,所以被成為Instance Based)
        • Bayesian RL 為模型中成分的不確定性進行建模,來學習其期望。適合規模較小的任務
      • Relationtional Reinforcement Learning (RRL) 當MDP的狀態可以被描述為關係或一階邏輯。因為根據「對象」進行推斷,這一類演算法對於任務中物體的數量變化,表現穩定
      • Batch Learning Methods 一種Agent並不在和環境的直接交互中進行學習的離線學習方式,使用Batch方式來使得樣本學習更加高效。這一學習方式也能夠很好地分離學習和探索
  • Function Approximators 用來近似相應目標函數的函數(如神經網路)
  • Options 在後續的內容中廣泛提到,又稱為 Macro actions,是一種對於動作的高階抽象 (注1: 如「拿起一個物品」,這一Option對應的是 "向目標方向移動手 -> 收緊手指 -> 向上移動手" 這樣一系列的基礎動作)(注2: 文中後面所提到的Options,似乎不僅僅指代對動作的抽象,有時還可以指代對狀態的抽象)
  • Hierachical Methods 將一個任務分解為一系列的子任務再學習後重新進行合併,進而每個子任務都更加容易學習。

3.2 - 遷移方法

遷移強化學習,在源任務和目標任務之間可能容許的差異有:

  1. 基礎差異如 狀態空間 s 、初始狀態 s_i , 目標狀態 s_f ,狀態變數(State Variable) X ,獎勵函數 r , 動作空間 a
  2. p ,表示Agent對問題有著相同的內部表示(理解),但是state variable不同的情況,這一種情況將在後面的章節單獨討論

對於源任務的選擇可以有:

  1. 人工選擇一個唯一的源任務進行學習,之後遷移到目標任務
  2. 學習許多源任務,使用所有學到的知識進行遷移
  3. 學習許多任務並為這些任務構築庫(lib),對於新任務,選取相應庫最接近的任務進行遷移
  4. 根據目標任務自動更改源任務,使得更改過的源任務更適合目標任務

當前沒有能夠保證源任務一定是合適遷移的辦法,如何避免從不合適的任務進行遷移是個開放問題。

遷移的知識可以有:

  1. 低層知識(Low-level Knowledge)比如 Q 值,某個策略等
  2. 高層知識(High-level Knowledge)比如
    1. A : 在某個情況下哪些動作是合適的
    2. pi_p : Options(又稱為 Partial Policies )
    3. 	ext{rule} : 規則或建議
    4. 	ext{fea} : 重要的特徵
    5. 	ext{pvf} : proto-value functions
    6. R : 獎勵建模(Shaping Rewards),(註:根據我的理解,Reward Shaping可以視作一種將真實世界中稀疏的獎勵,轉換為對學習更友好的獎勵的過程。比如你堅持鍛煉一年最終看到自己瘦了30斤是很艱難的,那麼你把目標改成「一年裡每天鍛煉一小時,鍛煉完給自己一個小小的獎勵」,這一種方式就可以認為是Reward Shaping)
    7. 	ext{sub} : 對子任務的定義

對於任務的映射 - 大量的遷移演算法假定源任務和目標任務有著相同的狀態變數和動作空間,在這種情況下顯性的任務映射被認為是不必要的

  1. 一些會要求不同的狀態變數和動作存在相同的語義,比如Mountain Car問題中的{Forward, Neutral, Back}{Right, Neureal, Left}
  2. 在語義不相同的情況下,跨任務映射也是需要的

對於在不同狀態變數和動作空間之間進行遷移的演算法,往往需要一種映射來描述兩個任務之間的關聯,這種關聯可以:

  1. sup: 由人類給定
  2. exp: 通過經驗或高層次描述來學習獲得

使用描述層面上的知識來進行遷移的演算法主要根據其對於「哪些信息會被提供」這一假設進行區分:

  1. 假設Agent擁有對於轉換函數 T 的定性理解,比如「採取X動作可能會對於環境有一個大致Y的影響」
  2. Agent能夠得知一種映射,進而學習到另一種映射(如通過動作的映射,學習到狀態的映射)
  3. 狀態變數是已經根據其要描述的對象或概念分好組的

3.3 多任務學習

遷移學習和多任務學習(MTL)的主要區別在於MTL假設Agent解決的所有問題都是同分布的,而遷移學習中源任務和目標任務之間則沒有類似的限制。

作者在文章中舉了一個多任務學習的例子,比如一個爬山任務,在多任務學習的場景下,可能是一系列的爬山任務,每個的轉換函數$T$都是從一個共同的分布(比如一定範圍的表面摩擦力)中拿到的。

3.4 跨任務映射(Inter-task Mapping)

對於狀態變數 X 、動作空間 a 之間有所差異的任務之間的遷移學習,往往需要進行跨任務映射(Inter-task Mapping) ,來學習一個任務的狀態變數/動作如何被轉換為另一個任務的狀態變數/動作。 一般的方法是可以定義一種動作映射 chi_A 來將不同任務中效果相似的動作關聯在一起。也可以定義一種狀態變數映射 chi_X

在此之外,跨任務映射還可以有如下的變體/擴展:

  • 定義一個部分映射partial mapping,即直接忽略目標任務中的「新動作」,只使用兩任務中的交集進行遷移
  • 直接映射狀態,而非狀態變數。不過現在(Survey完成時)並沒有使用這種方法的模型
  • 還有一種可能的方式是,將 chi_Achi_X 兩種映射關聯到一起而非相互獨立。作者對這一種情況做了一個舉例說明,比如根據Agent所處的世界當前的狀態,我們的動作映射可能是不同的,而根據Agent當前採取的動作,狀態變數之間的映射也可能是不同的

說了這麼一大堆之後,作者又指出,雖然這些擴展方法都可能根據特定的MDP有所必要,但是沒有這些現存的方法在各種各樣的任務上已經表現很好啦。

當然,根據Agent如何知道跨任務映射,也存在兩種方式:

  • 人類指定
  • Agent自行學習

3.5 相關領域

(註: 原文是Related Paradigms - 相關範式,可是我每次看到範式這倆字都覺得好複雜 > <,就記錄成相關領域了)

文章中討論了一些和強化學習框架下的遷移學習相關的研究領域:

  1. 終生學習(Lifelong Learning)(註:在一些資料中也被稱為Continual Learning) Agent在長時間裡與世界的交互,往往必須學習並完成一系列的任務,並且一系列任務很可能是按照空間而非時間分割的。在這種情況下,遷移會是一大關鍵要素,但需要的將不僅僅是遷移學習,原因在於
    1. 遷移學習往往著眼於在一對任務之間進行遷移,而不必考慮如何完成之後可能遇到的任意任務
    2. 在遷移學習中,Agent往往能被告知新任務的開始,而在Lifelong Learning中,Agent往往需要在全局MDP中自行判別新的子任務
  2. 模仿學習(Immitation Learning):通過觀察其他人/其他Agent如何行動來進行學習。這一過程往往指代通過外界的信息來優化自身的信息,而Survey中的遷移學習指的是通過Agent自有的知識來加速學習新的問題。
  3. 指導學習(Human Advice):將人類建議植入強化學習也是一個正在興起的領域,一般來說這種方法要求人類的指導和Agent的學習過程始終緊密結合,而遷移學習中,多數知識依舊由Agent自行學習
  4. 獎勵重塑(Shaping):關於獎勵重塑有三種不同的定義:
    1. 如同上面提到過的,以一定方式將獎勵化作對學習更友好的形式。
    2. 隨時間改變獎勵函數以指導學習
    3. 使用交互性的監督學習來輔助學習過程
  5. 表達遷移(Representation Transfer): Taylor and Stong 在 2007 年的文章 中,研究了在相同任務中,在Agent對世界不同的內部表達(Internal Representation)之間的遷移
    1. 這種情況下,當需要引入新的Representation時,不必遺棄舊的
    2. 不同的表達對於遷移的難度有較大的影響

自此,關於遷移強化學習的背景知識有了一個比較全面的概覽

在下一篇筆記中,將圍繞Survey中的第四章,介紹一系列在狀態變數$X$和動作空間$a$固定的情況下的遷移學習方法

盡請期待啦


推薦閱讀:
相关文章