UD機(jī)器學(xué)習(xí) - C6 強(qiáng)化學(xué)習(xí)

0 Abstract

先介紹強(qiáng)化學(xué)習(xí)前沿和背景迹卢,再介紹強(qiáng)化學(xué)習(xí)基本設(shè)置和定義,再介紹強(qiáng)化學(xué)習(xí)通用解決框架和方案,然后根據(jù)算法的復(fù)雜性蟋恬,由易到難的介紹強(qiáng)化學(xué)習(xí)的實(shí)際算法,依次為趁冈,動(dòng)態(tài)規(guī)劃歼争,蒙特卡洛方法,TD learning(Q learning)渗勘,最后DQN沐绒。后續(xù)增加策略梯度等。

1 Intro

1.1 前沿應(yīng)用

1.2 設(shè)置

agent和訓(xùn)練puppy的例子:小狗通過主人的反饋來訓(xùn)練自己的action濒翻。

  • 訓(xùn)練過程
    agent environment
    reward observation/states action
    S0 A0
    R1 S1 A1
    R2 S2 A2 ...

1.3 OpenAI gym

1.3.1 安裝和基本學(xué)習(xí)

  • 安裝
    需要在你的計(jì)算機(jī)上安裝 OpenAI Gym,你可以在課堂里完成所有的編程實(shí)現(xiàn)過程。你可以通過查看該 GitHub 代碼庫(kù)詳細(xì)了解 OpenAI Gym有送。
    建議你花時(shí)間查看 leaderboard淌喻,其中包含每個(gè)任務(wù)的最佳解決方案。
    請(qǐng)參閱此博客帖子雀摘,詳細(xì)了解如何使用 OpenAI Gym 加速?gòu)?qiáng)化學(xué)習(xí)研究裸删。
  • Docker
    docker庫(kù):eboraas/openai-gym
    運(yùn)行命令:docker run --name myaigym -d -p 8888:8888 -p 6006:6006 -v /Users/zhanggaochao/Documents/gym:/mnt/notebooks/ eboraas/openai-gym

1.3.2 相關(guān)資源

教程摘錄這本關(guān)于強(qiáng)化學(xué)習(xí)的經(jīng)典教科書中的章節(jié)。
請(qǐng)參閱此 GitHub 代碼庫(kù)以查看該教科書中的大多數(shù)圖表的 Python 實(shí)現(xiàn)阵赠。
你還可以在該教科書第一章節(jié)之前的頁(yè)面中找到另一個(gè)實(shí)用記法指南涯塔。

2 強(qiáng)化學(xué)習(xí)框架:?jiǎn)栴}

2.1設(shè)置回顧

agent environment
reward observation/states action
S0 A0
R1 S1 A1
R2 S2 A2 ...

2.2 階段性任務(wù)與連續(xù)性任務(wù)

象棋是階段性任務(wù),每一局是一個(gè)階段清蚀,不過是稀疏獎(jiǎng)勵(lì)問題匕荸,每個(gè)任務(wù)都有清晰的結(jié)束點(diǎn) S0 A0 R1 S1 A1 R2 .. Rt St
如股票和金融投資是持續(xù)性任務(wù),沒有盡頭 S0 A0 R1 S1 A1 R2 ....

2.3 獎(jiǎng)勵(lì)假設(shè)

  • 交互圖
  • Reward function
    下面是一個(gè)訓(xùn)練agent走路不跌倒的reward function:


    如果你想詳細(xì)了解 DeepMind 的研究成果枷邪,請(qǐng)參閱此鏈接榛搔。研究論文位于此處。此外东揣,請(qǐng)觀看這個(gè)非臣螅酷的視頻

2.4 累積獎(jiǎng)勵(lì)和折扣回報(bào)

All goals can be framed as the maximization of expected cumulative reward.

  • 累積獎(jiǎng)勵(lì)
  • 折扣回報(bào) discounted return

    γ 是你設(shè)置的值嘶卧,以便進(jìn)一步優(yōu)化智能體的目標(biāo)尔觉。
    它必須指定0≤γ≤1。
    如果γ=0芥吟,智能體只關(guān)心最即時(shí)的獎(jiǎng)勵(lì)侦铜。
    如果γ=1,回報(bào)沒有折扣运沦。
    γ 的值越大泵额,智能體越關(guān)心遙遠(yuǎn)的未來。γ 的值越小携添,折扣程度越大嫁盲,在最極端的情況下,智能體只關(guān)心最即時(shí)的獎(jiǎng)勵(lì)烈掠。

