Reinforcement-Learning

orozcohsu 209 views 72 slides Dec 25, 2020
Slide 1
Slide 1 of 72
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72

About This Presentation

Reinforcement-Learning introduction


Slide Content

淺談
REINFORCEMENT
LEARNING
(上)
OROZCO HSU
2019-11-28
1

課程說明
•REINFORCEMENT LEARNING (上)
–介紹原理與應用
–討論Q-Function/ Q-Value與Policy
•REINFORCEMENT LEARNING (中)
–利用CNN自動抓取特徵值
–透過DQN逼進最佳決策
•REINFORCEMENT LEARNING (下)
–以監督式學習模型為基礎,搭配 DQN進行最佳
Action 值
2

大綱
•Reinforcement Learning介紹與應用
•Q-learning
•Deep Q-Network (淺談)
3

下載練習檔
•下載
–https://github.com/orozcohsu/2019-ntunhs-rl-01.git
4

REINFORCEMENT LEARNING
介紹與應用
5

REINFORCEMENT LEARNING
•強化學習 (RL)
–關注的是做出 好決策
•監督式學習和非監督式學習
–關注的是做出預測
6

REINFORCEMENT LEARNING
•監督式學習( supervised learning)
–是由人給定 標記好的資料,讓機器學習正確答案並作為 推論根據 。
這種學習方法是立 基於人的標記 ,資料標記過程需要花費 大量時間
與資源,機器只能根據已標記的特徵來學習,完成指定的任務,如
語音轉文字、分類圖像、物件辨識等
•強化學習( Reinforced Learning)
–透過獎勵與懲罰 的機制,讓機器在虛擬情境中 不斷試錯 (trial and
error),累積經驗來學習。這種學習方式在競技比賽裡表現良好、
甚至能勝過人類,但學習效率極低
–舉例來說,人類在 15分鐘內能領略的任一款 Atari遊戲,機器卻平均
要花83小時才能學會,在臉書研發的虛擬圍棋遊戲 ELF OpenGo中,
更要用2000個GPU訓練14天,更別提要訓練 200年才學得會的星海爭
霸遊戲( StarCraft)
7

REINFORCEMENT LEARNING
•三位大神的加持
–Hinton、Bengio、LeCun在Nature上發表的 Deep
Learning綜述一文最後也將 Deep Reinforcement
Learning 作為未來 Deep Learning 的發展方向
–AlphaGo横空出世,將進一步推動 Deep Reinforcement
Learning的發展
8

REINFORCEMENT LEARNING
9
Agent 的目標是藉由與 Environment 不斷互動及獲得 Reward,學會最佳
Policy,即是Agent 根據身處的 State 決定進行最佳 Action 的策略

REINFORCEMENT LEARNING
•知道了整個過程,任務的目標就出來了,那就是要能得到 盡可能多
的Reward
•獲取Reward就是一個量化的標準, Reward越多,就表示 執行的越好
•每個時間片段, Agent都是根據當前個觀察 來確定下一步的動作
•觀察Observation的集合就作為 Agent的所處的State
10

REINFORCEMENT LEARNING
•狀態State和動作Action存在映射關係,也就是 一個State可以對應
一個Action,或者對應不同動作的機率
•機率最高的就是 最值得執行的動作
•而狀態State到動作Action的過程就稱為一個 策略Policy
11

OPENAIGYM
•特斯拉CEO埃隆·馬斯克( Elon Musk)和創業孵化器 Y Combinator總
裁山姆·奧特曼(Sam Altman)創建了人工智慧公司 OpenAI,並表示
將開源其研究成果分享給研究人工智慧的每一個人
•是一家非盈利性人工智慧研究公司,我們都在致力於進行非監督式
學習和強化學習的研究。我們的使命和長期目標是以將最大限度地
造福全人類的方式發展人工智慧
•將如何讓AI研究者更容易地設計、疊代、優化他們下一代的應用程式
12

OPENAIGYM
•人們可以將他們在這些環境中的訓練結果發布到 OpenAI網站上並分享
他們的代碼
•這個網站的目的是讓人們能簡單地疊代並優化他們的 RL算法,並對什
麼算法才是有效的算法有一個概念
•小作品
–https://www.facebook.com/orozco.hsu/videos/10156372337251631/?t=1
13
Multi-Agent Hide and Seek
https://www.youtube.com/watch?v=kopoLzvh5jY

其他模擬環境
•MuJoCo
–http://mujoco.org/
14

其他模擬環境
•Rllab
–https://github.com/rll/rllab
15

其他模擬環境
•DeepMind Lab
–https://deepmind.com/research/publications/deepmind-lab
16

