強化學習和ADP(上)


1 簡介

每一個生物都與其環境相互作用,並利用這些相互作用來改善自身的活動,以生存和增長。我們稱基於與環境交互的動作修正為強化學習(RL)。這里有很多類型的學習,包括監督學習,非監督學習等。強化學習是指一個行動者或代理與它的環境相互作用,根據收到的刺激對其行為的響應,並修改其行為或控制政策。

有一類強化學習方法是基於演員(actor)-評論家(critic)結構。其中,行動者組成部分對環境應用一項行動或控制政策,而評論家組成部分則對該行動的價值進行評估。行動者-評論家結構包含兩個步驟:評論家對政策進行評價,然后是政策改進。政策評估步驟通過從環境中觀察當前行動的結果來執行。

生物體的生存范圍通常很狹窄,大多數物種可利用的資源也很貧乏。因此,大多數生物都以最佳方式行動,既能節約資源,又能達到目標。最佳行動可能是基於最低燃料、最低能量、最低風險、最高獎勵等等。

由於強化學習涉及修改基於環境響應的控制策略,人們有一種最初的感覺,它應該與自適應控制密切相關,自適應控制是控制系統社區高度重視的一個成功的控制技術家族。

2 動力系統和最優反饋控制

在反饋控制系統的研究和設計中,需要提供設計算法和分析技術,以保證可證明的性能和安全邊際,提供這種保證的一種標准方法是使用數學提供的框架和工具,比如馬爾可夫決策過程(Markov decision processes,MDP)。

2.1 動力學系統

(1)連續狀態空間:利用拉格朗日力學、哈密頓力學等對動力系統進行物理分析時,可以用非線性常微分方(Ordinary differential equations,ODEs)來描述系統。特別普遍的是非線性狀態空間形式的ODEs為\(\dot{x}=f(x,u)\),其中狀態\(x(t)\in R^n\)並且控制輸入\(u(t)\in R^m\)屬於連續空間中,許多系統(比如航空航天,汽車工業,機器人等)都可以采用這種形式進行表示。

(2)離散狀態空間:除了上述的連續狀態空間外,還存在離散狀態和動作空間MDP,這些動力學也是連續時間(continuous-time,CT)系統

2.1 離散時間系統的最優控制

有一些標准的方法對非線性連續時間狀態空間ODEs進行采樣或離散,以獲得便於計算機控制的采樣數據形式。所得到的系統在離散時間內展開,一般的狀態空間形式為\(x_{k+1}=F(x_k,u_k)\),其中\(k\)為離散時間指標。這些系統滿足1步馬爾可夫性質,因為它們在\(k+1\)時的狀態只依賴於之前\(k\)時的狀態和輸入。

為了便於分析,我們經常考慮一類用仿射狀態空間差分方程形式的非線性動力學描述的離散時間系統:

\[x_{k+1}=f(x_k)+g(x_k)u_k(1) \]

其中狀態\(x(t)\in R^n\)並且控制輸入\(u(t)\in R^m\)。這種形式方便分析,並且可以推廣到一般的抽樣數據形式\(x_{k+1}=F(x_k,u_k)\)

控制策略定義為從狀態空間到控制空間的函數\(h(\cdot):R^n \to R^m\),對於每一個狀態\(x_k\),策略定義一個控制動作為:

\[u_k=h(x_k)(2) \]

這種映射也被稱為反饋控制器。一個例子是線性狀態變量反饋\(u_k=h(x_k)=-Kx_k\)。另一個例子是傳遞函數動態控制器的設計。反饋控制策略的設計可采用多種方法,包括通過Riccati方程求解的最優控制、自適應控制、h-infinity控制、經典頻域控制等。

在強化學習的應用中,系統動力學甚至沒有考慮,作為環境的一部分,沒有顯式的動力學模型,如(1),甚至被使用。強化學習在具有未知動力學的復雜系統中獲得了相當大的成功,包括Tesauro的西洋雙陸棋玩家,以及能夠支持帶有多個連接拖車的卡車牽引車/拖車的控制器設計。然而,不特別考慮動力學也使它不可能提供明確的穩定性和性能證明,如控制系統社區所要求的接受。

3 目標導向最優性能

目標導向的最佳行為的概念是通過定義一個性能度量或成本函數來捕獲的:

\[V_h(x_k)=\sum_{i=k}^{\infin}\gamma^{i-k}r(x_i,u_i)(3) \]

其中\(0<\gamma \le 1\)為折扣因子,\(u_k=h(x_k)\)是控制反饋策略。這被稱為代價函數,是從當前時間\(k\)到無限未來的折扣成本之和。折扣率反映了這樣一個事實,即我們對未來獲得的成本不太關心。函數\(r(x_i,u_i)\)被稱為效用,是一步控制成本的度量。這可以根據最低燃料、最低能耗、最低風險等因素進行選擇。例如,一個標准形式是二次能量函數\(r(x_k,u_k)=x_k^TQx_k+u_k^TRu_k\)或者更一般的形式:

\[r(x_k,u_k)=Q(x_k)+u_k^TRu_k(4) \]

我們有時用它來說明,並且要求\(Q(x)\)\(R\)是正定的。

我們假設該系統在某個集合\(\Omega \in R^n\)上是可穩定的,意味着存在一個控制策略\(u_k=h(x_k)\)使得在閉環系統\(x_{k+1}=f(x_k)+g(x_k)h(x_k)\)是漸進穩定的。如果一個控制策略\(u_k=h(x_k)\)是穩定的並且可以計算出有限的代價函數\(V_h(x_k)\),則被稱為是可以接受的。

任何可接受的策略\(u_k=h(x_k)\),我們稱\(V_h(x_k)\)為損失或者價值。價值較小的策略被認為比其他策略更好。重要的是要注意,給定任何可接受的政策,其價值可以通過評估無限和(3)來確定。在某些情況下,這可以通過明確的計算來完成,或通過使用數字計算機進行模擬,或通過觀察閉環系統的軌跡進行實時實際評估。確定控制策略的值或代價的方法是反饋控制理論和強化學習的關鍵區別之一。

