強化學習-->Deep Reinforcement Learning

因爲逐漸有人將強化學習應用到NLP 的任務上,有必要了解一些強化學習基礎知識,本篇博文總結自臺大教授李宏毅關於深度學習的公開課內容。

這裏寫圖片描述

我們可以以上圖來理解強化學習過程,我們機器人agent 通過observation 瞭解到環境的 State ,採取一些Action ,並且改變當前的環境,然後環境會反饋正向或負向的rewardagent

舉例來說,讓機器人玩電玩遊戲:

這裏寫圖片描述

上圖中agent 每次動作以後都可能隨機的改變了環境,並且接受到一個reward ,由此觀察改變後的環境,做出相應的動作。

這裏寫圖片描述

我們希望agent 多玩幾個回合,並且希望在每個回合中最大化的total reward 

強化學習難點:

  • Reward delay
    例如上面所舉得例子裏,只有在開火時,才能獲得Rewardagent 學習的最後結果是會瘋狂的開火,往左移或往右移,他覺得無所必要,但實際上移動對最後的total Reward 至關重要。還比如在下圍棋時,短期的犧牲可能或換來最後的勝利。

  • agent 的行爲,也即是action 會影響後續他看到的環境。

Asynchronous Advantage Actor-Critic (A3C)

這裏寫圖片描述

Policy-based Approach(Learning an Actor)

這裏寫圖片描述

如果我們把neural network 當做上面所講的actor ,那麼:

  • 模型的輸入:即其觀察到的環境(向量、矩陣等)
  • 模型的輸出:每一類動作在最後一層以一個神經元表示,對應其輸出的概率

這裏寫圖片描述

需要注意的是:在做 policy gredient 時,是 stochastic 式的,也就是說其output 是一個機率,我們是一定的概率選取該動作,而不是一定選取。

那麼如何決定這個action 的好壞呢?

我們假定actor 的模型爲πθ(s) ,這個s 就是agent 所看到的環境,θ 表示神經網絡的參數。

我們拿這個actor 實際上去玩這個遊戲:

這裏寫圖片描述

如上圖所示:agent 玩完一個回合 後,可以得到一個total Reward ,而由上面的描述可知,這個total reward 纔是我們需要maximize 對象。

因爲遊戲的隨機性,即使每個回合都採用一樣的actor ,在這裏就是agent 模型一樣,不同回合得到的Rθ 很有可能不一樣,我們記:R¯θ 爲該actor 的期望值,即使不同的回合,該actor 的期望值是相同的,這個期望值就衡量了actor 的好壞,好的期望值這個actor 就比較好。

那麼這個期望值Rθ 如何得到呢?

假設一輪遊戲所有經過表示爲τ ,則:

  • τ={s1,α1,r1,s2,α2,r2,s3,α3,r3,...,sT,αT,rT}
  • R(τ)=Tn=1rn
  • 某一種τ 出現的概率與actor (模型)有關,即該τ 過程出現的概率爲 P(τ|θ)

由上面的分析可知,某一個actor 一輪迴合下來得到的reward 的期望值:

R¯θ=τR(τ)p(τ|θ)

但是我們無法遍歷所有的τ ,故只能採取抽樣的方式,我們讓這個actorN 場遊戲,獲得N 個不同的遊戲過程,即{τ1,τ2,....,τN} ,可以理解爲從p(τ|θ)sampleN 次。即:

R¯θ=τR(τ)p(τ|θ)1Nn=1NR(τn)

那麼現在已經找到了R¯θ ,我們希望找到了一個θ ,能maxθR¯θ ,也就是θ=argmaxθR¯θ ,我們可以利用Gradient ascent 來不斷逼近:

  • start with θ0
  • θ1θ0+ηR¯θ0
  • θ2θ1+ηR¯θ1
  • ………

那麼R¯θ 怎麼求呢?

這裏寫圖片描述

可以實際的推導一下R¯θ

這裏寫圖片描述

其中:

這裏寫圖片描述

這裏寫圖片描述

則:

這裏寫圖片描述

可以直觀的理解上面R¯θ 結果:

  • R(τn) )(注意這裏是一個回合的reward) 爲正的時候,我們希望調整θ ,增大p(αnt|snt) ,使其在時間t 更大可能選擇αnt
  • R(τn) 爲正的時候,我們希望調整θ ,減小p(αnt|snt) ,使其在時間t 更小可能選擇αnt

上面的求R¯θ 過程就是policy Gradient

Critic

給定一個actor π ,用Critic 來衡量actor 好或者不好,記做Vπ(s) ,這裏s 就是當前的環境狀態。Vπ(s) 就是當觀察到s 後,到一輪遊戲結束,我們所能得到的reward 的期望值有多大。以此來更新actor (即其中的參數)

這裏寫圖片描述

那麼如何得到Vπ(s) 呢?

Monte-Carlo

critic 觀察 π 玩遊戲,舉例來說:

  • 當看到環境sa 後,直到一輪迴合結束,所積累的rewardGa ,那麼Vpi(sa)=Ga
  • 當看到環境sb 後,直到一輪迴合結束,所積累的rewardGb ,那麼Vpi(sb)=Gb

Temporal-Difference

這裏寫圖片描述

MC VS TD

這裏寫圖片描述

不同的方法,其Vπ(s) 值不一樣,選哪個方法視具體情況而言。

Actor-Critic

這裏寫圖片描述

我們在上面講到了actor 與環境互動時,會得到一個reward 的反饋,如上面在求R¯θ 時:

這裏寫圖片描述

如上圖所示,可以直接把R(/taun) 看做critic

Advantage Actor-Critic

對於actor π(s)critic Vπ(s) 可以共享一些參數,如下圖所示:

這裏寫圖片描述

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