日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)

發布時間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Actor-Critic

概述

MC策略梯度方法使用了收獲作為狀態價值的估計,它雖然是無偏的,但是噪聲卻比較大,也就是變異性(方差)較高。如果我們能夠相對準確地估計狀態價值,用它來指導策略更新,那么是不是會有更好的學習效果呢?這就是Actor-Critic策略梯度的主要思想。

Actor-Critic的字面意思是“演員-評論”,相當于演員在演戲的同時,有評論家指點,繼而演員演得越來越好。即使用Critic來估計行為價值:

Qw(s,a)≈Qπθ(s,a)Q_w(s,a)\approx Q^{\pi_\theta}(s,a)Qw?(s,a)Qπθ?(s,a)

基于Actor-Critic策略梯度學習分為兩部分內容:

1.Critic:更新action-value函數的參數w。

2.Actor:按照Critic得到的價值,引導策略函數參數θ\thetaθ的更新。

?θJ(θ)≈Eπθ[?θlog?πθ(s,a)Qw(s,a)]\nabla_\theta J(\theta)\approx E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)]?θ?J(θ)Eπθ??[?θ?logπθ?(s,a)Qw?(s,a)]

Δθ=α?θlog?πθ(s,a)Qw(s,a)\Delta \theta = \alpha \nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)Δθ=α?θ?logπθ?(s,a)Qw?(s,a)

可以看出,Critic做的事情其實是我們已經見過的:策略評估,他要告訴個體,在由參數θ\thetaθ確定的策略πθ\pi_\thetaπθ?到底表現得怎么樣。

Compatible Function Approximation

近似策略梯度的方法引入了Bias,從而得到的策略梯度不一定能最后找到較好的解決方案,例如當近似價值函數引起狀態重名的特征時。

幸運的是,如果我們小心設計近似函數,是可以避免引入bias的。該近似函數需要滿足下面兩個條件:

  • 近似價值函數的梯度完全等同于策略函數對數的梯度,即不存在重名情況:

?wQw(s,a)=?θlog?πθ(s,a)\nabla_w Q_w(s,a)=\nabla_\theta \log \pi_\theta(s,a)?w?Qw?(s,a)=?θ?logπθ?(s,a)

  • 價值函數參數w使得均方差最小:

?=Eπθ[(Qπθ(s,a)?Qw(s,a))2]\epsilon = E_{\pi_\theta}[(Q^{\pi_\theta}(s,a)-Q_w(s,a))^2]?=Eπθ??[(Qπθ?(s,a)?Qw?(s,a))2]

符合這兩個條件,則認為策略梯度是準確的,即:

?θJ(θ)=Eπθ[?θlog?πθ(s,a)Qw(s,a)]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)Qw?(s,a)]

Reducing Variance Using Baseline

除了bias之外,variance也是需要考慮的方面。

我們從策略梯度里抽出一個基準函數B(s),要求這一函數僅與狀態有關,而與行為無關,因而不改變梯度本身。

Eπθ[?θlog?πθ(s,a)B(s)]=∑s∈Sdπθ(s)∑a∈A?θπθ(s,a)B(s)=∑s∈Sdπθ(s)B(s)?θ∑a∈Aπθ(s,a)=0E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)B(s)] = \sum_{s\in S} d^{\pi_\theta}(s)\sum_{a\in A}\nabla_\theta \pi_\theta(s,a)B(s)\\= \sum_{s\in S} d^{\pi_\theta}(s)B(s) \nabla_\theta \sum_{a\in A} \pi_\theta(s,a) = 0Eπθ??[?θ?logπθ?(s,a)B(s)]=sS?dπθ?(s)aA??θ?πθ?(s,a)B(s)=sS?dπθ?(s)B(s)?θ?aA?πθ?(s,a)=0

由于B(s)與行為無關,可以將其從針對行為a的求和中提出來,同時我們也可以把梯度從求和符號中提出來,而最后一個求和項:策略函數針對所有行為的求和,根據策略函數的定義,這里的結果肯定是1。而常數的梯度是0,因此總的結果等于0。

原則上,和行為無關的函數都可以作為B(s)。一個很好的B(s)就是基于當前狀態的狀態價值函數:Vπθ(s)V^{\pi_\theta}(s)Vπθ?(s)

所以,我們可以用一個advantage function來改寫策略梯度:

Aπθ(s,a)=Qπθ(s,a)?Vπθ(s)A^{\pi_\theta}(s,a)=Q^{\pi_\theta}(s,a)-V^{\pi_\theta}(s)Aπθ?(s,a)=Qπθ?(s,a)?Vπθ?(s)

上式的現實意義在于評估當個體采取行為a離開s狀態時,究竟比該狀態s總體平均價值要好多少?

?θJ(θ)=Eπθ[?θlog?πθ(s,a)Aπθ(s,a)]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)A^{\pi_\theta}(s,a)]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)Aπθ?(s,a)]

advantage function可以明顯減少狀態價值的variance。(通俗的說法就是A的值有正有負,不像Q和V都是正值。)

因此,現在Critic的任務就改為估計advantage function。

在這種情況下,我們需要兩個近似函數也就是兩套參數,一套用來近似狀態價值函數,一套用來近似行為價值函數。即:

Vv(s)≈Vπθ(s)V_v(s)\approx V^{\pi_\theta}(s)Vv?(s)Vπθ?(s)

Qw(s,a)≈Qπθ(s,a)Q_w(s,a)\approx Q^{\pi_\theta}(s,a)Qw?(s,a)Qπθ?(s,a)

A(s,a)=Qw(s,a)?Vv(s)A(s,a) = Q_w(s,a) - V_v(s)A(s,a)=Qw?(s,a)?Vv?(s)