最優控制理論的目標是選擇成本最小的策略來獲得:

\[V^\star(x_k)=\min_{h(\cdot)}(\sum_{i=k}^{\infin}\gamma^{i-k}r(x_i,h(x_i)))(5) \]

這被稱為最優成本,或最優價值。給出了最優控制策略

\[h^\star(x_k)=\arg min_{h(\cdot)}(\sum_{i=k}^{\infin}\gamma^{i-k}r(x_i,h(x_i)))(6) \]

然而,問題是要最小化的不僅僅是一步成本,而是所有折扣成本的總和。對於一般的非線性系統,這個問題通常是非常困難甚至不可能精確求解的。

注意,在計算智能中,(3)通常被解釋為一種獎勵,目標是將其最大化。

人們發展了各種方法來簡化這個優化問題的求解。下面將要討論以下問題:

  • Bellman最優原理和動態規划
  • 策略迭代和價值迭代
  • 基於時間差異和ADP的各種形式的強化學習

4 Bellman最優原理和動態規划

對公式(3)進行重寫:

\[V_h(x_k)=r(x_k,u_k)+\gamma \sum_{i=k+1}^{\infin}\gamma^{i-(k+1)}r(x_i,u_i)(7) \]

可以得到一個等價的差分方程

\[V_h(x_k)=r(x_k,h(x_k))+\gamma V_h(x_{k+1}),V_h(0)=0(8) \]

也就是說,不需要求無窮和(3),只需求解差分方程,即可得到使用當前策略的值。這是一個非線性李雅普諾夫方程(Lyapunov equation)被稱為貝爾曼方程(Bellman equation)。

如何利用系統軌跡觀測數據在線實時求解Bellman方程?

離散時間(Discrete-time,DT)哈密頓量(Hamiltonian)能夠被定義為:

\[H(x_k,h(x_K),\bigtriangleup V_k)=r(x_k,h(x_k))+\gamma V_h(x_{k+1})-V_h(x_k)(9) \]

其中\(\bigtriangleup V_k=\gamma V_h(x_{k+1})-V_h(x_k)\) 被稱為正向差分算子。哈密頓函數捕獲沿系統軌跡的能量含量,反映在期望的最佳性能。貝爾曼方程要求哈密頓量對於與規定的策略相關的值等於零。

最優值可以用Bellman方程表示為:

\[V^\star(x_k)=\min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V_h(x_{k+1}))(10) \]

這個優化問題仍然很難解決。

最優策略具有這樣一種特性:無論之前的決策(即控制)是什么,剩下的決策必須構成由這些先前決策產生的狀態的最優策略。

對於方程來說,這意味着

\[V^\star(x_k)=\min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V^\star(x_{k+1}))(11) \]

這被稱為Bellman最優方程,或離散時間Hamilton-Jacobi-Bellman (HJB)方程。那么最優策略是:

\[h^\star(x_k)=\arg min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V^\star(x_{k+1}))(12) \]

使用這些方程確定最優控制器要比使用(10)簡單得多,因為它們在最小值參數中包含最優值。由於必須知道(11)中時間\(k+1\)的最優策略來確定時間\(k\)的最優策略,貝爾曼原理給出了一個時間倒推過程來解決最優控制問題。這些本質上都是離線規划方法。

這種過程在反饋控制設計中的一個例子是Linear Quadratic Regulator(LQR)問題的Riccati方程設計,它涉及到已知系統動力學的Riccati方程的離線求解(見下文)。DP方法通常需要系統動力學方程的全部知識。也就是說,\(f(x)\)\(g(x)\)必須已知。

4.1 策略迭代、值迭代和不動點方程

與動態規划離線設計相比,我們尋求強化學習方案以實現實時在線學習,最終不需要知道系統動力學\(f(x)\)\(g(x)\)。通過(12)來獲取一個新的策略。

\[{h}'(x_k)=\arg min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V_h(x_{k+1}))(13) \]

這被稱為推出算法的一步改進特性。也就是說,步驟(13)已經給了一個改進的策略。這就提出了以下確定最優控制的迭代方法,即策略迭代法

4.1.1 策略迭代算法(Policy Iteration(PI)Algorithm)

  • 初始化:選擇任何允許的(即穩定)控制策略\(h_0(x_k)\)
  • 策略評估的步驟:使用Bellman方程確定當前策略的價值。

\[V_{j+1}(x_k)=r(x_k,h_j(x_k))+\gamma V_{j+1}(x_{k+1})(14) \]

  • 策略改進步驟:通過下面的方程確定一個改進策略。

\[h_{j+1}(x_k)=\arg min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V_{j+1}(x_{k+1}))(15) \]

如果該Utility具有特殊形式,且動力方程為(1),則政策改進步驟如下

\[h_{j+1}(x_k)=-\frac{\gamma}{2}R^{-1}g^T(x_k)\bigtriangledown V_{j+1}(x_{k+1})(16) \]

其中\(\bigtriangledown V(x)=\partial V(x)/ \partial x\)為價值函數的梯度,這里解釋為列向量。

注意,PI中的初始政策必須是可接受的,這要求它是穩定的。使用貝爾曼方程(14)評估當前政策的價值,相當於確定所有從狀態\(x_k\)開始使用策略\(h_j(x_k)\)的值。這被稱為完全備份,並可能涉及大量計算。

事實上,可以證明Bellman方程是一個不動點方程。也就是說,給定一個容許的策略\(u_k=h(x_k)\),有一個唯一的不動點\(V_h(x_k)\),以及下面的壓縮映射:

\[V^{i+1}(x_k)=r(x_k,h(x_k))+\gamma V^i(x_{k+1}) \]

可以從任何初始值\(V^0(x_k)\)開始迭代,其結果是:\(V^i(x_k)\to V_h(x_k)\),因此可以將策略迭代步驟(14)改為:

