【/強化學習7日打卡營-世界冠軍帶你從零實踐/課程摘要和調參心得-No.4】基於策略梯度求解RL

一、學習內容

4.基於策略梯度求解RL

4.1隨機策略與策略梯度

先來複習一下之前講的value-based和policy-based的RL方法:

Policy-based的方法可直接輸出動作的概率,比較適用於隨機性策略

具體來說就是在網絡裏面使用常見的softmax函數

爲了方便大家理解,這裏舉個Pong遊戲的例子:

策略是一個episode完了才能評估的,目的是爲了讓總的Reward儘可能大:

策略的狀態轉移軌跡可以用以下流程來表示:

軌跡發生的概率和策略的期望回報的關係如下:

對比一下DQN和PolicyGradient裏面的優化過程:

策略梯度法在優化過程中,會選擇loss最小的那一條軌跡

4.2PolicyGradient(策略梯度)算法

區別於DQN中的TD單步更新,經典的PG裏面用的是蒙特卡洛回合(episode)制更新:

具體到代碼就是從後向前計算所有reward的和。這裏特別提醒下,sarsa中,reward是下一時刻的reward,和後面的sa是下標一樣的。

 

從算法流程來看,剛纔reward折算的過程就是倒數第二行:

類比監督學習來理解PolicyGradient,上面是MNIST的監督學習網絡,下面是PolicyGradient中監督的過程(可以看到,多乘了一項rewardG_t作爲監督項):

具體Loss的代碼定義如下(注意-R後面少了個左括號):

4.3PG代碼

PolicyGradient的REINFORCE算法整體流程如下:

可見PARL框架也是早就設計好了:)

代碼文件結構如下:

CartPole例子的PG算法訓練結果:

model代碼:

algorithm代碼

agent代碼

訓練代碼

運行展示

4.4總結、作業、公式推導

策略梯度(PG)方法的一個總結:

PolicyGradient解決Pong問題的一個示例:

圖像預處理的技巧:

reward的衰減和正則化:

PolicyGradient算法的原理推導(這裏講的非常好,很多書和材料都沒有推導)。

注意2點:

1.藍框裏的是一個近似變換,使用了log函數

2.使用log函數後,狀態轉移概率p因爲都沒有對theta求導,因此可以刪掉

注意最下方公式最右邊有點小錯誤,很好理解,按馬爾科夫鏈,應該是s2,a2,李科澆老師是直接複製過來忘改了。這裏改正爲:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章