當前位置:網站首頁>强化學習——策略梯度理解點
强化學習——策略梯度理解點
2022-07-23 14:10:31【小陳phd】
策略梯度計算公式
目的是最大化reward函數,即調整 θ ,使得期望回報最大,可以用公式錶示如下
J ( θ ) = E τ ∼ p ( T ) [ ∑ t r ( s t , a t ) ] \mathrm{J}(\theta)=\mathrm{E}_{\tau \sim p}(\mathcal{T})\left[\sum_{\mathrm{t}} \mathrm{r}\left(\mathrm{s}_{t}, \mathrm{a}_{\mathrm{t}}\right)\right] J(θ)=Eτ∼p(T)[t∑r(st,at)]
對於上面的式子, τ \tau τ 錶示從從開始到結束的一條完整路徑。通常,對於最大化問題,我們可以使用梯度上昇算法來找到最大值,即
θ ∗ = θ + α ∇ J ( θ ) \theta^{*}=\theta+\alpha \nabla \mathrm{J}(\theta) θ∗=θ+α∇J(θ)
所以我們僅僅需要計算 (更新) ∇ J ( θ ) \nabla J(\theta) ∇J(θ) ,也就是計算回報函數 J ( θ ) J(\theta) J(θ) 關於 θ \theta θ 的梯度,也就是策略梯度,計算方法如下:
∇ θ J ( θ ) = ∫ ∇ θ p θ ( τ ) r ( τ ) d τ = ∫ p θ ∇ θ log p θ ( τ ) r ( τ ) d τ = E τ ∼ p θ ( τ ) [ ∇ θ log p θ ( τ ) r ( τ ) ] \begin{aligned} \nabla_{\theta} \mathrm{J}(\theta) &=\int \nabla_{\theta \mathrm{p}_{\theta}}(\tau) \mathrm{r}(\tau) \mathrm{d}_{\tau} \\ &=\int \mathrm{p}_{\theta} \nabla_{\theta} \log \mathrm{p}_{\theta}(\tau) \mathrm{r}(\tau) \mathrm{d}_{\tau} \\ &=\mathrm{E}_{\tau \sim \mathrm{p} \theta(\tau)}\left[\nabla_{\theta} \log \mathrm{p}_{\theta}(\tau) \mathrm{r}(\tau)\right] \end{aligned} ∇θJ(θ)=∫∇θpθ(τ)r(τ)dτ=∫pθ∇θlogpθ(τ)r(τ)dτ=Eτ∼pθ(τ)[∇θlogpθ(τ)r(τ)]
接著我們繼續講上式展開,對於 p θ ( τ ) \mathrm{p}_{\theta}(\tau) pθ(τ) ,即 p θ ( τ ∣ θ ) \mathrm{p}_{\theta}(\tau \mid \theta) pθ(τ∣θ) :
p θ ( τ ∣ θ ) = p ( s 1 ) ∏ t = 1 T π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) \mathrm{p}_{\theta}(\tau \mid \theta)=\mathrm{p}\left(\mathrm{s}_{1}\right) \prod_{t=1}^{\mathrm{T}} \pi_{\theta}\left(\mathrm{a}_{t} \mid \mathrm{s}_{\mathrm{t}}\right) \mathrm{p}\left(\mathrm{s}_{t+1} \mid \mathrm{s}_{t}, \mathrm{a}_{\mathrm{t}}\right) pθ(τ∣θ)=p(s1)t=1∏Tπθ(at∣st)p(st+1∣st,at)
取對數後為:
log p θ ( τ ∣ θ ) = log p ( s 1 ) + ∑ t = 1 T log π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) \log p_{\theta}(\tau \mid \theta)=\log p\left(s_{1}\right)+\sum_{t=1}^{T} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) p\left(s_{t+1} \mid s_{t}, a_{t}\right) logpθ(τ∣θ)=logp(s1)+t=1∑Tlogπθ(at∣st)p(st+1∣st,at)
繼續求導:
∇ log p θ ( τ ∣ θ ) = ∑ t = 1 T ∇ θ log π θ ( a t ∣ s t ) \nabla \log p_{\theta}(\tau \mid \theta)=\sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) ∇logpθ(τ∣θ)=t=1∑T∇θlogπθ(at∣st)
帶入第三個式子,可以將其化簡為:
∇ θ J ( θ ) = E τ ∼ p θ ( τ ) [ ∇ θ log p θ ( τ ) r ( τ ) ] = E τ ∼ p θ [ ( ∇ θ log π θ ( a t ∣ s t ) ) ( ∑ t = 1 T r ( s t , a t ) ) ] = 1 N ∑ i = 1 N [ ( ∑ t = 1 T ∇ θ log π θ ( a i , t ∣ s i , t ) ) ( ∑ t = 1 N r ( s i , t , a i , t ) ) ] \begin{aligned} \nabla_{\theta} \mathrm{J}(\theta) &=\mathrm{E}_{\tau \sim p \theta(\tau)}\left[\nabla_{\theta} \log \mathrm{p}_{\theta}(\tau) \mathrm{r}(\tau)\right] \\ &=\mathrm{E}_{\tau \sim p \theta}\left[\left(\nabla_{\theta} \log \pi_{\theta}\left(\mathrm{a}_{\mathrm{t}} \mid \mathrm{s}_{\mathrm{t}}\right)\right)\left(\sum_{\mathrm{t}=1}^{\mathrm{T}} \mathrm{r}\left(\mathrm{s}_{\mathrm{t}}, \mathrm{a}_{\mathrm{t}}\right)\right)\right] \\ &=\frac{1}{N} \sum_{\mathrm{i}=1}^{\mathrm{N}}\left[\left(\sum_{\mathrm{t}=1}^{\mathrm{T}} \nabla_{\theta} \log \pi_{\theta}\left(\mathrm{a}_{\mathrm{i}, \mathrm{t}} \mid \mathrm{s}_{\mathrm{i}, \mathrm{t}}\right)\right)\left(\sum_{\mathrm{t}=1}^{\mathrm{N}} \mathrm{r}\left(\mathrm{s}_{\mathrm{i}, \mathrm{t}}, \mathrm{a}_{\mathrm{i}, \mathrm{t}}\right)\right)\right] \end{aligned} ∇θJ(θ)=Eτ∼pθ(τ)[∇θlogpθ(τ)r(τ)]=Eτ∼pθ[(∇θlogπθ(at∣st))(t=1∑Tr(st,at))]=N1i=1∑N[(t=1∑T∇θlogπθ(ai,t∣si,t))(t=1∑Nr(si,t,ai,t))]
重要性重采樣
使用另外一種數據分布,來逼近所求分布的一種方法,算是一種期望修正的方法,公式是:
∫ f ( x ) p ( x ) d x = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] = E x ∼ p [ f ( x ) ] \begin{aligned} \int \mathrm{f}(\mathrm{x}) \mathrm{p}(\mathrm{x}) \mathrm{dx} &=\int \mathrm{f}(\mathrm{x}) \frac{\mathrm{p}(\mathrm{x})}{\mathrm{q}(\mathrm{x})} \mathrm{q}(\mathrm{x}) \mathrm{dx} \\ &=\mathrm{E}_{\mathrm{x} \sim \mathrm{q}}\left[\mathrm{f}(\mathrm{x}) \frac{\mathrm{p}(\mathrm{x})}{\mathrm{q}(\mathrm{x})}\right] \\ &=\mathrm{E}_{\mathrm{x} \sim \mathrm{p}}[\mathrm{f}(\mathrm{x})] \end{aligned} ∫f(x)p(x)dx=∫f(x)q(x)p(x)q(x)dx=Ex∼q[f(x)q(x)p(x)]=Ex∼p[f(x)]
在已知 q q q 的分布後,可以使用上述公式計算出從 p 分布的期望值。也就可以使用 q q q 來對於 p 進行采樣了,即為重要性采樣。
版權聲明
本文為[小陳phd]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207230753429174.html
邊欄推薦
- 【STM32學習】(21)STM32實現步進電機
- 繪制帶有查詢條件變量的table【grafana】
- 認識接口
- LABVIEW:創建一個VI
- 界面開發框架DevExtreme Gantt控件——可導出PDF、排序任務
- MySQL命令行導出導入數據庫和數據錶
- 有數大數據基礎平臺之智能運維平臺EasyEagle介紹:集群隊列篇
- 你記住JS中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX嗎?
- 【Azure 事件中心】Azure Event Hub 新功能嘗試 -- 异地灾難恢複 (Geo-Disaster Recovery)
- unity 照片牆
猜你喜歡
隨機推薦
- *精度優化*優化策略1:網絡+SAM優化器
- AXI協議詳解
- js--Date對象&三元錶達式
- leetcode-買賣股票的最佳時機含手續費
- unity中3dUI或者模型始終面向攝像機,跟隨攝像機視角旋轉丨視角跟隨丨固定視角
- JVM初探
- 移動端測試之appium環境部署【未完待續】
- 關於後臺掛載,進程管理的學習
- 讀《高效閱讀法-最劃算的自我投資》有感
- shell基本命令
- 從鍵盤輸入一串字符,輸出不同的字符以及每個字符出現的次數。(輸出不按照順序)運用String類的常用方法解題
- 2019_AAAI_ICCN
- 影響接口查詢速度的情况
- 《STL適配器》stack和queue
- 淺析緩存的讀寫策略
- 類和對象(1)
- 實驗二 YUV
- 大咖訪談 | 開源社區裏各種奇怪的現狀——夜天之書陳梓立tison
- synchronized是如何實現的
- 【arXiv2022】GroupTransNet: Group Transformer Network for RGB-D Salient Object Detection
- BGP機房的優點
- 真人踩過的坑,告訴你避免自動化測試常犯的10個錯誤
- 判斷是否為void類型
- C語言——幾道C語言經典習題
- openvino_datawhale
- C語言基礎知識梳理(一)
- Redis源碼與設計剖析 -- 7.快速列錶
- 比特,比特,字節,字的概念與區別
- 項目部署(簡版)
- JDBC的學習以及簡單封裝
- [pytho-flask筆記5]藍圖簡單使用
- Web Component-自定義元素的生命周期
- 數倉4.0筆記——業務數據采集
- 數倉4.0筆記——用戶行為數據采集四
- 對.h5文件的迭代顯示,h5py數據操作
- 常用數學知識匯總
- “東數西算”下數據中心的液冷GPU服務器如何發展?
- 硬件知識1--原理圖和接口類型(基於百問網硬件操作大全視頻教程)
- 鋼結構基本原理複習
- Unity3d:UGUI源碼,Rebuild優化