\[V^{i+1}(x_k)=r(x_k,h_j(x_k))+\gamma V^i(x_{k+1}),for i=1,2,....,(17) \]

其中\(i\)步中的迭代使用相同的策略\(h_j\)直到收斂。當\(i \to \infin\)時,有\(V^i(x) \to V_{j+1}(x)\)。一般選擇\(j\)\(V^0(x_{k+1})=V_j(x_{k+1}))\)。這可以稱為迭代策略迭代。值得注意的是,(17)中的每一步要實現(14)中的單個步驟要簡單得多。

這就進一步提出了對固定的有限整數\(K\),只對(17)進行\(K\)步迭代的想法,也就是說,只采取K步來評估當前政策的價值。這被稱為通用策略迭代(GPI)。在GPI中,在每個策略更新步驟中,只對數值做部分備份。一個極端的情況是取\(K=1\),這就得到了下一個算法,即所謂的價值迭代(Value Iteration)。在這里,只進行了1步的數值備份。

4.1.2 價值迭代算法(Value Iteration(VI)Algorithm)

  • 初始化:選擇一個控制策略\(h_0(x_k)\),不要求可行性和穩定性。
  • 價值更新步驟:使用下面的方程更新價值

\[V_{j+1}(x_k)=r(x_k,h_j(x_k))+\gamma V_{j}(x_{k+1})(18) \]

  • 策略改進步驟:使用下面的方程確定一個改進策略

\[h_{j+1}(x_k)=\arg min_{h(\cdot)}( r(x_k,h(x_k))+\gamma V_{j+1}(x_{k+1}))(19) \]

需要注意的是,現在(18)右邊使用的是舊值,而不是PI步驟(14)。已經證明VI在某些情況下是收斂的。請注意,VI不需要一項初步的穩定政策。

需要注意的是,PI在每一步都要求(14)的解,這是一個非線性李雅普諾夫方程。這個解對於一般的非線性系統是困難的。另一方面,VI依賴於(18)的解,它是一個簡單的遞歸方程。

一般來說,不動點方程可用來作為在線強化學習算法的基礎,該算法通過觀察沿着系統軌跡積累的數據來學習。我們不久將根據這些概念發展強化學習計划。首先,為了明確觀點,讓我們考慮LQR的情況。

5 DT線性二次調節器(LQR)案例

本節的主要目的是表明策略迭代和值迭代的強化學習概念實際上與反饋控制系統中熟悉的思想是一致的。第二個目的是為進一步闡明其意義的一類重要問題,對上述結構給出明確的表達式。

一類重要的離散時間系統可以用線性時不變的狀態空間形式來描述:

\[x_{k+1}=Ax_k+Bu_k (20) \]

其中狀態\(x(t)\in R^n\)並且控制輸入\(u(t)\in R^m\)。控制策略是狀態反饋的形式。

\[u_k=h(x_k)=-Kx_k(21) \]

控制策略是由一個恆定的反饋增益矩陣\(K\)來確定。給定的策略,代價函數是二次函數的和。

\[V_h(x_k)=\sum_{i=k}^{\infin}(x_i^TQx_i+u_i^TRu_i) \]

\[=\sum_{i=k}^{\infin}x_i^T(Q+K^TRK)x_i \equiv V_K(x_k)(22) \]

其中效用Utility \(r(x_k,u_k)=x_k^TQx_k+u_k^TRu_k\),加權矩陣\(Q=Q^T \ge 0\)\(R=R^T>0\)

假設\((A,B)\)是穩定的,在閉環系統中存在一個反饋增益矩陣\(K\)

\[x_{k+1}=(A-BK)x_k \equiv A_c(x_k)(23) \]

是漸進穩定的。

5.1 DT LQR的最優控制解

該設計的目標是選擇一個狀態反饋增益矩陣\(K\),即控制策略,去最小化當前狀態\(x_k\)的代價函數\(V_h(x_k)=V_K(x_k)\)。這被稱為線性二次調節器(LQR)問題。

在當前狀態下,LQR的最優值是二次的,可以表示為:

\[V^*(x_k)=x_k^TPx_k(24) \]

對於一些矩陣\(P\),這有待確定。因此,LQR的貝爾曼方程為

\[x_k^TPx_k=x_k^TQx_k+u_k^TRu_k+x_{k+1}^TPx_{k+1}(25) \]

根據反饋增益,將(20)(21)加入到(25)中可以寫成

\[x_k^TPx_k=x_k^T(Q+K^TRK+(A-BK)^TP(A-BK))x_k(26) \]

因為這必須對所有的當前狀態\(x_k\)都成立,所以有

\[(A-BK)^TP(A-BK)-P+Q+K^TRK=0(27) \]

這個矩陣方程在\(P\)中是線性的,當\(K\)是固定的時候被稱為李雅普諾夫方程。在給定穩定增益舉證\(K\)的情況下,解這個方程得到\(P=P^T>0\),以至於使用策略\(K\)的代價可以表示為\(V_K(x_k)=x_k^TPx_k\)

\[V_K(x_k)=\sum_{i=k}^{\infin}x_i^T(Q+K^TRK)x_i=x_k^TPx_k(28) \]

方程很容易解出LQR。把貝爾曼方程寫成

\[x_k^TPx_k=x_k^TQx_k+u_k^TRu_k+(Ax_k+Bu_k)^TP(Ax_k+Bu_k)(29) \]

\(u_k\)求微分可以簡單的實現最小化

\[Ru_k+B^TP(Ax_k+Bu_k)=0 \]

or

\[u_k=-(R+B^TPB)^{-1}B^TPAx_k(30) \]

因此最優反饋增益矩陣\(K\)為:

\[K=(R+B^TPB)^{-1}B^TPA(31) \]

替換到貝爾曼方程(29)並簡化可以得到DT HJB方程

\[A^TPA-P+Q-A^TPB(R+B^TPB)^{-1}B^TPA=0(32) \]

