跳轉到

07.3 強化學習控制#

本章導讀#

MPC 還需要模型;強化學習(RL)連模型都不用—— 直接從試誤中學出控制策略。 2015 年 DQN、DDPG 興起,AlphaGo 展示決策控制的威力, 「無模型學習式控制」成為當代控制的新篇章。

淺顯說明#

學騎腳踏車:沒有人給你車的力學方程,你只是試、摔、調整、再試。 大腦默默在學一個「價值函數」——哪個動作在什麼情況下比較好。

強化學習就是把它變成演算法:

  1. 試:執行動作 \(a\) (控制量 \(u\) )。
  2. 得獎:環境給回饋 \(r\) (代價的負數)。
  3. 學:更新價值估計 \(V\) 或策略 \(\pi\) 。

與 Bellman 動態規劃(06.2)的唯一差別:**沒有模型 \(f\) **—— Bellman 方程中的 \(V(f(x, u))\) 無法直接算,只能「試了才知道」,用取樣估計。

正規理論#

馬可夫決策過程(MDP)#

\[ x_{k+1} \sim P(\,\cdot \mid x_k, u_k\,), \qquad r_k = r(x_k, u_k) \]
  • \(P\) :轉移機率(未知!)——這是與 MPC 的關鍵差別。
  • 目標:找策略 \(\pi\) 最大化期望累積報酬 \(\mathbb{E}\left[\sum \gamma^k r_k\right]\) ( \(\gamma\) :折扣因子)。

Q 函數與 Bellman 方程#

定義動作價值函數:

\[ Q^\pi(x, u) = \mathbb{E}\left[\sum_{k=0}^\infty \gamma^k r_k \,\middle|\, x_0 = x, u_0 = u, \pi\right] \]

最佳 Q 函數滿足 Bellman 最佳方程:

\[ Q^*(x, u) = r(x, u) + \gamma\, \mathbb{E}_{x'}\left[\max_{u'} Q^*(x', u')\right] \]

Q-learning(無模型)#

不知道 \(P\) ,用取樣更新(每次經驗 \((x, u, r, x')\) ):

\[ Q(x, u) \leftarrow Q(x, u) + \alpha\left[\, r + \gamma \max_{u'} Q(x', u') - Q(x, u)\,\right] \]
  • \(\alpha\) :學習率。目標項 \(r + \gamma\max Q(x')\) 是 Bellman 方程的取樣版。

DDPG:連續動作的深度學習#

工業控制是連續的(馬達電壓不是「按鈕」),Q-learning 只適合離散動作。 DDPG(Deep Deterministic Policy Gradient)用兩個神經網路:

  • Critic \(Q_\theta(x, u)\) :逼近 Q 函數(學「多好」)。
  • Actor \(\mu_\phi(x)\) :逼近策略(學「怎麼做」),輸出連續控制量。

以 Critic 的梯度訓練 Actor(策略梯度):

\[ \nabla_\phi J \approx \mathbb{E}\left[\nabla_\phi \mu_\phi(x)\, \nabla_u Q_\theta(x, u)\big|_{u=\mu_\phi(x)}\right] \]

與經典控制的連結#

控制理論 強化學習
代價 \(J\) 負報酬 \(-r\)
價值函數 \(V\) (Bellman) Q 函數
LQR 的 \(u^* = -Kx\) Actor \(\mu_\phi(x)\) (線性特例正是 LQR)
MPC 的線上最佳化 策略的學習(離線學好,線上查表)
模型 \(f\) 不需要(無模型)

LQR 是深度強化學習的線性特例——當系統線性、代價二次、Q 用線性逼近時,DDPG 收斂到 LQR。

簡易範例:一維格子的 Q-learning#

格子世界:位置 \(x \in \{0, 1, 2\}\) ,目標 \(x = 2\) , 動作 \(u \in \{\text{左}, \text{右}\}\) ,右移成功機率 0.8(環境隨機,未知), 到目標得 \(r = 1\) , \(\gamma = 0.9\) 。

初始化 \(Q = 0\) ,學習率 \(\alpha = 0.5\) 。假設經驗序列:

  • \((2, \text{右}, 1, 2)\) : \(Q(2,\text{右}) \leftarrow 0 + 0.5[1 + 0.9\max Q(2) - 0] = 0.5\) 。
  • \((1, \text{右}, 0, 2)\) : \(Q(1,\text{右}) \leftarrow 0 + 0.5[0 + 0.9(0.5) - 0] = 0.225\) 。
  • \((1, \text{右}, 0, 2)\) (再次): \(Q(1,\text{右}) \leftarrow 0.225 + 0.5[0.45 - 0.225] = 0.3375\) 。

\(Q\) 逐步收斂到期望值( \(Q(1,\text{右}) \approx 0.8 \times 0.9 \times 0.5 \times \frac{1}{1-0.9\cdots}\) 的極限)。 策略 \(\pi(x) = \arg\max_u Q(x, u)\) :在 \(x = 0, 1\) 選「右」——不用知道轉移機率,也能學出最佳策略。

歷史典故#

  • 2015 年強化學習控制(DQN、DDPG)興起,見 2015-強化學習控制.md—— AlphaGo 同年擊敗歐洲冠軍,隔年擊敗李世石。
  • 1957 年 Bellman 的動態規劃是 Q-learning 的理論祖先,見 1957-Bellman動態規劃.md。
  • 1948 年 Wiener 的《控制論》早已預言「回饋學習」——機器與生物共用學習原理,見 1948-Wiener控制論.md。

習題#

  1. 上例繼續迭代:寫出 \(Q(1,\text{右})\) 的不動點方程並求極限值。 (提示:到目標後重置, \(Q(1,\text{右}) = 0.8 \times 0.9 \times (1 + \cdots)\) 的期望折扣和。)
  2. 說明為什麼「探索 vs 利用」(exploration vs exploitation)在控制中重要: 只利用(永遠走已知最好的路)會錯過什麼?