Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【深度學習】08 強化學習
Search
[email protected]
May 30, 2022
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【深度學習】08 強化學習
2022 政大應數「數學軟體應用」深度學習課程 08
[email protected]
May 30, 2022
More Decks by
[email protected]
See All by
[email protected]
Contrastive Self-Supervised Learning
yenlung
0
530
【深度學習】07 生成模式和 GAN
yenlung
0
480
【深度學習】06 RNN 實務與 Transformers
yenlung
0
410
【深度學習】05 有記憶的神經網路 RNN
yenlung
0
330
【深度學習】04 圖形辨識的天王 CNN
yenlung
0
370
【深度學習】03 神經網路是怎麼學的
yenlung
0
290
【深度學習】02 AI 就是問個好問題
yenlung
0
290
咖啡沖煮簡介
yenlung
0
1.4k
深度學習入門
yenlung
0
480
Other Decks in Technology
See All in Technology
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
4
410
「顧客の声を聞かなければ何も始まらない」 ── 顧客の声から生まれた『AI返信補助機能』の開発プロセス / AICon2026_shikata_imai
rakus_dev
1
260
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
200
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
590
AI_Dev_Day_製造業領域でのAI活用から見た活用の罠と成功に導く実践知.pdf
kintotechdev
0
150
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
360
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
260
AIが実装を自走する時代の認知負債との戦い
lycorptech_jp
PRO
2
1.1k
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
140
Amazon Quick 入門!
ysuzuki
2
130
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
1
110
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
280
Featured
See All Featured
BBQ
matthewcrist
89
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building Applications with DynamoDB
mza
96
7.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
350
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
270
Fireside Chat
paigeccino
42
4k
Tell your own story through comics
letsgokoyo
1
1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
370
The SEO Collaboration Effect
kristinabergwall1
1
510
Transcript
政⼤應數。數學軟體應⽤ 蔡炎龍 強化學習 政治⼤學應⽤數學系 深度學習入⾨ 08.
RL 強化學習 23.
數學軟體應⽤ 520 強化學習 Reinforcement Learning 打造 AlphaGo 的神奇魔法
數學軟體應⽤ 521 要實例: AI 玩電動 為題的論⽂, 基本上就是教電腦玩 Atari 的遊戲。 DeepMind
Deep Q- Learning ” “ Human-level Control Through Deep Reinforcement learning 2015 年 Nature 出現⼀篇
數學軟體應⽤ 522 要實例: AI 玩電動 AI 勝過⼈類 (超過 50%) 電腦好會玩!
數學軟體應⽤ 523 要實例: AlphaGo AlphaGo 的故事 2017 年台灣⼈⼯智慧年會 AlphaGo 創始⼈之⼀黃⼠傑博⼠演講
博⼠班時期開發 Erica, 拿到電腦圍棋世界冠軍!
數學軟體應⽤ 524 要實例: AlphaGo AlphaGo Lee AlphaGo Master AlphaGo Zero
中國烏鎮 圍棋會 4:1 擊敗世界 棋王李世乭 神秘⾼⼿網 路 60 連勝 與柯潔對奕, ⼈⼯智慧與 完全⾃學的 ⼈⼯智慧, 擊 2016.3 2016.12.29 ―2017.1.4 2017.5 2017.10
數學軟體應⽤ 525 強化學習基本架構 Agent (電腦) 環境 動作 action 獎勵 reward
r t
數學軟體應⽤ 526 要學哪個函數呢? 我們以玩打磚塊為例 有幾個不 同想法!
數學軟體應⽤ 527 Policy Based π 左 1 Policy Based 右
or 狀態 S t policy function 前⾯說過, 這函 數可能很難準 備訓練資料! 動作 a t 不動 or
數學軟體應⽤ 528 Value Based 2 Value Based Q 評分 +
動作 (通常估計 reward) Value function 真的學成了, 我們 也可會知道最好 的動作是什麼!
數學軟體應⽤ 529 Value Based π(S) = arg max a Q(S,
a) 就是把所有的動作 都帶入 函數, 看 哪個最⾼分! Q 左 假設某個狀態下的 Q 值 右 停 3.2 8 4
數學軟體應⽤ 530 Deep Q-Learning Q θ 深度強化學習最常⾒的 Deep Q-Learing, 就是⽤神經網路把
函數學起來! Q S t a t Q 值
數學軟體應⽤ 531 Deep Q-Learning 大問題 訓練資料怎麼來?
深度學習原理與實務 532 A Painless Q-Learning Tutorial http://mnemstudio.org/path- finding-q-learning-tutorial.htm ⽬標就是要從某間房 間逃脫到外⾯。
數學軟體應⽤ 533 Reward 設計 1 2 3 4 5 0
100 100 100 0 0 0 0 0 0 0 0 0 0
數學軟體應⽤ 534 Reward 設計 r(St , at ) 我們需要指定 狀態
動作
數學軟體應⽤ 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
數學軟體應⽤ 536 Q 函數 我們想要找到估計某個 state, 做了 某個動作,最後 reward 會是多少。
數學軟體應⽤ 537 Q 函數 π(S) = arg maxa Q(S, a)
記得 Q 函數找到了,我們在每個狀態都很 容易可以決定最好的動作!
數學軟體應⽤ 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
深度學習原理與實務 539 接著我們的⼯作就是 ⼀直玩⼀直玩, 然後不 斷更新 Q matrix。
數學軟體應⽤ 540 Q Matrix Q(St , at ) = r(St
, at ) + γ max a Q(St+1 , a) Q 的更新公式, γ 是我們⾃⼰設的, 這裡設為 0.8。
數學軟體應⽤ 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
數學軟體應⽤ 542 Greedy Policy 不要忘了我們動作都是依 Q 來選的。 π(S) = arg
maxa Q(S, a) 現在⼤家都是 0, 為何你 會選到 5? 問題1 Greedy Policy
數學軟體應⽤ 543 Greedy Policy 還沒訓練好, 會不會都傾 向往同⼀個、可能不是 最好的⽅向走? 問題2
數學軟體應⽤ 544 ε-Greedy Policy 有 ε 的機率是⽤亂數選動作。 ε ⼤⼩有時是會調整的 (訓練越久越⼩)。
數學軟體應⽤ 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
數學軟體應⽤ 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
數學軟體應⽤ 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
數學軟體應⽤ 548 Q 最終版 1 2 3 4 5 0
500 100 400 500 320 320 320 400 400 400 400 320 256 每次往 Q 值最⼤的⽅向走
數學軟體應⽤ 549 Deep Q-Learning 簡單的說, 就是我們會讓電腦⾃⼰去玩, 然 後部份的情況我們知道 值是多少。(雖 然開始玩得很差,
這 值可能很沒⽤) 然後⽤這些知道的 值當訓練資料, 完整 的 函數⽤深度學習的⽅式學起來! Q Q Q Q 簡單的說就是⾃⼰⽣訓練資 料⾃⼰學, 所以應該叫 self- supervised learning! LeCun
數學軟體應⽤ 550 玩了以後就有⼀些訓練資料 Q θ [(S 1 , a 1
), Q 1 ], [(S 2 , a 2 ), Q 2 ], … 雖然⼤部份的情況 我們都沒碰過, 不 過就⽤⼀個神經網 路把它學起來!
數學軟體應⽤ 551 訓練資料的 Q 值 認真想想, 訓練資 料的 Q 值不太好
算... Q(S t , a t ) = r t + r t+1 + ⋯ + r T 常常寫成 G t 缺點是要完整的 episode (完整玩⼀次的過程) 蒙地卡羅 Monte-Carlo (MC) 法
數學軟體應⽤ 552 訓練資料的 Q 值 我們常常會乘上⼀ 個 discount 。 γ
Q(S t , a t ) = r t + γ ⋅ r t+1 + ⋯ + γT−t ⋅ r T 這樣不管在級數的收斂啦, 對 未來比較沒有那麼確定的狀況 啦等等, 都考 進去。 蒙地卡羅 Monte-Carlo (MC) 法
數學軟體應⽤ 553 訓練資料的 Q 值 這裡假設我們後 ⾯都⽤「最佳 的」玩。 Q(S t
, a t ) = r t + γ ⋅ max a∈ {Q(S t+1 , a)} 認真想想, 這個時間點的 值, 基本上就是立即得到的 , 加上下⼀次的 值。 t Q r t Q Temporal-Difference (TD) 法
數學軟體應⽤ 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
數學軟體應⽤ 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
數學軟體應⽤ 556 仔細想想, 這是「⾃⼰學⾃⼰」的過程 為了⽅便, 我們把上次 參數的狀態叫 , 現在 正要更新的叫
。 θ− θ Q θ Q θ− 舊版 更新版
數學軟體應⽤ 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 間的⼀個數。 γ
數學軟體應⽤ 558 仔細想想, 這是「⾃⼰學⾃⼰」的過程 Q θ 有這些訓練資料, 我 們就可以好好去訓練 我們的神經網路了!
做 gradient descent 時就是 ⽤舊版 ⽣出的訓練資料! Q
數學軟體應⽤ 559 Greedy Policy π(S) = arg max a Q(S,
a) 當 函數學成時, 我們完完全全 讓電腦依 函數決定最好的動 作, 這叫 greedy policy! Q Q 讓電腦去玩, ⽣訓 練資料時其實還 有件事要注意。
數學軟體應⽤ 560 -Greedy Policy ε 這裡還有個問題... 開始的時候, 電腦要依什麼 規則玩? 不要忘了我們的
函數還爛得不得了啊... Q
數學軟體應⽤ 561 -Greedy Policy ε 取⼀個 , 我們每次要做個動作 時, 取⼀個
0 到 1 間的亂數 。 ε ∈ [0,1] r { r > ε r ≤ ε Greedy Policy (⽤ 函數決定) Q 亂亂玩! 開始的時候 設⼤⼀ 點。 ε
數學軟體應⽤ 562 我們真的不能直接學 Policy 嗎? 畢竟 Q-Learning 還是有個缺點, 就 是無限多個
(比如連續的) 動作選擇, 就很難做到。 (注意不是不是 函數本⾝不能訓練, ⽽是很難⽤來選最佳動作。) Q
數學軟體應⽤ 563 我們真的不能直接學 Policy 嗎? π θ 我不知道任何情況 的正確答案, 但是我
就是要學這個函數! 左 右 停 糟糕, 好熟悉的句⼦...
數學軟體應⽤ 564 我們真的不能直接學 Policy 嗎? 想想其實我們⽬標很清楚 (要極⼤化 reward), 是不是可以把我們的⽬標, 放在...
呃, ⽬標函數? Gradient Policy
數學軟體應⽤ 565 Gradient Policy π θ 左 右 停 J(θ)
就是設計個和 π 有關的⽬標函數!
數學軟體應⽤ 566 Gradient Policy J(θ) = V πθ 簡單啦, 就是最⼤
化我們的 state value!
數學軟體應⽤ 567 Gradient Policy 我不會算啊... J(θ) = V πθ 問題是...
數學軟體應⽤ 568 Gradient Policy 如果說我們有個遊戲的過程片段 trajectory (常常就是⼀個 episode, 但 epsode
⼀般是要完整從頭到尾)。 τ = {S 1 , a 1 , r 1 , S 2 , a 2 , r 2 , …, S T , a T , r T }
數學軟體應⽤ 569 Gradient Policy R(τ) = T ∑ t=1 r
t 可是, 這和我們 的 π 無關啊! 我們好像就會算這系列動作的得 分, ⽬標是要最⼤化...
數學軟體應⽤ 570 Gradient Policy ⼀個想法是, 我們神經網路做得 和真的⼀樣, 那會得這麼多分。 所以得分⾼就越像越好... R(τ)
⋅ T ∑ t=1 − log π θ (a t |S t ) 然後就可以做 gradient descent!
數學軟體應⽤ 571 Gradient Policy 最後我們好幾個實際的 trajectory 就加總。另外就是我 們可以考慮計分更細膩。 R(τ) ⋅
T ∑ t=1 − log π θ (a t |S t )
數學軟體應⽤ 572 Actor-Critic 甚⾄再訓練個 value function! T ∑ t=1 −
Q θ′ (S t , a t )log π θ (a t |S t )
數學軟體應⽤ 573 總之, 不知道答案我們也可以學! 不管是 Deep Q Learning, 或是 Policy
Gradient, 我們都是在沒 有⼈為準備訓練資料的情況, 讓電 腦⾃⼰去學習!
數學軟體應⽤ 574 範例: ETF ⾃動交易系統 陳非霆 卷積深度 Q-學習之 ETF ⾃動交易系統
Q θ 我也會買賣股票!
數學軟體應⽤ 575 範例: ETF ⾃動交易系統 選定一支 ETF 開始 20,000 美金
經過一年 (最後手上還有 ETF 就全賣) 使用 Deep Q-Learning 基本設定
數學軟體應⽤ 576 範例: ETF ⾃動交易系統 過去 20 天的資料 (20x6 的矩陣)
1 2 3 4 5 買 20 單位 買 10 單位 不做交易 賣 10 單位 賣 20 單位 五種 actions 狀態 S t 動作 a t
數學軟體應⽤ 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% 交易結果 * 「無腦法」正確的名稱是「買入持有策略」
數學軟體應⽤ 615 Q & A 有問題嗎?