這個方程是P的二次方程,被稱為黎卡提(Riccati)方程。

為了解決DT LQR最優化控制問題,我們首先要求解Riccati方程(32)得到\(P\),然后通過(24)獲取到最優價值\(V^\star(x_k)\)以及通過(31)得到最優策略

通過(25)(26)(27)來求解Riccati方程是一種離線的求解過程,需要完全知道系統的動力學\((A,B)\)

5.2 利用策略迭代和價值迭代求解DT LQR問題

對於LQR, Bellman方程(8)寫成(25),因此等價於Lyapunov方程(32)。因此,在策略迭代算法中,LQR的策略評估步驟為

\[(A-BK_j)^TP_{j+1}(A-BK_j)-P_{j+1}+Q+K_j^TRK_j=0(33) \]

策略改進為:

\[K_{j+1}=(R+B^TP_{j+1}B)^{-1}B^TP_{j+1}A(34) \]

然而,這兩個方程的迭代正是Hewer’s算法求解Riccati方程(32)。Hewer證明了它在穩定性和可檢測性假設下是收斂的。

在價值迭代算法中,LQR的策略評估步驟為

\[P_{j+1}=(A-BK_j)^TP_{j}(A-BK_j)+Q+K_j^TRK_j(35) \]

策略改進同樣也是(34)

Lancaster和Rodman[1995]對這兩個方程的迭代進行了研究,發現在上述假設下,它收斂於Riccati方程的解。

注意,策略迭代在每一步都涉及到Lyapunov方程(33)的完整解,並且在每一步都需要一個穩定增益\(K_j\)。這在強化學習術語中稱為完全備份。另一方面,值迭代在每一步只涉及Lyapunov遞歸(35),這是非常容易計算的,不需要穩定增益。這被稱為強化學習中的部分備份。

強化學習提出了求解Riccati方程的另一種算法,即廣義策略迭代(Generalized Policy Iteration,GPI)。在GPI中,每一步都要執行以下操作。

5.3 廣義策略迭代算法求解LQR

  • 初始化:選擇一個控制策略\(K_0\),不要求可行性或者穩定
  • 價值迭代過程:在步驟\(j\)中,使用下面的方程更新價值

\[P_j^{i+1}=(A-BK_j)^TP_j^{i}(A-BK_j)+Q+K_j^TRK_j \]

\[i=0,1,...,K-1(36) \]

對於某個有限的\(K\),設置初始條件\(P_j^0=P_j\)\(P_{j+1}=P_j^K\).

  • 策略改進過程:使用下面的方程得到改進策略

\[K_{j+1}=(R+B^TP_{j+1}B)^{-1}B^TP_{j+1}A(37) \]

該算法在每次迭代\(j\)時,對求解Lyapunov方程采取\(K\)步。也就是說,GPI中的值更新步由相同固定增益的遞歸(35)的K步組成。設置\(K=1\)得到Value Iteration,即(35),而設置\(K=\infin\)(即perform(36)直到收斂)得到Policy Iteration,它求解Lyapunov方程(33)。

6 強化學習,ADP和自適應控制

采用動態規划方法求解最優控制是一個逆時過程。因此,它可以用於離線規划,但不能用於在線學習。這些方法被廣泛地稱為近似動態規划。這有兩個關鍵因素:時間差(TD)誤差和值函數逼近(VFA)。

6.1 時間差分(Temporal Difference,TD)和值函數逼近(Value Function Approximation,VFA)的ADP算法

近似動態規划(ADP)或神經動態規划(NDP)是一種利用沿系統軌跡的測量數據實時在線確定最優控制方案的實用方法。它提供了動態規划問題的實時、正向方法和值函數的逼近方法。

(1)時間差分

時間差(TD)誤差:為了將這些概念轉化為實時前向在線求解方法,在Bellman方程的基礎上定義了一個時變殘差方程誤差為

\[e_k=r(x_k,h(x_k))+\gamma V_h(x_{k+1})-V_h(x_k)(38) \]

我們注意到右邊是DT hamiltonian函數。函數\(e_k\)被稱為時間差誤差。如果貝爾曼方程成立,則該誤差等於0。因此對於一個固定的控制策略,對於值函數\(V_h(\cdot)\),即TD方程的最小二乘解,可以再每次\(k\)時求解方程\(e_k=0\)

\[0=r(x_k,h(x_k))+\gamma V_h(x_{k+1})-V_h(x_k)(39) \]

這將產生與使用當前策略對應的值的最佳近似值,即與總和(3)的近似值。

TD誤差可以被認為是預測性能和觀測性能之間的預測誤差,以響應應用於系統的一個動作。

求解TD方程相當於在線求解非線性李雅普諾夫方程,不知道系統動力學,只使用沿系統軌跡測量的數據。不幸的是,對於一般的非線性系統,TD方程很難求解。

值函數近似(VFA)。為了給TD方程的求解提供一種實用的方法,我們可以用參數逼近器來逼近值函數\(V_h(\cdot)\)。這被稱為近似動態規划(ADP),或者自適應動態規划,都使用了神經網絡作為近似器。

(2)值函數近似(VFA)

為了去更好的理解這種方法,用LQR問題作為例子講述VFA方法。在LQR問題中,我們知道控制策略的值是關於狀態的二次函數\(u_k=-Kx_k\),即存在一個矩陣\(P\),替換TD error有:

\[e_k=x_k^TQx_k+u_k^TRu_k+x_{k+1}^TPx_{k+1}-x_k^TPx_k(40) \]

這個方程在未知參數矩陣\(P\)中是線性的。為了進一步簡化TD方程,用克羅內克積(Kronecker product)來表示:

\[V_K(x_k)=x_k^TPx_k=(vec(P))^T(x_k\otimes x_k) \equiv \bar{P}^T\bar{x_k}(41) \]