其他模擬環境
•TORCS
–https://sourceforge.net/projects/torcs/
17

其他模擬環境
•PySC2
–https://github.com/deepmind/pysc2
18

應用
•用於業務管理問題,例如以利潤最高為考量,如何決定一家商店應
該持有多少庫存商品 ?
–搭配既有的預測模型,進行自變數的值該多少 ?
•機器人控制問題上 (Robot Process Automation),這個領域最近有了
非常快速的發展
19

玩遊戲
•由DeepMind在NIPS 2013提出DQN
–Deep Q-Network算法
•將純圖像輸入,透過機器學習來玩遊戲
–https://www.youtube.com/watch?v=V1eYniJ0Rnk
–https://www.youtube.com/watch?v=5GMDbStRgoc
20

延伸閱讀
•Playing Atari with Deep Reinforcement Learning
–https://arxiv.org/abs/1312.5602
•使用增強式學習法改善一個簡易的臺灣股價指數期貨當沖交易系統
–https://www.csie.ntu.edu.tw/~lyuu/theses/thesis_r96922100.pdf
•AI交易模型
–https://www.stockfeel.com.tw/ai%E4%BA%A4%E6%98%93%E6%A8
%A1%E5%9E%8B%E2%80%8A -
%E2%80%8A%E5%BC%B7%E5%8C%96%E5%AD%B8%E7%BF%92/
•Python財務程式分析設計
–https://www.datacamp.com/community/tutorials/finance-python-
trading
21

Q-LEARNING
22

練習環境
•開啟Anaconda,並且建立 python練習環境
•套件安裝
–python3.7
–numpy
–matplotlib
–gym
•pip install gym
–pyopengl
–jupyter
23

練習環境
•完成後執行,你可以看到一個簡單的倒立擺動畫,儘
管很快就跑飛了,因為沒有控制演算法
•這個例子僅僅是為了你 檢測下Gym是否安裝成功
•開啟:
–北護_gym1.ipynb
24

遊戲說明
•遊戲:CartPole-v0
•種類:經典遊戲
•Obs features:
•Actions:
25
•Episode termination:
•Pole Angle is more than ±12°
•Cart Position is more than ±2.4
(center of the cart reaches the
edge of the display)
•Episode length is greater than
200

遊戲說明
•遊戲的step函數返回訊息
–Observation 、Reward 、Done 、Info
•Observation: 描述一個環境的狀態
•Reward: 執行行為產生的回報
•Done: 判斷是否到了需要重新定義環境的狀態
•Info: debug用的資訊
•開啟:
–北護_gym2.ipynb
26

遊戲說明
•自建Action參考的Policy
–如果柱子向左 (角度<0),則小車左移保持平衡,否則右移
•讓Agent 根據經驗學習
–Q-learning with Q-table
•開啟:
–北護_gym3.ipynb
•作業:
–請參考完成一個程式畫出滑車如何利用 Q-Table來保持平衡
–作業名稱:北護_RL_homework1.ipynb
27

Q-LEARNING WITH Q-TABLE
•為了學習在某個 State之下做出好的 Action我們定義所謂的 Q-function
–表示:Q(s,a)
•根據身處的 State,進行Action,預期未來會得到的總 Reward
–求出最佳 Q-function => Q*(s,a)
•Agent 在任何State 之下,只要挑選能最大化未來總 Reward的Action,
即能在任務中獲得最大 Reward
•找到最佳的Q-function 的過程正是 Q-learning
28

Q-LEARNING WITH Q-TABLE
•學習Q-function前,要先知道如何表示 Q-function,不難發現 Q-
function 有遞迴特質,可以用遞迴表示 :
•即是當前Reward和進入下一個 State後所能獲得最大 Discount Reward
–max_a’ Q(s’, a’) 的和
•這邊的γ稱為Discount Factor,可以說是對未來 Reward的重視程度
–γ越低,表示 Agent 覺得未來獲得的 Reward太遙遠, 不足以在當前State
的決策過程中佔有 太大份量 ,也越重視當前 所獲得的 Reward
29

Q-LEARNING WITH Q-TABLE
•接著Agent要藉由一次次跟Environment 互動中獲得的 Reward來學
習Q-function
•起初Agent一無所知時, Q-function 的參數都是 隨機的
•接著從跟Environment互動的每一步,慢慢 更新參數,逼近我們要
的最佳Q-function
30

Q-LEARNING WITH Q-TABLE
•上述公式中 Learned value是每次Action 帶來的新資訊
•不建議直接取代舊資訊,而是 每次更新α這麼多比率的新資訊 ,
保留(1-α)比率的舊資訊,最終逐漸 收斂
31

