Lazy loaded image
假的大秘寶(?)
00 分钟
2021-12-14
給大家體驗一下測試的夥伴們看到的傻眼感(???)

Ref.

概論

  • 機器學習就是找出一個 Function
  • RL 中會有一個 Actor 和 Environment,Environment 會給 Actor 一個 Observation(Actor 的輸入),Actor 會輸出一個 Action (Actor 的輸出) 給 Environment
  • Environment 會針對 Action 給 Reward,用這個 Reward 來判斷是好的還是不好的
notion image
  • Actor 就是我們要找的 function
  • ML 的步驟:
      1. function with unknown
      1. define loss from training data
      1. optimization
  • RL 的步驟:
      1. function with unknown: Policy Network (Actor)
        1. Input of neural network: the observation of machine represented as a vector or a matrix
        2. Output neural network: each action corresponds to a neuron on output layer
        3. 分數總和為 1
        4. Policy Network 要自己設計
        5. action 取決於取得的分數,常見的方法是使用機率,採取 Sample 的好處是同樣的畫面機器每次採取的行動也會略有不同
      1. define "loss"
        1. 整個過程稱為一個 episode
        2. 將所有的 reward 加起來叫做 return
        3. reward:採取某一個行為的時候,立即得到的好處
        4. return:把整場遊戲裡面所有的 reward 加起來
        5. return 取得最大值,就是目標,因此加上負號後也就是希望越小越好作為 loss
      1. Optimization
        1. 這樣的 sequence 叫做 trajectory
        2. 通常 reward function 在定義的時候,還需要同時看 Observation, action
        3. 找出一個 Network 的參數,讓最後的 R 越大越好
        4. sample 會產生隨機性
        5. Environment , reward 都是一個黑盒子,而且也有隨機性
        6. notion image
  • RL 的隨機性非常大

Policy Gradient

  • 很像在 train 一個 classifier
  • 透過希望執行的加減分 An 再乘上 cross-entropy 得到 Loss
notion image
  • 重點:如何定義s, a
  • reward delay:有時候需要犧牲短期利益,換取長期目標
  • 因為有 reward delay 的關係,我們不能直接把得到的分數當成 reward
  • reward 正確的作法應該取決於做完 action 後,所有得到的 reward 集合起來(cumulative reward)
  • 因為得到最後結果 reward 可能來自於最前面 action 的貢獻並不是那麼大 →因此結果應該乘上一個 Discount factor (gamma < 1)
notion image
  • 越早的動作會累積到越多的分數 → 比較早的 observation 對結果的影響本來就比較大(也可以去另外設計)
  • 不同的 RL 很多是在 A 的決定做設計
  • 算出來的結果應該做標準化,因為 reward 是相對的 → 全部同減一個 baseline, b,讓結果有正有負,問題在如何定義這個 b
  • RL 在訓練過程中,搜集資料也在 for 回圈內,因次訓練過程非常花時間
  • 每次 update 完後,資料就重新搜集一次,再去 update 參數 → 不是每一輪資料都適合用在下一輪更新在下一輪
  • 被訓練的 actor 和 拿來跟環境互動的 actor 為同一個 → on-policy,就是上面的方法
  • 被訓練的 actor 和 拿來跟環境互動的 actor 是分開不同的 → off-policy,學習別的 actor 所學,好處是不用每次搜集資料就得 update 一次
  • off-policy 最常用的方法就是 Proximal Policy Optimization (PPO),訓練的 actor 要知道跟環境互動的 actor 是不一樣的(人帥真好,人醜吃草的概念),結果可能會需要打折扣
  • Exploration:在採取行為時的隨機性是很重要的,甚至是可以刻意加上一些noise 到參數中製造隨機性 → 有些動作如果不去做,永遠不知道是不是好的結果

Actor - Critic

  • critic:是要評估 actor 某個 observation 得到多少 reward。Given actor theta, how good it is when observation s (and taking action a)
  • Value function:輸入是 s,輸出是一個 scalar,代表使用 actor theta,他所得到的 cumulated reward,未看先猜,是跟 actor 有關係的
  • 訓練 Value function:
      1. Monte-Carlo (MC) based approach: 透過結束的紀錄訓練,玩玩整場才有一筆資料 ,假設是前一筆與下一筆是有關係的
      1. Temporal-difference (TD) approach: 只用資料與下一筆資料以及他們的 action, reward 訓練,把算出來的 Value function 減掉下一筆乘上 gamma 的資料,這個答案應該要越接近這筆資料的 reward,背後的假設是前一筆與下一筆沒有關係
        1. notion image
  • 可以將前面提到需要 baseline, b 的地方設成 value function
  • actor 的輸出其實是一個 probability 的 distribution
  • Advantage Actor-Critic:採取一個 action 得到的 reward 平均期望值與隨機採取一個 action 得到的 reward 期望值平均的差距有多少
  • Actor 是一個 Network,以一個 observation 作為輸入,輸出的是每一個 action 的分數
  • Critic 也是一個 Network,以一個 observation 作為輸入,輸出是一個數值,代表接下來會得到的 cumulative 的 reward
  • 兩個 Network 可以共用前面幾個 layer
  • 也有方法是直接用 Critic 決定要用什麼樣的 action,最知名的方法就是 Deep Q Network (DQN) ,知名的 Paper 叫做 Rainbow
  • 每一個 action 都會有一個分數,分數通過 soft mess 做一個 normalize 就會變得像機率,按照機率去做 sample,就是從 distribution sample

Reward Shaping

  • Sparse reward:得到 reward 每次都差不多,或是難以得到 reward
  • 想辦法定義額外的 reward,來幫助 agent 學習,就叫做 reward shaping
  • Curiosity based 就是每看到新的東西也另外加一點 reward(但要克服雜訊)

No Reward: Learning from Demonstration

  • 有些 task 不容易去產生 reward
  • Imitation Learning:沒有 reward,而是透過 Expert 的示範(人類的操作)去學習,與監督式學習差在資料裡沒有的東西就都不知道,或是有些行為需要模仿,有些行為不需要模仿(Behavior cloning)
  • Inverse RL:讓機器去訂 Reward,從 expert 的 demonstration (Trajectory)還有 environment 反推 reward 應該長怎樣,學好 reward function 後再去訓練RL
  • 簡單的 reward function 還是有可能會訓練出複雜的 actor
  • Inverse RL 的基本概念:老師的行為是最棒的(但不是去模仿老師)
  • 當加上一些額外限制,IRL 也是有機會做出比人類還要好的結果

Reinforcement Learning Schedule
 
上一篇
读书盘点|2022年世界读书日
下一篇
如何发掘自己的潜力