国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

建設項目銀行網(wǎng)站近一周的新聞大事熱點

建設項目銀行網(wǎng)站,近一周的新聞大事熱點,chmod wordpress,用于做分析圖 的地圖網(wǎng)站兩類AC的改進算法 整理了動手學強化學習的學習內容 1. TRPO 算法(Trust Region Policy Optimization) 1.1. 前沿 策略梯度算法即沿著梯度方向迭代更新策略參數(shù) 。但是這種算法有一個明顯的缺點:當策略網(wǎng)絡沿著策略梯度更新參數(shù)&#xff0c…

兩類AC的改進算法

整理了動手學強化學習的學習內容

1. TRPO 算法(Trust Region Policy Optimization)

1.1. 前沿

策略梯度算法即沿著梯度方向迭代更新策略參數(shù) 。但是這種算法有一個明顯的缺點:當策略網(wǎng)絡沿著策略梯度更新參數(shù),可能由于步長太長,策略突然顯著變差,進而影響訓練效果。

針對以上問題,考慮在更新時找到一塊信任區(qū)域(trust region),在這個區(qū)域上更新策略時能夠得到某種策略性能的安全性保證,這就是信任區(qū)域策略優(yōu)化(trust region policy optimization,TRPO)算法的主要思想。

1.2. 一些推導

首先,最常規(guī)的動作價值函數(shù),狀態(tài)價值函數(shù),優(yōu)勢函數(shù)定義如下:
在這里插入圖片描述接著,一個策略的好壞可以期望折扣獎勵J(πθ)J(\pi_\theta)J(πθ?)表示:
J(πθ)=Es0,a0,...[∑t=0∞γtr(st)]=Es0[Vπθ(s0)]J(\pi_\theta)=E_{s_0,a_0,...}[\sum_{t=0}^{\infty}\gamma^tr(s_t)]=E_{s_0}[V^{\pi_\theta}(s_0)]J(πθ?)=Es0?,a0?,...?[t=0?γtr(st?)]=Es0??[Vπθ?(s0?)]