Q-LEARNING WITH Q-TABLE
•ε-greedy是一種在 Exploration 和Exploitation 間取得平衡的方法
•Exploration是讓Agent大膽嘗試不同 Action,確保能夠 吸收新知
•Exploitation是讓Agent保守沿用現有 Policy,讓學習過程收斂
•方法很簡單:
–ε 是隨機選擇 Action的機率,所以平均上有 ε 機率的時間 Agent會嘗試
新Action
–(1 -ε)機率的時間 Agent會根據現有 Policy 做決策
•我們的目標是學習到最佳 Q-function,過程中以 ε-greedy方法與
Environment 互動,從中獲得 Reward以更新Q-table裡的Q-value
32
參考:https://zh.wikipedia.org/wiki/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95

Q-LEARNING WITH Q-TABLE
•將每個State-Action pair的Q-value存在table裡,直接查找或更新,即
是所謂Q-table
•不過這個方法的壞處是 table大小有限,不適用於 State和Action過多的
任務
•Q-table就是一個以 State和Action儲存Q-value表格,不過在 State和
Action有限且不過多的情況下,這個表格才有可能被建立
–例如CartPole 問題中State只有四個 feature,每個的值都在有限範圍內
(或是可以固定在有限範圍), Action更只有兩個值
•但現實世界中, Q-table又大又複雜,用 深度學習網路去逼近
Q-function,即DQN,如此一來就不會有容量限制了
33

Q-LEARNING WITH Q-TABLE
•如果我們的 State來自遊戲畫面,或圍棋棋盤呢 ?
–可以選擇根據任務原理,很辛苦又可能徒勞無功的把 環境簡化成幾
個有效的 feature 當作State
–或是選擇用 DQN幫我們提取 feature並逼近我們要的 Q-function
•深度學習網路就是藉由不斷被餵食 input-output pair 後,最終逼
近input-output 對應關係的 function
–即f(input) = output
–轉成policy π(state) = Action 的形式
34

DEEP Q-NETWORK
35

DEEP Q-NETWORK
•由Neural Network 取代Q-table 的
好處是, Neural Network 可以搭配
不同變形,從 龐大的State、space
中自動提取特徵
•經典Atari即是以CNN直接以遊戲畫
面的raw pixel下去訓練
•這是Q-table 辦不到的
•開啟:
–北護_gym4.ipynb
36

額外參考
37

基本假設條件
•一開始不知道最優的策略是甚麼,因此往往從隨機的策略開始,使
用隨機的策略進行試驗,就可以得到一系列的狀態、動作、反饋
•這就是一系列的樣本, RL算法就是需要根據這些樣本來改進策略,
從而使得樣本中的 Reward更好
38

基本假設條件
•RL研究建立在經典物理學的範疇上,時間是可以分割成一個一個
時間切片,並且有先後順序 :
•RL的世界,輸入與輸出的值都要是確定的
•例如:有一個機械手臂練習丟 骰子,以擲出 6點作為目標。 但無論
機械手臂如何調整其關節的角度及 扭矩,擲出的點數永遠都是隨機

39

馬可夫性質
•維基百科
–當一個隨機過程在給定現在狀態及所有過去狀態情況下,其未來狀態
的條件機率分布僅依賴於當前狀態;換句話說,在給定現在狀態時,
它與過去狀態(即該過程的歷史路徑)是條件獨立的,那麼此隨機過
程即具有馬可夫性質。具有馬可夫性質的過程通常稱之為馬可夫過程
•Agent是因為環境的變化,進而做出選擇,且儘可能地讓選擇的價值
最大,而非去預測環境會怎麼變化
–玩牌時不會預測得到什麼牌,而是針對拿到的牌決定出牌策略
40

馬可夫決策過程
MARKOV DECISION PROCESS
•馬可夫決策過程與狀態、動作有關
•如果狀態與動作是有限的,那就稱為有限馬可夫決策過程 (finite
MDP)
–給定一組MDP,我們就可以預測下一組動作 (根據當前的狀態和轉
移到的機率 )
–透過迭代,最終可以預測出 所有可能的未來
–也稱為State-Action pair
41

馬可夫決策過程
MARKOV DECISION PROCESS
•在一個狀態 s下所採取的動作 a,並且會得到下一個狀態 s’與回饋r
•我們如果知道了轉移機率 P,也就是我們稱為的模型,有了模型
就可以預測了, R是回饋,λ是discount factor折扣因子,一般小於
1,所以當下的回饋比較重要,隨時間越久,越不重要
42
Gt:總獎勵 (R1+R2+….RT,T=最終時間步驟 )

