Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【深度學習】08 強化學習

【深度學習】08 強化學習

2022 政大應數「數學軟體應用」深度學習課程 08

[email protected]

May 30, 2022
Tweet

Other Decks in Technology

Transcript

  1. 數學軟體應⽤ 521 要實例: AI 玩電動 為題的論⽂, 基本上就是教電腦玩 Atari 的遊戲。 DeepMind

    Deep Q- Learning ” “ Human-level Control Through Deep Reinforcement learning 2015 年 Nature 出現⼀篇
  2. 數學軟體應⽤ 524 要實例: AlphaGo AlphaGo Lee AlphaGo Master AlphaGo Zero

    中國烏鎮 圍棋會 4:1 擊敗世界 棋王李世乭 神秘⾼⼿網 路 60 連勝 與柯潔對奕, ⼈⼯智慧與 完全⾃學的 ⼈⼯智慧, 擊 2016.3 2016.12.29 ―2017.1.4 2017.5 2017.10
  3. 數學軟體應⽤ 527 Policy Based π 左 1 Policy Based 右

    or 狀態 S t policy function 前⾯說過, 這函 數可能很難準 備訓練資料! 動作 a t 不動 or
  4. 數學軟體應⽤ 528 Value Based 2 Value Based Q 評分 +

    動作 (通常估計 reward) Value function 真的學成了, 我們 也可會知道最好 的動作是什麼!
  5. 數學軟體應⽤ 529 Value Based π(S) = arg max a Q(S,

    a) 就是把所有的動作 都帶入 函數, 看 哪個最⾼分! Q 左 假設某個狀態下的 Q 值 右 停 3.2 8 4
  6. 數學軟體應⽤ 533 Reward 設計 1 2 3 4 5 0

    100 100 100 0 0 0 0 0 0 0 0 0 0
  7. 數學軟體應⽤ 535 Reward Matrix 0 1 2 3 4 5

    0 -1 -1 -1 -1 0 -1 1 -1 -1 -1 0 -1 100 2 -1 -1 -1 0 -1 -1 3 -1 0 0 -1 0 -1 4 0 -1 -1 0 -1 100 5 -1 0 -1 -1 0 100 動作 State
  8. 數學軟體應⽤ 537 Q 函數 π(S) = arg maxa Q(S, a)

    記得 Q 函數找到了,我們在每個狀態都很 容易可以決定最好的動作!
  9. 數學軟體應⽤ 538 Q Matrix 0 1 2 3 4 5

    0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 動作 State 狀況沒幾個, 很容易⽤矩陣表⽰, ⼀開始全設為 0
  10. 數學軟體應⽤ 540 Q Matrix Q(St , at ) = r(St

    , at ) + γ max a Q(St+1 , a) Q 的更新公式, γ 是我們⾃⼰設的, 這裡設為 0.8。
  11. 數學軟體應⽤ 541 Q Matrix Episode 1 0 1 2 3

    4 5 0 0 0 0 0 0 0 1 0 0 0 0 0 100 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 假設從狀態 1 開始, 例如我們選擇動作是往 5 號走。 1 3 5 100 100 0 0 0 Q(1, 5) = r(1, 5) + γ · max(Q(5, 1), Q(5, 4), Q(5, 5)) 100 0.8 0 0 0
  12. 數學軟體應⽤ 542 Greedy Policy 不要忘了我們動作都是依 Q 來選的。 π(S) = arg

    maxa Q(S, a) 現在⼤家都是 0, 為何你 會選到 5? 問題1 Greedy Policy
  13. 數學軟體應⽤ 545 Q Matrix 0 1 2 3 4 5

    0 0 0 0 0 0 0 1 0 0 0 0 0 100 2 0 0 0 0 0 0 3 0 80 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 100 0 0 0 1 3 4 5 100 100 100 0 0 0 0 0 0 假設從狀態 3 開始, 例如我們 選擇動作是往 1 號走。 Episode 2
  14. 數學軟體應⽤ 546 Q Matrix 0 1 2 3 4 5

    0 0 0 0 0 0 0 1 0 0 0 0 0 100 2 0 0 0 0 0 0 3 0 80 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 0 1 3 4 5 100 100 100 0 0 0 0 0 0
  15. 數學軟體應⽤ 547 Q Matrix 0 1 2 3 4 5

    0 0 0 0 0 400 0 1 0 0 0 320 0 500 2 0 0 0 320 0 0 3 0 400 256 0 400 0 4 320 0 0 320 0 500 5 0 400 0 0 400 500 0 1 3 4 5 100 100 100 0 0 0 0 0 0
  16. 數學軟體應⽤ 548 Q 最終版 1 2 3 4 5 0

    500 100 400 500 320 320 320 400 400 400 400 320 256 每次往 Q 值最⼤的⽅向走
  17. 數學軟體應⽤ 549 Deep Q-Learning 簡單的說, 就是我們會讓電腦⾃⼰去玩, 然 後部份的情況我們知道 值是多少。(雖 然開始玩得很差,

    這 值可能很沒⽤) 然後⽤這些知道的 值當訓練資料, 完整 的 函數⽤深度學習的⽅式學起來! Q Q Q Q 簡單的說就是⾃⼰⽣訓練資 料⾃⼰學, 所以應該叫 self- supervised learning! LeCun
  18. 數學軟體應⽤ 550 玩了以後就有⼀些訓練資料 Q θ [(S 1 , a 1

    ), Q 1 ], [(S 2 , a 2 ), Q 2 ], … 雖然⼤部份的情況 我們都沒碰過, 不 過就⽤⼀個神經網 路把它學起來!
  19. 數學軟體應⽤ 551 訓練資料的 Q 值 認真想想, 訓練資 料的 Q 值不太好

    算... Q(S t , a t ) = r t + r t+1 + ⋯ + r T 常常寫成 G t 缺點是要完整的 episode (完整玩⼀次的過程) 蒙地卡羅 Monte-Carlo (MC) 法
  20. 數學軟體應⽤ 552 訓練資料的 Q 值 我們常常會乘上⼀ 個 discount 。 γ

    Q(S t , a t ) = r t + γ ⋅ r t+1 + ⋯ + γT−t ⋅ r T 這樣不管在級數的收斂啦, 對 未來比較沒有那麼確定的狀況 啦等等, 都考 進去。 蒙地卡羅 Monte-Carlo (MC) 法
  21. 數學軟體應⽤ 553 訓練資料的 Q 值 這裡假設我們後 ⾯都⽤「最佳 的」玩。 Q(S t

    , a t ) = r t + γ ⋅ max a∈ {Q(S t+1 , a)} 認真想想, 這個時間點的 值, 基本上就是立即得到的 , 加上下⼀次的 值。 t Q r t Q Temporal-Difference (TD) 法
  22. 數學軟體應⽤ 554 訓練資料的 Q 值 (S t , a t

    , r t , S t+1 ) 於是我們可以做 Exprience Replay。 Q(S t , a t ) = r t + γ ⋅ max a∈ {Q(S t+1 , a)} 有⼀次我們玩到 的狀態, 做 了 的動作, 只需要再知道當 下的 reward , 還有下⼀次的 狀態 是什麼, 就可以更新 值! S t a t r t S t+1 Q
  23. 數學軟體應⽤ 555 訓練資料的 Q 值 (S t , a t

    , r t , S t+1 ) 因此就是讓電腦⼀ 直玩⼀直玩! Q(S t , a t ) = r t + γ ⋅ max a∈ {Q(S t+1 , a)} 我們只要每步都收集到這⼩⼩ 片段, 就可以準備訓練 的資 料。 Q
  24. 數學軟體應⽤ 557 仔細想想, 這是「⾃⼰學⾃⼰」的過程 有了⼀筆經驗 , 我 們會有⼀筆訓練資料是這樣... (S t

    , a t , r t , S t+1 ) Q θ− (S t , a t ) r t + γ max a∈ (S t+1 , a) 再⼀次, 值是我們⾃⼰定的 discount, 通常是 0 到 1 間的⼀個數。 γ
  25. 數學軟體應⽤ 559 Greedy Policy π(S) = arg max a Q(S,

    a) 當 函數學成時, 我們完完全全 讓電腦依 函數決定最好的動 作, 這叫 greedy policy! Q Q 讓電腦去玩, ⽣訓 練資料時其實還 有件事要注意。
  26. 數學軟體應⽤ 561 -Greedy Policy ε 取⼀個 , 我們每次要做個動作 時, 取⼀個

    0 到 1 間的亂數 。 ε ∈ [0,1] r { r > ε r ≤ ε Greedy Policy (⽤ 函數決定) Q 亂亂玩! 開始的時候 設⼤⼀ 點。 ε
  27. 數學軟體應⽤ 562 我們真的不能直接學 Policy 嗎? 畢竟 Q-Learning 還是有個缺點, 就 是無限多個

    (比如連續的) 動作選擇, 就很難做到。 (注意不是不是 函數本⾝不能訓練, ⽽是很難⽤來選最佳動作。) Q
  28. 數學軟體應⽤ 565 Gradient Policy π θ 左 右 停 J(θ)

    就是設計個和 π 有關的⽬標函數!
  29. 數學軟體應⽤ 568 Gradient Policy 如果說我們有個遊戲的過程片段 trajectory (常常就是⼀個 episode, 但 epsode

    ⼀般是要完整從頭到尾)。 τ = {S 1 , a 1 , r 1 , S 2 , a 2 , r 2 , …, S T , a T , r T }
  30. 數學軟體應⽤ 569 Gradient Policy R(τ) = T ∑ t=1 r

    t 可是, 這和我們 的 π 無關啊! 我們好像就會算這系列動作的得 分, ⽬標是要最⼤化...
  31. 數學軟體應⽤ 573 總之, 不知道答案我們也可以學! 不管是 Deep Q Learning, 或是 Policy

    Gradient, 我們都是在沒 有⼈為準備訓練資料的情況, 讓電 腦⾃⼰去學習!
  32. 數學軟體應⽤ 575 範例: ETF ⾃動交易系統 選定一支 ETF 開始 20,000 美金

    經過一年 (最後手上還有 ETF 就全賣) 使用 Deep Q-Learning 基本設定
  33. 數學軟體應⽤ 576 範例: ETF ⾃動交易系統 過去 20 天的資料
 (20x6 的矩陣)

    1 2 3 4 5 買 20 單位 買 10 單位 不做交易 賣 10 單位 賣 20 單位 五種 actions 狀態 S t 動作 a t
  34. 數學軟體應⽤ 577 範例: ETF ⾃動交易系統 CDQN 無腦法 CDQN 無腦法 ETF1

    17.71% 10.89% ETF11 10.76% 5.26% ETF2 16.53% 12.6% ETF12 10.19% 13.17% ETF3 16.3% 0.35% ETF13 7.8% 1.42% ETF4 14.4% 13.25% ETF14 6.23% 3.56% ETF5 14.3% 12.7% ETF15 5.73% 4.61% ETF6 13.91% 13.37% ETF16 3.78% -12.76% ETF7 13.17% 10.52% ETF17 2.85% 5.83% ETF8 12.35% 17.07% ETF18 1.59% -4.45% ETF9 11.68% 10.81% ETF19 1.07% -18.09% ETF10 11.09% 8.14% ETF20 -0.59% -0.75% 交易結果 * 「無腦法」正確的名稱是「買入持有策略」