2.5 MDP

  • 收垃圾的機(jī)器人例子
  1. Action space A = [search recharge wait]
  2. State space S = [high low]


  • 具體定義

    一步動(dòng)態(tài)特性簡(jiǎn)單來說就是某個(gè)狀態(tài)采取某個(gè)行動(dòng)使agent進(jìn)入其他狀態(tài)的概率羞秤。
    可以用star one來記憶,s是states左敌,a是actions瘾蛋,r是returns,t是折扣率矫限,one是一步動(dòng)態(tài)特性哺哼。

3 強(qiáng)化學(xué)習(xí)框架:解決方案

3.1 兩種策略方案

  • determinstic policy 1對(duì)1佩抹,如
  • stochastic policy 1對(duì)多 用概率做,如

3.2 state-value function 狀態(tài)值函數(shù) v_\pi

  • 網(wǎng)格世界示范
  • 對(duì)于每一個(gè)state用同一種策略取董,計(jì)算的狀態(tài)值
  • 定義

3.3 貝爾曼期望方程 Bellman Expectation Equation

  • 為了不用每次計(jì)算狀態(tài)值棍苹,都從頭開始算,可以用下一個(gè)狀態(tài)的狀態(tài)值
  • 定義
  • 計(jì)算預(yù)期值

3.4 最優(yōu)性

  • 比較不同的策略

    因?yàn)橛疫叢呗运械臓顟B(tài)值都比左邊的大茵汰,所以右邊的策略比左邊的策略好枢里。

  • 定義

3.5 動(dòng)作值函數(shù) q_\pi

  • 與狀態(tài)值函數(shù)定義的區(qū)別
  • 例子解釋:

    從某個(gè)狀態(tài)開始,如果采取了某個(gè)動(dòng)作蹂午,然后按照現(xiàn)在的策略獲得的回報(bào)栏豺。

3.6 最優(yōu)策略

  • 方法 是先定義了動(dòng)作值函數(shù),然后才能找到最優(yōu)策略
  • 例子

    通過最優(yōu)動(dòng)作值函數(shù)找到最優(yōu)策略豆胸,即比較每個(gè)state對(duì)應(yīng)actions的動(dòng)作值函數(shù)奥洼,找到最大的動(dòng)作值。至于如何通過interaction找到最優(yōu)動(dòng)作值配乱,這是后面強(qiáng)化學(xué)習(xí)主要討論解決的溉卓。

3.7 貝爾曼方程

  • 貝爾曼預(yù)期方程 兩組

  • 貝爾曼最優(yōu)性方程 兩組

4 強(qiáng)化學(xué)習(xí)框架:動(dòng)態(tài)規(guī)劃

  • 已經(jīng)對(duì)全局了解了,每個(gè)狀態(tài)對(duì)應(yīng)的下一個(gè)狀態(tài)的概率和回報(bào)
  • 主流程

4.1 計(jì)算狀態(tài)值函數(shù)

  • 少的時(shí)候解方程就行搬泥,寫每個(gè)狀態(tài)的狀態(tài)值方程,
  • 但是數(shù)據(jù)多了使用迭代方法伏尼,先初始化為0忿檩,然后一個(gè)一個(gè)的計(jì)算收斂,狀態(tài)值過多不好解方程
  • 收斂方法
  • 對(duì)于有限的MDF爆阶,只要滿足γ<1 或這如果以任何狀態(tài) s∈S 開始燥透,并且遵守 π策略,就會(huì)保證會(huì)最終達(dá)到終止?fàn)顟B(tài)辨图,就能保證上面收斂動(dòng)作值班套,通過當(dāng)前回報(bào)和下一步的狀態(tài)值計(jì)算

4.2 把狀態(tài)值函數(shù)變?yōu)閯?dòng)作值函數(shù)

  • 狀態(tài)值函數(shù)
  • 動(dòng)作值函數(shù)

4.3 策略改進(jìn)

  • 選擇該狀態(tài)下最大的動(dòng)作值對(duì)應(yīng)的動(dòng)作為當(dāng)前策略
  • 因?yàn)楫?dāng)前t策略的狀態(tài)值變大,可以使后面的狀態(tài)值變大故河,滿足更優(yōu)條件策略

4.4 策略迭代

  • 流程圖
  • 簡(jiǎn)單迭代
  • 截?cái)嗖呗缘?br> 更換策略評(píng)估函數(shù)吱韭,原來是小于\theta,現(xiàn)在是迭代一定次數(shù)
  • 值迭代

    策略評(píng)估和策略迭代放在一起鱼的,每次迭代策略評(píng)估只評(píng)估一次