價值函數
VALUE FUNCTION
•實際上,除非整個過程結束,否則我們無法獲取所有回饋組合,
來計算每個狀態的回饋
•因此,引入一個概念,價值函數 Value Function,用來表示一
個狀態未來的潛在價值
•狀態價值函數
43
vπ(s) 表示在狀態 s 底下的策略 π 所表示出的狀態 (狀態價值函數 ),我們從狀態 s
依據策略 π 進行決策所會獲得的價值的期望 E

價值函數
VALUE FUNCTION
•動作價值函數
•價值函數 vπ(s) 我們將Gt 進行展開,展開到最後
44

優化價值函數
OPTIMAL VALUE FUNCTIONS
•強化學習問題的本質在於決定出一個最好的策略
而價值函數定義出了策略的價值,因此我們可以有許多策略
•假設我們有兩個策略 π、π’,如果vπ(s) ≥ vπ′(s) 我們可以說策略 π
是最好的
•在每個狀態下我們可以說至少有一個策略 π 的價值>= 其他的策
略,表示為 π∗
45

優化價值函數
OPTIMAL VALUE FUNCTIONS
•每個狀態底下都會有一個最佳的動作存在,表示為 v∗
•也有最佳的動作價值函數, q∗
•狀態動作對 (State-Action pair)來說,要表示出在狀態 s 底下選擇 a
的期望回報,我們可以將 q∗由v∗表示出來
46

優化價值函數
OPTIMAL VALUE FUNCTIONS
•再次說明,狀態價值函數是 State對應多種Action的Reward的期望
值。動作價值函數是執行完 Action之後得到的 Reward
•以上表示,表明 value function是可以通過迭代進行計算的
47

MULTI-ARM BANDITS
•今天你有一千個硬幣可以去一間店玩拉霸機,假設你已經玩到
500次了,那麼接下來,你該如何選擇動作?
48

MULTI-ARM BANDITS
•貪婪行為 (Greedy action)
–繼續選擇獎勵最大的那次動作
–稱之為Exploiting(利用)
•如果不是貪婪行為
–稱之為Exploring(探索)
•透過Exploiting,我們可以保證這一次的動作獎勵是最大的,但長
遠來看,我們可以會因為沒有探索而失去得到更好獎勵的機會
49

策略POLICY
•訓練的過程中,我們必須要決定出一個機率,讓他決定何時該
Exploiting,何時該Exploring
•在一般的情況下,我們總是選擇目前已知會得到最大回報的貪婪
行為,但每隔一段時間,就會選擇該去進行其他未知的動作
•我們用ε來表示機率,稱之為: ε-greedy
ε越大,就表示進行 Exploring的次數可能越多
50

策略POLICY
51

策略POLICY
•引出價值函數,對於獲取最優的策略 Policy這個目標,有 3種常用
的方法
–值接優化策略, 使得回饋更高
–通過估計 value function來間接獲得優化策略。例如 :既然我知道每一
種狀態的優劣,那們我就知道應該怎麼選擇了,而這種選擇就是我
們想要的策略
–融合上述兩種,稱為 Actor-Critic算法
•DQN就是基於 value function的算法
52

策略POLICY
•能計算動作價值函數是不夠的,因為我們需要的是最優策略,求
解最優策略等於就是求解最優的 value function
–Policy-Based
–Model-Based
•一個就是值接計算策略函數,一個是估計模型,也就是計算出狀
態轉移函數,從而整各 MDP過成得解
53

策略POLICY
•動態規劃(DP)指的是給出一組完美的環境模型後可以算出優化策
略的方法
•動態規劃將問題分為好幾個子問題,並將他儲存成方案
•動態規劃因為受限於需要模型所以實務上比較難用
54

策略POLICY
•Policy Iteration一般分成兩個步驟
–Policy Evaluation 策略評估,目的是更新 value function,也就是基於
當前策略的價值進行更好的估計
–Policy Improvement 策略改進,使用 greedy policy 產生新的樣本用於
第一步的策略評估
55

TEMPORAL-DIFFERENCE LEARNING
•TD-learning結合了動態規劃以及蒙特卡羅兩者的優點
•動態規劃(DP)的很大缺點就是必須要有模型 (model-based),但蒙
特卡羅以及 TD-learning則不需要,也就是說這兩者都是 model-free
的模型
•Monte Carlo Learning
–適用於情境( episodes)方面的學習
–從經驗中學習,不需要知道模型為何
56
蒙特卡羅的策略函數是由每次結束 (episodes)狀態所獲得的獎勵來更新的,透過不斷的修正,最終可以使策略函數越來越準確

