強化學習——(1)Policy Gradient

1. 基礎介紹

在強化學習中有兩個東西:Agent和Environment。他們的關係如下:
Agent會去觀察Environment,會做一些Action,Change the environment,之後會得到reward。
在這裏插入圖片描述
在Alpha Go中,observation爲棋盤,action 是落子的位置,Environment爲對手,reward爲:贏了1,輸了-1。因此,機器需要調整model使得得到的reward的概率最大化。
在這裏插入圖片描述
監督學習:可以學到一個回下圍棋的machine,但是不能夠學到一個好的。因爲是跟着棋譜來下。(擁有一個模式,當遇到新情況時,套用該模式得出結果)
強化學習:自己下,通過反饋進行學習。(沒有模式,需要model自己生成。)

2. 難點

  1. reward 具有延遲性: 可能有的action並不能獲得reward,但是在整體上對reward有好處。
  2. agent採取的行爲會影響後續的反饋,因此需要agent去探索未知的行爲。

3. Policy 算法

在這裏插入圖片描述
目前(17年)最流行的方法用的是A3C方法,Asynchronous Advantage Actor-Critic。

3.1 Policy-based 方法

在該方法中:Input就是machine看到的observation,output就是machine要採取Action。
在這裏插入圖片描述
使用神經網絡作爲Actor:以打電玩作爲例子,輸入爲picxl,也就是遊戲視頻的界面;輸出爲可以採取的action,在圖中,分爲:左移、右移和開火。由model也就是神經網絡計算得出每一個action的概率,然後根據概率採取行動。不一定每次都採取概率最大的action。
在這裏插入圖片描述
注意,我們並不是要最大化某一次獲得的獎勵,而是要最大化獎勵的期望值。(因爲每一次的Environment和Action都可能會不一樣)

我們把在一輪中的state, action, reward都記錄下來,則其實是一個序列,記爲:
τ={s1,a1,r1,s2,a2,r2,....,sT,aT,rT} \tau = \{s_1, a_1, r_1, s_2, a_2, r_2,....,s_T, a_T, r_T\}
那麼,該輪中的獎勵爲:
R(τ)=n=1Nrn R(\tau)=\sum_{n=1}^{N}r_n
當我們選擇了某一個Actor,則可能看到某一些τ\tau,那麼,結合模型我們可以知道,當參數爲θ\theta時,可能出現的概率可以表示爲:
P(τθ) P(\tau|\theta)
所以,最後所有輪數中得到的reward的期望爲:
Rˉθ=τR(τ)P(τθ) \bar{R}_{\theta}=\sum_{\tau}R(\tau)P(\tau|\theta)
然後我們用這個model(πθ\pi_\theta)去運行N次,得到N個不同的τ\tau,即{τ1,τ2,...,τN}\{\tau^1, \tau^2, ..., \tau^N\}
即:
Rˉθ=τR(τ)P(τθ)1Nn=1NR(τn) \bar{R}_{\theta}=\sum_{\tau}R(\tau)P(\tau|\theta) \approx \frac{1}{N}\sum_{n=1}^{N}R(\tau^n)

接下來,我們的目標就是最大化這個Rˉθ\bar{R}_{\theta},即有:
θ=arg maxθRˉθ \theta^*=\argmax_{\theta} \bar{R}_{\theta}
接下來就可以使用Gradient ascent的方法去獲得最佳的參數。
在這裏插入圖片描述
實際上,我們在做微分的時候,實際上是對P(τθ)P(\tau|\theta)做微分,即有:
在這裏插入圖片描述
又因(選擇這一步的原因,其實是爲了給所有的概率值進行一個Normalization
在這裏插入圖片描述
則有:
在這裏插入圖片描述

Rˉθ=τR(τ)P(τθ) \bar{R}_{\theta}=\sum_{\tau}R(\tau)P(\tau|\theta) 在這裏插入圖片描述
接下來,如何計算logP(τnθ)\bigtriangledown logP(\tau^n|\theta)?
因爲:
在這裏插入圖片描述

在這裏插入圖片描述

大白話:
如果在某一次state中採取的action得到的reward對最終的結果起到正反饋時,則我們希望這個機率越大越好。否則,越小越好。
在這裏插入圖片描述

3.1.1 改進點 1 增加baseline

但是在實際應用中,我們更新的公式爲:
在這裏插入圖片描述
這樣是爲了防止所有的Reward都爲正的情況,若所有的reward都爲正,則某些不經常出現的action就會被忽略,這是我們不願意看到的,因此,我們需要指定一個baseline。使得reward有正有負。

3.1.2 改進點 2 調整Reward

在更新公式中,
在這裏插入圖片描述
R(τn)R(\tau^n)代表的是整場遊戲的reward,即R(τn)R(\tau^n)是所有場景的reward求和,如下圖:
在這裏插入圖片描述
現在改成
在這裏插入圖片描述
即,reward是從某個時間點tt這個action,進一步的,某一個時刻action的影響力會隨着時間的變化而減少,因此需要乘上一個折扣因子
在這裏插入圖片描述

3.2 與深度學習區別

在網絡結構的設置上沒有太多的差別,其實際場景可以理解爲:在強化學習中,總共玩NN把遊戲,每一把遊戲中有TnT_n個場景,每一個場景中都有1個state:ss,每個狀態對應一個action:aa,每個action都對應一個reward:RR

具體主要體現在:

  1. 目標函數的不同。在強化學習中,採取的action其實並無對錯之分,只有好壞之分,model認爲每一個action都是對的策略,只是獎勵不同,因此,Rˉθ\bigtriangledown \bar{R}_{\theta}中的logp(atnstn,θ)\bigtriangledown \log p(a_t^n|s_t^n,\theta)的意思是:訓練的目的是:希望在場景stns_t^n下采取的action是atna_t^n,也就是說把atna_t^n看成了一個正確的選擇,這個選擇的優劣,其實是通過前面的R(τnb)R(\tau^n-b)來控制的。

  2. 訓練時間的長短
    在強化學習中,每一把遊戲過後,更新一遍參數,然後再去resample一遍data,重複上述過程。而在DeepLearning中,data只需要採集一遍。

4. 知識點回顧

內容來自:易混知識勘誤_from李宏毅P1-----Policy Gradient

4.1 Episode(回合)、Trajectory是啥?

在這裏插入圖片描述

4.2 R的含義是啥?和r的意思一樣麼?

在這裏插入圖片描述

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