其中\(\otimes\) 是克羅內克積,\(vec(P)\)是矩陣\(P\)中的列向量疊加起來的向量。\(P\)是勻稱的,只有\(n(n+1)/2\)個元素,該方程中位置的參數向量是\(\bar{P}\),為\(P\)中的元素。

使用上述結構,可以將TD error重寫為:

\[e_k=x_k^TQx_k+u_k^TRu_k+\bar{P}^T \bar{x}_{k+1}-\bar{P}^T\bar{x}_k \]

\[=r(x_k,u_k)+\bar{P}^T \bar{x}_{k+1}-\bar{P}^T\bar{x}_k(42) \]

在LQR的情況下,由\(x_k\)分量中的二次函數提供了值函數\(V_h(x_k)\)的完整基集。在非線性情況下,我們假定值是足夠光滑的。然后根據威爾斯特拉斯高階逼近定理,存在稠密基集\(\{\phi(x)\}\)以致:

\[V_h(x)=\sum_{i=1}^{\infin}\omega_i \varphi_i(x)=\sum_{i=1}^{L}\omega_i \varphi_i(x)+\sum_{i=L+1}^{\infin}\omega_i \varphi_i(x)\\ \equiv W^T\phi(x)+\varepsilon_L(x)(43) \]

其中基向量\(\phi(x)=[\varphi_1(x),\varphi_2(x),....\varphi_L(x) ]\)\(R^n\to R^L\),並且\(\varepsilon_L(x)\)\(L\)趨近於無窮大時,趨近於0。在威爾斯特拉斯定理中,標准用法取一個多項式基集。在神經網絡社區中,還給出了其他各種基集的逼近結果,包括sigmoid型、雙曲正切、高斯徑向基函數等。其中,標准結果表明,神經網絡近似誤差\(\varepsilon_L(x)\)是一個緊集上的常數。\(L\)表示隱層神經元的數量。

使用值函數近似(VFA),其中評論家和(如果需要的話)參與者使用函數近似器參數化,CoD(curse of dimensionality)問題得到了緩解。

6.2 ADP在線強化學習最優控制

假設有個近似:

\[V_h(x)=W^T\phi(x)(44) \]

帶入貝爾曼TD方程得到

\[e_k=r(x_k,h(x_k))+\gamma W^T\phi(x_{k+1})-W^T\phi(x_k)(45) \]

\(e_k=0\)是一個不動點方程,它是一個一致性方程,在每個時間\(k\)都滿足對應於當策略\(u=h(x)\)的值\(V_h(\cdot)\)。因此,可以采用求解TD方程的迭代過程,包括策略迭代和值迭代。

(1)在線策略迭代算法

  • 初始化:選在一個可允許的控制策略\(h_0(x_k)\).
  • 策略評估:求\(W_{j+1}\)的最小二乘解

\[W_{j+1}^T(\phi(x_k)-\gamma \phi(x_{k+1}))=r(x_k,h_j(x_k))(46) \]

  • 策略改進:確定一個改進的策略

\[h_{j+1}(x_k)=\arg min_{h(\cdot)}(r(x_k,h(x_k))+\gamma W_{j+1}^T \varphi(x_{k+1}))(47) \]

如果效用Utility具有特殊形式(4),而動態是(1),那么策略改進步驟如下所示

\[h_{j+1}(x_k)=-\frac{\gamma}{2}R^{-1}g^T(x_k)\bigtriangledown \phi^T(x_{k+1})W_{j+1}(48) \]

其中\(\bigtriangledown \phi(x)=\partial \phi(x)/\partial x \in R^{L\times n}\)是激活函數向量的雅可比矩陣。

注意,這是一個標量方程,而未知參數向量\(W_{j+1} \in R^L\)\(L\)個元素。在時間\(k+1\),我們測量之前的狀態\(x_k\),控制\(u_k\),下一個狀態\(x_{k+1}\),並計算效用\(r(x_k,h_j(x_k))\)。在隨后的時間里,使用相同的策略\(h_j(\cdot)\)重復這一過程,直到至少有\(L\)個方程,在這一點上,我們可以確定LS(least-squares)解決方案\(W_{j+1}\)。人們可以使用批處理LS來實現這一目標。

然而,請注意(46)形式的方程正是用遞歸最小二乘(RLS)技術求解的方程。因此,可以在線運行RLS直到收斂。重寫(46)

\[W_{j+1}^T\Phi(k) \equiv W_{j+1}^T(\phi(x_k)-\gamma \phi(x_{k+1}))=r(x_k,h_j(x_k))(49) \]

其中\(\Phi(k) \equiv (\phi(x_k)-\gamma \phi(x_{k+1}))\)是回歸矢量。在PI算法的第\(j\)步,我們將控制策略固定為\(u=h_j(x)\)。然后,在每一個時間\(k\),我們測得數據\((x_k,x_{k+1},r(x_k,h_j(x_k)))\)。然后執行RLS的一個步驟。這樣重復幾次,直到收斂\(V_{j+1}(x)=W_{j+1}^T \phi(x)\)

注意,對於RLS收斂,回歸向量\(\Phi(k) \equiv (\phi(x_k)-\gamma \phi(x_{k+1}))\)必須持續計算。

作為RLS的替代方法,可以使用梯度下降調優方法,例如

\[W_{j+1}^{i+1}=W_{j+1}^{i}-\alpha \Phi(k)((W_{j+1}^i)^T\Phi(k)-r(x_k,h_j(x_k)))(50) \]

其中\(\alpha>0\)為調節參數,指數\(i\)隨時間指數\(k\)的每一增量而增加。一旦值參數收斂,控制策略按(47),(48)更新。然后,重復步驟\(j+1\)。整個過程重復進行,直到收斂到最優控制解,即(11),(12)的近似解。

這提供了一個在線強化學習的人工算法,通過測量沿着系統軌跡的數據,使用策略迭代來解決最優控制問題。同樣,基於值迭代的在線強化學習算法也可以得到。