TEMPORAL-DIFFERENCE LEARNING
•TD-learning可以算是蒙特卡羅的強化版
•蒙特卡羅每次更新時必須要等到一個 episodes的結束,所以相對
的效率會較差,而 TD-learning則不需要

特色就是在每一次狀態結束時就立即更新策略
57

ON-POLICY及OFF-POLICY
•On-policy意即從同一策略的經驗中學來並改進
•Off-policy則是從其他地方學習來,就像真的在學習一樣
•Sarsa
–On-policy的學習方法,我們必須要能夠對當前的 s 以及a 進行估計,
也就是得到動作價值函數 qπ(s,a)
58

ON-POLICY及OFF-POLICY
•Q-Learning是一種Off-policy的學習方法
•off-policy的優點就在於,可以重複利用舊有的策略,來不停的試

•差異在於Q-Learning直接計算所有並貪婪的選擇最大的動作價值
函數Q
59

Q-LEARNING
•要確定如何存儲 Q值,最簡單的想法就是用矩陣
•一個State、一個Action對應一個Q值
•Q值想像為一個很大的表格
60

Q-LEARNING
•Step 1:初始化 Q矩陣,預設為 0
•Step 2:開始學習,根據當前 Q矩陣及 方法獲取
Action
•比如當前處在狀態 s1,那麼在s1欄位中,每一個Q值都是0,這
個時候怎麼選擇都可以
61

Q-LEARNING
•假設我們選擇 a2動作,然後得到的 Reward是1,並且進入到 s3狀態,
接下來我們就要根據以下公式計算
•假設計算結果是 1,於是更新Q值
•計算結果如下
62

Q-LEARNING
•Step 3:繼續進入 下一次動作,這次的狀態 s3,假設選擇動作 a3,
然後得到1的Reward,狀態變成 s1,那麼我們同樣進行更新
•於是Qtable就變成
63

Q-LEARNING
•反覆上述作法, Q值在試驗的同時返覆更新,直到收斂
•接下来,我們將 Q-Learning拓展到DQN
•現實生活中有很多狀態,因此使用表格 (Q-Table)來表示Q(s,a)幾
乎是不可行的,因為狀態實在太多,表格根本存不下,因此稱為
維度災難
64

維度災難
•輸入原始圖像數據 (210X160)
•輸出幾個按鍵動作
•電腦玩Atari遊戲,這種情況下,有多少種狀態 ?
•如果每一秒鐘的狀態都不一樣,那們每一個像素有 256種選擇,狀
態共有:
•因此我們要對狀態維度進行壓縮,也就是找出價直函數近似值
–Value Function Approximation
65

價值函數近似值
VALUE FUNCTION APPROXIMATION
•就是用一個函數來表示 Q(s,a)
•f可以是任意 類型的函數 ,比如線性函數,
66

價值函數近似值
VALUE FUNCTION APPROXIMATION
•通過函數表示,我們就可以不管 State到底是多大的 維度,反正最
後都通過矩陣運算降維輸出 :
•近似的原因是我們並不知道 Q的得實際分佈情況 :
67
用來統一表示函數 f的參數

價值函數近似值
VALUE FUNCTION APPROXIMATION
•對於Atari遊戲而言,這是一個高維狀態輸入 (原始圖像),低維度動
作輸出
•輸出的值,就是每一個動作的 Q值,也就是輸出一個向量 :
•輸出是一個值,只不過是包含了所有動作的 Q值之向量:
•因此,只要輸入狀態s,而且還同時可以得到所有的動作 Q值,這也
將更方便進行 Q-Learning中動作的選擇與 Q值得更新
68

Q值、深度學習網路化
•我們用一個深度學習網路表示這個函數 f
•以DQN為例,輸入是經過處理的 4個連續的84x84圖像,然後經過兩
個卷積層,兩個全連接層,最後輸出包含每一個動作 Q值的向量
•深度學習網路 表示Q值非常簡單,Q值也就是變成用 Q網路(Q-
Network)
69

DQN演算法
•使用深度學習網路的目地是讓損失函數最小化, 也就是標籤和網
路輸出的偏差
•目標是讓損失函數 最小化,我們需要有標籤的樣本
•通過反向傳播,使用 梯度下降的方法 來更新深度學習網路的參數
70

DQN演算法
•Q-Learning算法當中, Q值的更新依靠是利用 Reward和Q計算
出來的目標 Q值
•因此將目標Q值作為標籤
–目標就是讓Q值趨進於目標 Q值
–訓練的損失函數就是
71

DQN演算法
72
Tags