5 蒙特卡洛方法

  • 對(duì)全局環(huán)境不了解理盆,需要不斷嘗試迭代去做,蒙特卡洛方法主要討論的是階段性任務(wù)
  • 重要概念:off-policy評(píng)價(jià)時(shí)的policy和與環(huán)境交互的policy不同凑阶,后面會(huì)講猿规;主要是on-policy value function predict 根據(jù)指定的policy π,算出V狀態(tài)值函數(shù)宙橱,即交互的策略和評(píng)價(jià)的策略一致
  • 離線策略
  • 異同策略

5.1 狀態(tài)值

  • first visit 只用第一次遇見的計(jì)算
  • every visit 每次遇見都計(jì)算

5.2 動(dòng)作值函數(shù)

  • 因?yàn)閷?duì)全局環(huán)境不是全然了解姨俩,就不能通過狀態(tài)值函數(shù)來計(jì)算動(dòng)作值函數(shù)了
  • 依然通過first visit蘸拔,和every visit,只不過這次加了當(dāng)前狀態(tài)和動(dòng)作环葵,當(dāng)次數(shù)多了的時(shí)候都伪,這兩種方法會(huì)收斂到一致
  • 為了讓每個(gè)狀態(tài)動(dòng)作對(duì)都有出現(xiàn)的可能,we use stochastic policy instead of deterministic policy

5.3 廣義策略迭代

  • 回顧之前的迭代方法
  • 廣義迭代方法
  • 增量均值

    用來計(jì)算狀態(tài)動(dòng)作對(duì)的動(dòng)作值函數(shù)
    相當(dāng)于一步動(dòng)態(tài)規(guī)劃积担,可以用上次的均值更新當(dāng)前的均值
  • 策略評(píng)估

    對(duì)于每個(gè)value-action pair用上面的增量均值方法計(jì)算
  • 策略改進(jìn)
  1. 不能完全采用動(dòng)態(tài)規(guī)劃的方法陨晶,選擇最大的動(dòng)作值函數(shù)為當(dāng)前動(dòng)作,因?yàn)檫@樣會(huì)導(dǎo)致部分策略沒有被完全探索過


  2. epsilon-greedy policy :
    epsilon決定探索多一點(diǎn)還是利用經(jīng)驗(yàn)多一點(diǎn)


  3. 背后理論:
  • 流程圖
  • 常量\alpha
    從:
    變?yōu)椋?
    因?yàn)榘凑盏谝粋€(gè)方法更新帝璧,未來的動(dòng)作值隨著N變大先誉,對(duì)動(dòng)作值更新的影響會(huì)越來越小。
    而第二個(gè)方法The agent will mostly trust the most recent returns and gradually forget about those that came in the past的烁,會(huì)更看重最近的動(dòng)作值

5.4 流程圖:

6 時(shí)間差分方法 TD learning

  • 可以在每步都進(jìn)行更新褐耳,能用于連續(xù)性和間斷性任務(wù)
  • 與mc差別:
    就是每一個(gè)步驟都更新狀態(tài)值,而不是等到某個(gè)episode結(jié)束了再更新
    即計(jì)算累加回報(bào)時(shí)渴庆,mc用actual return铃芦,td用estimated return(TD target)

6.1 TD(0) 狀態(tài)值函數(shù)

  • 即每一步都更新狀態(tài)值函數(shù)
  • 分解一下這個(gè)表達(dá)式為兩個(gè)部分,一個(gè)是過去的襟雷,一個(gè)是TD Target
  • 流程圖 對(duì)于間斷性任務(wù) episodic tasks

6.2 TD預(yù)測(cè):動(dòng)作值

  • 狀態(tài)值更新
  • 動(dòng)作值更新

6.3 TD控制:Sarsa(0) 在下一次action更新

  • 實(shí)例
  • 流程

6.4 TD控制:Sarsamax(aka Q-Learining) 在下一次state就更新

  • 實(shí)例
  • 比較
  • 論文
    請(qǐng)參閱此 研究論文刃滓,以了解 Sarsamax(或 Q 學(xué)習(xí))會(huì)收斂的證據(jù)
  • 流程

6.4 TD控制:預(yù)期Sarsa 其實(shí)就是計(jì)算TD Target的時(shí)候取期望而不是取最大值

  • 比較
  • 流程

6.5 分析性能


簡(jiǎn)單來說,就是on-policy用評(píng)估和改進(jìn)的策略取選擇動(dòng)作耸弄,off-policy用一套評(píng)估和改進(jìn)咧虎,用另一套選擇動(dòng)作
如果你要了解詳情,建議閱讀該教科書(尤其是第 6.4-6.6 部分)的第 6 章節(jié)计呈。