(2)在線價值迭代

  • 初始化:選擇任何一個控制策略不要求可行性和穩定性\(h_0(x_k)\)
  • 價值更新:確定最小二乘解\(W_{j+1}\)

\[W_{j+1}^T\phi(x_k)=r(x_k,h_j(x_k))+W_j^T\gamma \phi(x_{k+1})(51) \]

  • 策略改進:使用下面的方程確定改進的策略

\[h_{j+1}(x_k)=-\frac{\gamma}{2}R^{-1}g^T(x_k)\bigtriangledown \phi^T(x_{k+1})W_{j+1}(52) \]

為了實時解決,可以使用批處理LS、RLS或基於梯度的方法。注意,舊的權重參數在(51)的右邊。因此,回歸向量現在是\(\phi(x_k)\),這對RLS的收斂一定是持久的激勵。

6.3 強化學習和自適應控制

這些強化學習算法的形式如圖所示。請注意,它們屬於演員評論家結構。請注意評論家中的值更新是通過使用標准自適應控制技術(即RLS)求解(46)或(51)來執行的。然后使用(52)更新控件。

強化學習的重要性在於它提供了一個自適應控制器,收斂到最優控制。間接自適應控制器的設計,首先估計系統參數,然后解決Riccati方程,但這些是笨拙的。強化學習提供在線學習的最優自適應控制器。

注意,這是一個雙時間尺度的系統,其中內環的控制動作發生在采樣時間,但性能是在一個更長的范圍內的外環評估,對應於RLS所需的收斂時間。

值得注意的是,在LQR的情況下,Riccati方程(32)提供了最優控制解。李亞普諾夫方程(27)等價於(45)。動力學(A,B)必須是已知的解李雅普諾夫方程和Riccati方程。因此,這些方程提供了離線規划解決方案。另一方面,不動點沿系統軌跡方程可以在線評估利用強化學習技術通過測量每次數據集\((x_k,x_{k+1},r(x_k,h_j(x_k)))\),由當前狀態,下一個狀態,以及由此產生的效用。這相當於通過評估非最優控制器的性能來在線學習最優控制。

強化學習實際上是在線求解Riccati方程,並且不知道動力學,通過觀察數據\((x_k,x_{k+1},r(x_k,h_j(x_k)))\)在每次沿着系統軌跡。

6.4 第二Actor神經網絡的介紹

PI強化學習算法解決了李亞普諾夫方程。在LQR PI的問題中,例如,這意味着Lyapunov(33)方程已被替換為

\[\bar{P}_{j+1}^T(\bar{x}_{k+1}-\bar{x}_k)=r(x_k,h_j(k))=x_k^T(Q+K_j^TRK_j)x_k(53) \]

目標是求取參數\(\bar{P}_{j+1}\),對於這一步,動態\((A,B)\)可以是未知的,因為它們是不需要的。因此,強化學習在線求解每一步的非線性李雅普諾夫方程(Bellman方程),而不知道動力學,只使用沿着系統軌跡觀測的數據。

但是,請注意,在LQR的情況下,策略更新是由

\[K_{j+1}=(R+B^TP_{j+1}B)^{-1}B^TP_{j+1}A(54) \]

這需要對\((A,B)\)的動力學有充分的了解。進一步注意,實施例(47)在非線性情況下不易實現,因為它隱含在控制中,因為\(x_{k+1}\)依賴於\(h(\cdot)\),並且是非線性激活函數的參數。

這些問題通過為控制策略引入第二個神經網絡來解決,稱為actor NN。因此,引入一個參與者參數逼近器結構

\[u_k=h(x_k)=U^T\sigma(x_k)(55) \]

其中\(\sigma(x):R^n \to R^m\)是激活函數的向量,\(U\)是權值為未知參數的矩陣。

Critic網絡的收斂需要依執行(47)或者(52),為了實現這一點,可以使用梯度下降方法來調整actor權重\(U\),例如

\[U_{j+1}^{i+1}=U_{j+1}^{i}-\beta \sigma(x_k)(2R(U_{j+1}^i)^T\sigma(x_k) \]

\[+\gamma g(x_k)^T\bigtriangledown \phi^T(x_{k+1})W_{j+1})^T(56) \]

\(\gamma\)為調諧參數。調諧指標\(i\)隨時間指標\(k\)遞增。

引入第二Actor NN完全避免了對狀態內部動力學知識的需要)。

在雙網絡結構中,保持一個神經網絡的權值不變,而調整另一個神經網絡的權值直到收斂。重復這個過程,直到兩個神經網絡都收斂。這是一種在線自適應最優控制系統,其值函數參數在線調整,收斂到最優值和最優控制。

在[He and Jagannathan 2007]中給出了同步調整演員和評論家的方法。在此基礎上,利用李雅普諾夫能量控制技術,實現了神經網絡的同步調諧,保證了閉環系統的穩定性。

7 Q learning and Dual Learning

Werbos[1974, 1989, 1991, 1992]介紹了近似動態規划(ADP)的四種基本方法。他把基於學習標量值函數\(V_h(x_k)\)的強化學習稱為啟發式動態編程(HDP)。動作依賴HDP (AD HDP),由Watkins[1989]引入為離散態MDP的Q學習,學習所謂的Q函數(也是一個標量),並允許人們在不了解系統動力學的情況下執行強化學習。雙啟發式編程(DHP)使用在線學習的協態函數\(\lambda_k=\partial V_h(x_k)/\partial x_k\),這是一個n向量梯度,因此攜帶比值更多的信息。AD DHP基於學習Q函數的梯度。

7.1 Q Learning

不幸的是,在價值函數學習或HDP中,人們需要系統動力學知識(見(48)和(54))。至少,需要輸入耦合函數\(g(x_k)\)\(B\)矩陣。這是因為在執行最小化時(沒有控制約束)

\[h_{j+1}(x_k)=\arg min_{h(\cdot)}(r(x_k,h(x_k))+\gamma W_{j+1}^T \phi(x_{k+1}))(57) \]