不過實際操作時,我們并不需要計算兩個近似函數。這里以TD學習為例說明一下。

根據定義,TD誤差δπθ\delta^{\pi_\theta}δπθ?可以根據真實的狀態價值函數Vπθ(s)V^{\pi_\theta}(s)Vπθ?(s)算出:

δπθ=r+γVπθ(s′)?Vπθ(s)\delta^{\pi_\theta} = r + \gamma V^{\pi_\theta}(s') - V^{\pi_\theta}(s)δπθ?=r+γVπθ?(s)?Vπθ?(s)

因為:

Eπθ[δπθ∣s,a]=Eπθ[r+γVπθ(s′)∣s,a]?Vπθ(s)=Qπθ(s,a)?Vπθ(s)=Aπθ(s,a)E_{\pi_\theta}[\delta^{\pi_\theta} | s,a] = E_{\pi_\theta}[r + \gamma V^{\pi_\theta}(s') | s,a] - V^{\pi_\theta}(s)= Q^{\pi_\theta}(s,a) - V^{\pi_\theta}(s) = A^{\pi_\theta}(s,a)Eπθ??[δπθ?s,a]=Eπθ??[r+γVπθ?(s)s,a]?Vπθ?(s)=Qπθ?(s,a)?Vπθ?(s)=Aπθ?(s,a)

可見δπθ\delta^{\pi_\theta}δπθ?就是Aπθ(s,a)A^{\pi_\theta}(s,a)Aπθ?(s,a)的一個無偏估計。

因此,我們就可以使用TD誤差來計算策略梯度:

?θJ(θ)=Eπθ[?θlog?πθ(s,a)δπθ]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)\delta^{\pi_\theta}]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)δπθ?]

實際運用時,我們使用一個近似的TD誤差,即用狀態函數的近似函數來代替實際的狀態函數:

δv=r+γVv(s′)?Vv(s)\delta_v = r + \gamma V_v(s') - V_v(s)δv?=r+γVv?(s)?Vv?(s)

這也就是說,我們只需要一套參數描述狀態價值函數,而不再需要行為價值函數了。

上述方法不僅可用于TD方法,還可用于MC方法等,以下不加討論的給出如下結論:

KaTeX parse error: No such environment: align at position 7: \begin{?a?l?i?g?n?}? \nabla_\theta …

參考

https://zhuanlan.zhihu.com/p/51652845

強化學習這都學不會的話,咳咳,你過來下!

https://mp.weixin.qq.com/s/ce9W3FbLdsqAEyvw6px_RA

Actor Critic——一個融合基于策略梯度和基于值優點的強化學習算法

Integrating Learning and Planning

前面的章節主要介紹了Model-Free RL,下面將講一下Model-Based RL,主要包括如下內容:

  • 如何從經歷中直接學習Model。

  • 如何基于模型來進行Planning(規劃)。

  • 如何將“學習”和“規劃”整合起來。

|
上面兩圖形象的說明了Model-Free RL(左圖)和Model-Based RL(右圖)的差別。

Model-Based RL

上圖比較好的說明了模型學習在整個RL學習中的位置和作用。

我們首先看一下Model的定義:Model是一個參數化(參數為η\etaη)的MDP<S, A, P, R>,其中假定:狀態空間S和行為空間A是已知的,則M=<Pη,Rη>M=<P_\eta, R_\eta>M=<Pη?,Rη?>,其中Pη≈P,Rη≈RP_\eta \approx P, R_\eta \approx RPη?P,Rη?R。則:

St+1~Pη(St+1∣St,At)S_{t+1} \sim P_\eta (S_{t+1} | S_t, A_t)St+1?Pη?(St+1?St?,At?)

Rt+1=Rη(Rt+1∣St,At)R_{t+1} = R_\eta (R_{t+1} | S_t, A_t)Rt+1?=Rη?(Rt+1?St?,At?)

通常我們需要如下的假設,即狀態轉移函數和獎勵函數是條件獨立的:

P[St+1,Rt+1∣St,At]=P[St+1∣St,At]P[Rt+1∣St,At]P[S_{t+1}, R_{t+1} | S_t, A_t] = P[S_{t+1} | S_t, A_t] P[R_{t+1} | S_t, A_t]P[St+1?,Rt+1?St?,At?]=P[St+1?St?,At?]P[Rt+1?St?,At?]

Model Learning

所謂Model Learning是指:從experience{S1,A1,R2,…,ST}\{S_1, A_1, R_2, \dots, S_T\}{S1?,A1?,R2?,,ST?},學習

S1,A1→R2,S2S_1, A_1\to R_2,S_2S1?,A1?R2?,S2?

S2,A2→R3,S3S_2, A_2\to R_3,S_3S2?,A2?R3?,S3?

…\dots

ST?1,AT?1→RT,STS_{T-1}, A_{T-1}\to R_T,S_TST?1?,AT?1?RT?,ST?

這實際上是一個監督學習的問題。其中,s,a→rs,a\to rs,ar是一個回歸問題(regression problem),而s,a→s′s,a\to s's,as是一個密度估計問題(density estimation problem)。

選擇一個損失函數,比如均方差,KL散度等,優化參數η\etaη來最小化經驗損失(empirical loss)。所有監督學習相關的算法都可以用來解決上述兩個問題。

根據使用的算法不同,可以有如下多種模型:查表式(Table lookup Model)、線性期望模型(Linear Expectation Model)、線性高斯模型(Linear Gaussian Model)、高斯決策模型(Gaussian Process Model)、和深信度神經網絡模型(Deep Belief Network Model)等。

這里主要以查表模型來解釋模型的構建。

總結

以上是生活随笔為你收集整理的机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。