10 深度Q-學(xué)習(xí)

10.1 神經(jīng)網(wǎng)絡(luò)作為值函數(shù)

  1. 誤差函數(shù)

    因?yàn)檎鎸?shí)的q和v是通過跟環(huán)境的交互來不斷學(xué)習(xí)的砰诵,這是 reinforcement learning 和 supervised learning 的根本區(qū)別

  2. 蒙特卡洛方法
  3. 時(shí)間差分學(xué)習(xí)

    TD(0) for episodic tasks
    Sara for continuing tasks
  4. Q 學(xué)習(xí)

  5. 比較

    離線策略的優(yōu)勢(shì)主要是把采取的動(dòng)作與學(xué)習(xí)流程不再相關(guān)
    我們可以行動(dòng)的時(shí)候用探索性策略,但是學(xué)習(xí)最佳的狀態(tài)值或者動(dòng)作值函數(shù)捌显,online performance雖然不好茁彭,但是能找到更好的策略;可以觀察來學(xué)習(xí)規(guī)律扶歪;適合離線更新和batch learning因?yàn)椴挥迷倜總€(gè)時(shí)間步更新策略

10.2 深度Q網(wǎng)絡(luò)

  • 基本配置

    閱讀延伸

10.3 調(diào)整技巧

有時(shí)候不會(huì)收斂到最優(yōu)值函數(shù)哲嘲,會(huì)震蕩和發(fā)散

  • Experience Replay 經(jīng)驗(yàn)回放
    可以先按照初始的策略做一些動(dòng)作,形成緩存區(qū)媳禁,然后sample緩存區(qū)中的數(shù)據(jù)載入DQN去訓(xùn)練
    停止一邊學(xué)習(xí)眠副,一遍訓(xùn)練;先訓(xùn)練中竣稽,形成一個(gè)樣本庫(kù)再batch learning

    基本上是建立一個(gè)樣本數(shù)據(jù)庫(kù)囱怕,然后從中學(xué)習(xí)一個(gè)映射霍弹,基本上達(dá)到了
  • Fixed Q Targets 固定Q目標(biāo)

    更新的時(shí)候,數(shù)學(xué)書用Q learning預(yù)測(cè)的動(dòng)作值替代實(shí)際的動(dòng)作值在數(shù)學(xué)上不成立娃弓,如下:

    但是用梯度去計(jì)算會(huì)不斷趨近典格,但是w變化會(huì)導(dǎo)致Q learning預(yù)測(cè)的動(dòng)作值變化,導(dǎo)致不會(huì)收斂台丛,像下面一樣:

    我們想要的是這樣:

    解決consecutive experience tuples的問題耍缴,讓Q learning預(yù)測(cè)動(dòng)作值用的w先固定住,等訓(xùn)練一定的batch后挽霉,再用訓(xùn)練后的w去更新
    這樣把目標(biāo)和參數(shù)拆開來防嗡,使學(xué)習(xí)算法更加穩(wěn)定,不太可能發(fā)散或震蕩

10.4 深度Q學(xué)習(xí)算法

10.4 DQN改進(jìn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贼邓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闷尿,更是在濱河造成了極大的恐慌塑径,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件填具,死亡現(xiàn)場(chǎng)離奇詭異统舀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)劳景,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門誉简,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人枢泰,你說我怎么就攤上這事描融。” “怎么了衡蚂?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵窿克,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我毛甲,道長(zhǎng)年叮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任玻募,我火速辦了婚禮只损,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘七咧。我一直安慰自己跃惫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布艾栋。 她就那樣靜靜地躺著爆存,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝗砾。 梳的紋絲不亂的頭發(fā)上先较,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音悼粮,去河邊找鬼闲勺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扣猫,可吹牛的內(nèi)容都是我干的菜循。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼苞笨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼债朵!你這毒婦竟也來了子眶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤序芦,失蹤者是張志新(化名)和其女友劉穎臭杰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谚中,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渴杆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宪塔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磁奖。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖某筐,靈堂內(nèi)的尸體忽然破棺而出比搭,到底是詐尸還是另有隱情,我是刑警寧澤南誊,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布身诺,位于F島的核電站,受9級(jí)特大地震影響抄囚,放射性物質(zhì)發(fā)生泄漏霉赡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一幔托、第九天 我趴在偏房一處隱蔽的房頂上張望穴亏。 院中可真熱鬧,春花似錦重挑、人聲如沸嗓化。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟆湖。三九已至,卻和暖如春玻粪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诬垂。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工劲室, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人结窘。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓很洋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親隧枫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喉磁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容