必須就控制微分來獲得

\[0=\frac{\partial}{\partial u_k}(Q(x_k)+u_k^TRu_k)+\frac{\partial}{\partial u_k}\gamma W_{j+1}^T \phi(x_{k+1}) \]

\[=2Ru_k+(\frac{\partial}{\partial u_k}\phi(x_{k+1}))^T \gamma W_{j+1} \]

\[=2Ru_k+(\frac{\partial x_{k+1}}{\partial u_k})^T\bigtriangledown \phi^T(x_{k+1})\gamma W_{j+1}(58) \]

然而在評估

\[\frac{\partial x_{k+1}}{\partial u_k}=g(x_k)(59) \]

其中一個要求系統輸入矩陣\(g(\cdot)\)。如果使用第二個交流神經網絡,那么仍然需要\(g(\cdot)\)調整actor神經網絡的權重,按(56)。

為了避免了解任何系統動力學,必須提供一個替代路徑,對不經過系統的控制輸入取偏導數。Werbos使用了反向傳播的概念來實現這一點,使用的是動作依賴的HDP (AD HDP)。Watkins[1989]為離散空間MDP引入了類似的概念,他稱之為Q學習。

考慮Bellman方程(8),它允許人們計算使用任何規定的允許策略\(h(\cdot)\)的值。最優控制由(10)或(11)確定。因此,讓我們定義與政策\(u=h(x)\)相關的Q(質量)函數為:

\[Q_h(x_k,u_k)=r(x_k,u_k)+\gamma V_h(x_{k+1})(60) \]

注意,Q函數是\(k\)時刻狀態\(x_k\)和控制\(u_k\)的函數。它被稱為動作值函數。定義最優Q函數為

\[Q^\star(x_k,u_k)=r(x_k,u_k)+\gamma V^\star(x_{k+1})(61) \]

\(Q^*\)來表示Bellman最優方程,用非常簡單的形式表示

\[V^\star(x_k)=\min_u(Q^\star(x_k,u))(62) \]

最優控制為:

\[h^\star(x_k)=\arg min_u(Q^\star(x_k,u))(63) \]

在沒有控制約束的情況下,通過求解得到最小值

\[\frac{\partial}{\partial u}Q^\star(x_k,u)=0(64) \]

與(58)相反,它不需要涉及系統動力學的任何導數。也就是說,假設我們知道每\((x_k,u_k)\)的Q函數,我們不需要找到\(\partial x_{x+1}/\partial u_k\)

在值函數學習(HDP)中,必須學習並存儲所有可能狀態\(x_k\)的最優值。相比之下,在Q學習中,必須存儲\((x_k,u_k)\)的所有值的最優Q函數,即在每種可能狀態下執行的所有可能控制動作的最優Q函數。

7.2 不動點方程的Q函數

我們想采用在線強化技術來學習Q函數。為此,我們必須確定:1、Q的不動點方程使用TD; 2、一個適合Q使用VFA的參數逼近器結構(實際上是Q函數逼近- QFA)。

要確定Q的不動點方程,請注意

\[Q_h(x_k,h(x_k))=V_h(x_k)(65) \]

因此Q的Bellman方程是

\[Q_h(x_k,u_k)=r(x_k,u_k)+\gamma Q_h(x_{k+1},h(x_{k+1}))(66) \]

或者

\[Q_h(x_k,h(x_k))=r(x_k,h(x_k))+\gamma Q_h(x_{k+1},h(x_{k+1}))(67) \]

最優Q值滿足或

\[Q^\star(x_k,u_k)=r(x_k,u_k)+\gamma Q^\star(x_{k+1},h^*(x_{k+1}))(68) \]

式(67)是Q的不動點方程或Bellman方程。將其與式(8)相比較,現在可以使用上述任何一種在線強化學習方法作為ADP的基礎,包括PI和VI。

7.3 Q函數用於LQR情況

為了激勵Q函數近似(QFA)選擇合適的近似器結構,讓我們計算LQR情況下的Q函數。

根據(60)我可以得到LQR

\[Q_K(x_k,u_k)=x_k^TQx_k+u_k^TRu_k+x_{k+1}^TPx_{k+1}(69) \]

其中\(P\)是規定策略\(K\)的李雅普諾夫方程的解。因此

\[Q_K(x_k,u_k)=x_k^TQx_k+u_k^TRu_k+(Ax_k+Bu_k)^TP(Ax_k+Bu_k)(70) \]

或者

\[Q_K(x_k,u_k)=\begin {bmatrix} x_k \newline u_k \end{bmatrix}^T \begin{bmatrix} Q+A^TPA & B^TPA \newline A^TPB & R+P^TPB \end{bmatrix} \begin{bmatrix} x_k \newline u_k \end{bmatrix} \equiv z_k^THz_k(71) \]

這是LQR的Q函數。它是\((x_k,u_k)\)的二次元。

使用克羅內克方程寫為:

\[Q_K(x_k,u_k)=\bar{H}^T \bar{z}_k \]

然后不懂帶方程(67)可以寫為:

\[\bar{H}^T \bar{z}_k=x_k^TQx_k+u_k^TRu_k+\bar{H}^T \bar{z}_{k+1} \]

其中\(u_k=-Kx_k\),對應(42)

7.4 Q函數的強化學習使用策略或值迭代

以LQR為例子,在一個非線性系統中,假設使用一個參數近似神經網絡為:

\[Q_h(x,u)=W^T\phi(x,u)=W^T\phi(z)(72) \]

基於(67)可以寫出TD error

\[e_k=r(x_k,h(x_k))+\gamma W^T \phi(z_{k+1})-W^T\phi(z_k)(73) \]

現在強化學習方法,包括PI或VI,可以用來在線學習\(\bar{H}=vec(H)\),如上所述。策略迭代如下所示。RLS或梯度下降可用於識別與給定策略\(K\)相關的Q函數,如(46)和(51)中所討論的。