其中,s0~ρ0(s0)s_0 \sim \rho_0(s_0)s0?ρ0?(s0?)at~πθ(at∣st)a_t \sim \pi_\theta(a_t|s_t)at?πθ?(at?st?)at+1~P(st+1∣st,at)a_{t+1} \sim P(s_{t+1}|s_t,a_t)at+1?P(st+1?st?,at?)。
由于初始狀態(tài)s0s_0s0?的分布ρ0\rho_0ρ0?和策略無關,因此上述策略πθ\pi_\thetaπθ?下的優(yōu)化目標J(πθ)J(\pi_\theta)J(πθ?)可以寫成在新策略πθ′\pi_{\theta'}πθ?的期望形式:
在這里插入圖片描述從而,推導新舊策略的目標函數(shù)之間的差距:
deltaJ=A將時序差分殘差定義為優(yōu)勢函數(shù)A:
在這里插入圖片描述所以只要我們能找到一個新策略,使得J(θ′)?J(θ)>=0J(\theta')-J(\theta)>=0J(θ)?J(θ)>=0,就能保證策略性能單調遞增。

但是直接求解該式是非常困難的,因為πθ′\pi_{\theta'}πθ?是我們需要求解的策略,但我們又要用它來收集樣本。把所有可能的新策略都拿來收集數(shù)據(jù),然后判斷哪個策略滿足上述條件的做法顯然是不現(xiàn)實的。

于是 TRPO 做了一步近似操作,對狀態(tài)訪問分布進行了相應處理。具體而言,忽略兩個策略之間的狀態(tài)訪問分布變化,直接采用舊的策略的狀態(tài)分布,定義如下替代優(yōu)化目標:
在這里插入圖片描述當新舊策略非常接近時,狀態(tài)訪問分布變化很小,這么近似是合理的。其中,動作仍然用新策略πθ′\pi_{\theta'}πθ?采樣得到,我們可以用重要性采樣對動作分布進行處理:
在這里插入圖片描述為了保證新舊策略足夠接近,TRPO 使用了KL散度來衡量策略之間的距離,并給出了整體的優(yōu)化公式:
優(yōu)化這里的不等式約束定義了策略空間中的一個 KL 球,被稱為信任區(qū)域。在這個區(qū)域中,可以認為當前學習策略和環(huán)境交互的狀態(tài)分布與上一輪策略最后采樣的狀態(tài)分布一致,進而可以基于一步行動的重要性采樣方法使當前學習策略穩(wěn)定提升。

1.3. 近似求解

直接求解上式帶約束的優(yōu)化問題比較麻煩,TRPO 在其具體實現(xiàn)中做了一步近似操作來快速求解。
對目標函數(shù)和約束在θk\theta_kθk?進行泰勒展開,分別用 1 階、2 階進行近似:
在這里插入圖片描述于是我們的優(yōu)化目標變成了:
在這里插入圖片描述此時,我們可以用KKT條件直接導出上述問題的解:
解

1.4. 共軛梯度

一般來說,用神經(jīng)網(wǎng)絡表示的策略函數(shù)的參數(shù)數(shù)量都是成千上萬的,計算和存儲黑塞矩陣的逆矩陣會耗費大量的內存資源和時間。

TRPO 通過共軛梯度法(conjugate gradient method)回避了這個問題,它的核心思想是直接計算x=H?1gx=H^{-1}gx=H?1gxxx即參數(shù)更新方向。假設滿足 KL距離約束的參數(shù)更新時的最大步長為β=θ′?θ\beta=\theta'-\thetaβ=θ?θ。
于是,根據(jù) KL 距離約束條件12(θ′?θk)TH(θ′?θk)<=δ\frac{1}{2}(\theta'-\theta_k)^TH(\theta'-\theta_k)<=\delta21?(θ?θk?)TH(θ?θk?)<=δ,有12(βx)TH(βx)=δ\frac{1}{2}(\beta x)^TH(\beta x)=\delta21?(βx)TH(βx)=δ。求解β\betaβ,得到β=2δxTHx\beta=\sqrt{\frac{2\delta}{x^THx}}β=xTHx2δ??。因此,此時參數(shù)更新方式為
θk+1=θk+2δxTHxx\theta_{k+1}=\theta_k+\sqrt{\frac{2\delta}{x^THx}}xθk+1?=θk?+xTHx2δ??x
因此,只要可以直接計算x=H?1gx=H^{-1}gx=H?1g,就可以根據(jù)該式更新參數(shù),問題轉化為解Hx=gHx=gHx=g。實際上HHH為對稱正定矩陣,所以我們可以使用共軛梯度法來求解。
共軛梯度法的具體流程如下:
在這里插入圖片描述在共軛梯度運算過程中,直接計算αk\alpha_kαk?rk+1r_{k+1}rk+1?需要計算和存儲海森矩陣HHH。為了避免這種大矩陣的出現(xiàn),我們只計算HxHxHx向量,而不直接計算和存儲HHH矩陣。這樣做比較容易,因為對于任意的列向量vvv,容易驗證:
Hv即先用梯度和向量vvv點乘后計算梯度。

    def hessian_matrix_vector_product(self, states, old_action_dists, vector):# 計算黑塞矩陣和一個向量的乘積new_action_dists = torch.distributions.Categorical(self.actor(states))kl = torch.mean(torch.distributions.kl.kl_divergence(old_action_dists,new_action_dists))  # 計算平均KL距離kl_grad = torch.autograd.grad(kl,self.actor.parameters(),create_graph=True)kl_grad_vector = torch.cat([grad.view(-1) for grad in kl_grad])# KL距離的梯度先和向量進行點積運算kl_grad_vector_product = torch.dot(kl_grad_vector, vector)grad2 = torch.autograd.grad(kl_grad_vector_product,self.actor.parameters())grad2_vector = torch.cat([grad.view(-1) for grad in grad2])return grad2_vectordef conjugate_gradient(self, grad, states, old_action_dists):  # 共軛梯度法求解方程x = torch.zeros_like(grad)r = grad.clone()p = grad.clone()rdotr = torch.dot(r, r)for i in range(10):  # 共軛梯度主循環(huán)Hp = self.hessian_matrix_vector_product(states, old_action_dists,p)alpha = rdotr / torch.dot(p, Hp)x += alpha * pr -= alpha * Hpnew_rdotr = torch.dot(r, r)if new_rdotr < 1e-10:breakbeta = new_rdotr / rdotrp = r + beta * prdotr = new_rdotrreturn x

1.5. 線性搜索

由于 TRPO 算法用到了泰勒展開的 1 階和 2 階近似,這并非精準求解,因此,θ\thetaθ可能未必比θk\theta_kθk?好,或未必能滿足 KL 散度限制。TRPO 在每次迭代的最后進行一次線性搜索,以確保找到滿足條件。具體來說,就是找到一個最小的非負整數(shù)iii,使得按照
θk+1=θk+αi2δxTHxx\theta_{k+1}=\theta_{k}+\alpha^i \sqrt{\frac{2\delta}{x^THx}}xθk+1?=θk?+αixTHx2δ??x

求出的θk+1\theta_{k+1}θk+1?依然滿足最初的 KL 散度限制,并且確實能夠提升目標函數(shù),這KaTeX parse error: Undefined control sequence: \apha at position 1: \?a?p?h?a? ?\in (0,1)其中是一個決定線性搜索長度的超參數(shù)。

1.6. 總結

至此,我們已經(jīng)基本上清楚了 TRPO 算法的大致過程,它具體的算法流程如下:
在這里插入圖片描述

2. PPO 算法(Trust Region Policy Optimization)

2.1. 前沿

PPO 算法作為TRPO算法的改進版,但是其算法實現(xiàn)更加簡單。并且大量的實驗結果表明,與TRPO相比,PPO能學習得一樣好(甚至更快),這使得PPO成為非常流行的強化學習算法。如果我們想要嘗試在一個新的環(huán)境中使用強化學習算法,那么 PPO 就屬于可以首先嘗試的算法。

PPO 的優(yōu)化目標與 TRPO 相同,但 PPO用了一些相對簡單的方法來求解(TRPO 使用泰勒展開近似、共軛梯度、線性搜索等方法直接求解)。具體來說,PPO 有兩種形式,一是 PPO-懲罰,二是 PPO-截斷,接下來對這兩種形式進行介紹。

2.2. PPO-懲罰

PPO-Penalty拉格朗日乘數(shù)法直接將 KL 散度的限制放進了目標函數(shù)中,這就變成了一個無約束的優(yōu)化問題,在迭代的過程中不斷更新 KL 散度前的系數(shù)。即:
無約束的優(yōu)化問題dk=DKLπθk(πθk,πθ)d_k=D_{KL}^{\pi_{\theta_k}}(\pi_{\theta_k},\pi_{\theta})dk?=DKLπθk???(πθk??,πθ?)β\betaβ的更新規(guī)則如下:

  1. 如果dk<δ/1.5d_k<\delta/1.5dk?<δ/1.5,那么βk+1=βk/2\beta_{k+1}=\beta_k/2βk+1?=βk?/2
  2. 如果dk>δ×1.5d_k>\delta \times 1.5dk?>δ×1.5,那么βk+1=βk×2\beta_{k+1}=\beta_k \times 2βk+1?=βk?×2
  3. 否則βk+1=βk\beta_{k+1}=\beta_kβk+1?=βk?

其中,δ\deltaδ是事先設定的一個超參數(shù),用于限制學習策略和之前一輪策略的差距。

2.3 PPO-截斷

PPO的另一種形式 PPO-截斷(PPO-Clip) 更加直接,它在目標函數(shù)中進行限制,以保證新的參數(shù)和舊的參數(shù)的差距不會太大,即:
在這里插入圖片描述其中clip(x,l,r):=max(min(x,r),l)clip(x,l,r):=max(min(x,r),l)clip(x,l,r):=max(min(x,r),l) ,即把xxx限制在[l,r][l,r][l,r]內。上式中?\epsilon?是一個超參數(shù),表示進行截斷(clip)的范圍。

如果Aπθk(s,a)>0A^{\pi_{\theta_k}}(s,a)>0Aπθk??(s,a)>0,說明這個動作的價值高于平均,最大化這個式子會增大πθ(a∣s)πθk(a∣s)\frac{\pi_\theta (a|s)}{\pi_{\theta_k} (a|s)}πθk??(as)πθ?(as)?,但不會讓其超過1+?1+\epsilon1+?。反之,如果Aπθk(s,a)<0A^{\pi_{\theta_k}}(s,a)<0Aπθk??(s,a)<0,最大化這個式子會減小πθ(a∣s)πθk(a∣s)\frac{\pi_\theta (a|s)}{\pi_{\theta_k} (a|s)}πθk??(as)πθ?(as)?,但不會讓其超過1??1-\epsilon1??。如下圖所示。
在這里插入圖片描述

代碼

最后,兩個算法的代碼可參考GitHub,Good Night!

http://m.aloenet.com.cn/news/45718.html

相關文章:

  • 淘寶網(wǎng)請人做淘寶客網(wǎng)站谷歌seo搜索優(yōu)化
  • 深圳網(wǎng)站建設網(wǎng)站制作網(wǎng)站推廣濰坊seo網(wǎng)絡推廣
  • 網(wǎng)站有幾種類型vi設計
  • 二 網(wǎng)站建設的重要性今日頭條荊州新聞
  • 鞍山seo寧波網(wǎng)站關鍵詞優(yōu)化代碼
  • 婚戀網(wǎng)站翻譯可以做嗎模板建站常規(guī)流程
  • 企業(yè)網(wǎng)站開發(fā)注意什么百度電話查詢
  • 便利的邯鄲網(wǎng)站建設網(wǎng)站統(tǒng)計
  • 廣州做網(wǎng)站海珠新科優(yōu)化疫情防控措施
  • 做網(wǎng)站設計的成都市seo網(wǎng)站公司
  • 做項目掙錢的網(wǎng)站競價托管如何托管
  • 企業(yè)移動網(wǎng)站建設軟文街官方網(wǎng)站
  • 網(wǎng)站開發(fā)需要多線程嗎視頻優(yōu)化是什么意思
  • 常德市政府門戶網(wǎng)站群建設方案河南網(wǎng)站顧問
  • 網(wǎng)站建設與網(wǎng)頁設計 視頻百度權重什么意思
  • 網(wǎng)站開發(fā) chrome gimp網(wǎng)絡平臺營銷
  • wordpress生成xml網(wǎng)站優(yōu)化排名方案
  • 如何用電腦記事本做網(wǎng)站網(wǎng)絡營銷企業(yè)有哪些公司
  • 北京公司招聘整站優(yōu)化系統(tǒng)廠家
  • 免費做網(wǎng)站安全嗎黑鋒網(wǎng)seo
  • 建設信用卡官網(wǎng)網(wǎng)站濟南計算機培訓機構哪個最好
  • 給網(wǎng)站做腳本算違法嗎淘寶seo什么意思
  • 做代理網(wǎng)站百度指數(shù)搜索榜
  • 李寧運動服網(wǎng)站建設規(guī)劃書b2b網(wǎng)站有哪些平臺
  • 杭州網(wǎng)站建設工作室網(wǎng)站關鍵詞優(yōu)化怎么弄
  • 怎么找網(wǎng)站app推廣方式有哪些
  • 怎樣自己做免費網(wǎng)站網(wǎng)絡推廣運營優(yōu)化
  • 湘潭做網(wǎng)站問下磐石網(wǎng)絡nba最新交易信息
  • 有什么網(wǎng)站可以做運動阿里指數(shù)官網(wǎng)最新版本
  • 提供邯鄲手機網(wǎng)站建設蘇州關鍵詞優(yōu)化seo