對於這些方法,策略更新步驟基於

\[\frac{\partial}{\partial u}Q_h(x_k,u)=0(74) \]

對於LQR的情況,定義

\[Q_K(x_k,u_k)=z_k^THz_k=\begin{bmatrix} x_k \newline u_k \end {bmatrix}^T\begin{bmatrix} H_{xx} & H_{xu} \newline H_{ux}&H_{uu} \end{bmatrix}\begin{bmatrix} x_k \newline u_k\end{bmatrix}(75) \]

然后通過(74)得出

\[0=H_{ux}x_k+H_{uu}u_k \]

或者

\[u_k=-(H_{uu})^{-1}H_{ux}x_k(76) \]

由於在在線強化學習中發現了二次核矩陣\(H\),因此該步驟不需要系統動力學。注意執行(74)上(71)正好是(54)。

對於一般非線性情況的Critic網絡的情況我們可以得到

\[\frac{\partial}{\partial u}Q_h(x_k,u)=\frac{\partial}{\partial u}W^T \phi(x_k,u)=0(77) \]

由於這種神經網絡明確地依賴於控制動作\(u\)(動作依賴HDP),其導數可以在不參考系統動力學等進一步細節的情況下計算。為了求解\(u\)以獲得一個顯式策略\(u_k=h(x_k)\),需要對這個神經網絡結構應用隱函數定理。

PI和VI都可以用於Q學習。為說明起見,我們給出

(1)Q learning 策略迭代算法

  • 初始化:選擇一個可行的控制策略\(h_0(x_k)\)
  • 策略評估:求\(W_{j+1}\)的最小二乘解

\[W_{j+1}^T(\phi(z_k)-\gamma \phi(z_{k+1}))=r(x_k,h_j(x_k))(78) \]

  • 策略改進:求解一個改進的策略

\[h_{j+1}(x_k)=\arg min_{h(\cdot)}(W_{j+1}^T\phi(x_k,u))(79) \]

(79)中的最小值由(77)給出,並且可以更明確地計算出為神經網絡選擇的基激活函數。例如,在LQR的情況下,有(76)。

在政策改進中,第一步指出了一個問題。檢查(71),並注意到對於Q學習,一個設置\(u_k=-Kx_k\)\(K\)當前的政策。這使得\(u_k\)依賴於\(x_k\),意味着用LS技術求解(78)所需的\(\Phi(k)=(\phi(z_k)-\gamma \phi(z_{k+1}))\)上的激發持久性不成立。因此,必須添加一個PE探測噪音,以便\(u_k=-Kx_k+n_k\)。在[Al-Tamimi 2007]中表明,這不會導致Q函數估計的任何偏差。

因此,Q學習可以在不知道任何系統動力學\((A,B)\)的情況下在線有效地求解Riccati方程。

Werbos[1991, 1992]的一些想法對Q很有吸引力。首先,已經找到了一種替代路徑,可以在不經過系統動力學的情況下反向傳播偏導數\(\partial/\partial u_k\)(比較(58)和(77))。第二,Q函數批判NN(72)現在不僅有狀態\(x_k\),而且有控制動作\(u_k\)作為它的輸入。這就是\(\partial /\partial u_k\)可以不經過系統進行評估的原因。我們說批評家現在依賴於行動;因此,Werbos將此稱為動作依賴HDP (AD HDP)。

7.5 Dual or Gradient Learning

基於該值的HDP強化學習方法可以使用Bellman或不動點方程來確定

\[V_h(x_k)=r(x_k,h(x_k))+\gamma V_h(x_{k+1})(80) \]

基於Q函數的AD HDP強化學習方法可以通過Bellman或不動點方程來確定

\[Q_h(x_k,h(x_k))=r(x_k,h(x_k))+\gamma Q_h(x_{k+1},h(x_{k+1}))(81) \]

它的值和Q函數都是標量,因此學習是在來自環境的相當貧乏的響應刺激的基礎上進行評估的,對於具有大量n個狀態的系統,收斂速度可能會很慢。

Werbos[1989, 1991, 1992]提出了在costate上使用強化學習技術。

\[\lambda_k=\partial V_h(x_k)/\partial x_k(82) \]

這是一個n向量梯度,因此包含比值更多的信息。他稱之為雙重啟發式編程(DHP)。要做到這一點,必須找到一個不動點方程的余態。這很容易通過微分得到

\[\frac{\partial}{\partial x_k}V_h(x_k)=\frac{\partial}{\partial x_k}r(x_k,h(x_k))+\frac{\partial}{\partial x_k} \lambda V_h(x_{k+1}) \]

或者

\[\lambda_k=\frac{\partial r(x_k,u_k)}{\partial x_k}+[\frac{\partial u_k}{\partial x_k}]^T \frac{\partial r(x_k,u_k)}{\partial u_k}+\gamma [\frac{\partial x_{k+1}}{\partial x_k}+\frac{\partial x_{k+1}}{\partial u_k} \frac{\partial u_k}{\partial x_k}]^T\lambda_{k+1} \]

為規定的政策\(u_k=h(x_k)\)。現在可以使用神經網絡結構來近似\(\lambda _k\),並進行強化學習。

不幸的是,任何基於不動點方程的強化學習方案都需要自\(\partial x_{k+1}/\partial x_k=f(x_k),\partial x_{k+1}/\partial u_k=g(x_k)\)以來的全動力學知識。此外,這需要對n向量進行在線RLS實現,這是計算密集型的。

類似地,你可以找到強化學習技術-基於梯度的Q函數\(\lambda_k^x=\partial Q_h(x_k,u_k)/\partial x(k),\lambda _k^u=\partial Q_h(x_k,u_k)/\partial u_k\)。這被稱為AD DHP,和DHP有相同的缺陷。

參考:

[1] Adaptive Dynamic Programming: An Introduction.

[2] Reinforcement Learning and Adaptive Dynamic Programming for Feedback Control.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM