AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
51/100 第六週:📌 策略梯度與 Actor-Critic 架構
51.策略梯度方法是什麼?🧭 直接學會怎麼做,而不是估計值!
_______________________________________
🎯 單元導讀
在前幾章中,我們透過 值函數(Value Function) 學習如何「估計狀態或動作的好壞」,再從中選擇最好的動作。這就是 Q-Learning 和 DQN 的思維方式。
但其實還有另一條路:
不估價值,而是直接學會最好的行為策略!
這就是 策略梯度方法(Policy Gradient Methods) 的核心精神。它不再計算 Q 值,而是直接訓練一個策略函數 π(a|s),讓 AI 學會在各種狀態下該做什麼。
________________________________________
🧠 一、什麼是策略梯度?
在策略梯度法中,我們不學 Q(s, a),而是學一個「參數化的策略」:
π(a|s; θ) → 給定狀態 s,產生動作 a 的機率
我們的目標是找到一組參數 θ,使整體回報 J(θ) 最大化:
J(θ) = E[ ∑ r_t ] ← 最大化期望報酬
透過對 J(θ) 求梯度,就可以使用梯度上升法進行策略更新:
θ ← θ + α ∇θ J(θ)
________________________________________
🔁 二、與值函數方法的差異比較
值函數法(如 DQN)主要學習狀態-動作價值函數 Q(s,a) 或狀態價值 𝑉(𝑠)
,透過計算 Q 值選擇最大值動作,適合離散動作空間,學習效率高但容易出現震盪;而策略梯度法則直接學習策略分布 𝜋(𝑎∣𝑠)
,以機率方式抽樣動作,特別適合連續動作或需要隨機性的任務,雖學習較穩定但估計方差較大,收斂速度通常較慢。
________________________________________
🧪 三、策略梯度的核心公式(REINFORCE)
最基本的策略梯度法稱為 REINFORCE,使用下列公式更新:
∇θ J(θ) = E[ ∇θ log π(a|s; θ) * G_t ]
其中:
• π(a|s; θ):策略函數,定義每個行動機率
• G_t:該動作後所得到的總報酬(從 t 時間點累積)
簡單說:
「強化那些帶來高回報的動作,弱化那些帶來低回報的動作。」
________________________________________
⏳ 四、策略梯度的例子:滑雪教練直覺法
想像你是滑雪教練,直接對學員說:
• 「你剛才這樣轉身很好,繼續這樣做!」
• 「剛才那樣滑錯了,下次不要再這樣。」
你不需要去估算 Q 值或勝率,只是根據結果直接調整行為策略。這正是策略梯度法的直覺本質!
________________________________________
🧠 五、常見改進策略梯度的技術
技術 說明
Baseline 基準線 減少方差,提高學習穩定性,例如使用 V(s) 當基準
Actor-Critic 架構 同時學策略(Actor)與價值函數(Critic)
Entropy Bonus 增加探索,鼓勵策略保持一定隨機性
Trust Region Policy Optimization (TRPO) 限制每次更新幅度,提高穩定性
________________________________________
📸 六、應用場景實例
領域 策略梯度應用方式
機器手臂控制 在連續空間中學會動作(如抓取物體)
自動駕駛 學會連續轉向與加速策略
金融投資策略 決定在連續價格變動中何時買賣
自然語言生成 用策略學習調整回覆品質(如對話生成)
________________________________________
🔍 七、策略梯度的注意事項與挑戰
• 方差大 → 須配合 baseline 或使用更穩定算法(如 Actor-Critic)
• 收斂慢 → 每次更新只能根據 sample-based gradient 改進
• 易受初期策略影響 → 初期探索策略設定需謹慎
________________________________________
🧩 八、問題與思考 💭
1️⃣ 策略梯度法為何適合連續動作空間?
👉
在連續動作空間中,動作數量是無窮多(例如方向角度、速度大小等),若用值函數法(如 DQN)必須離散化動作,導致精度受限、計算成本高;而策略梯度法直接學習一個參數化的機率分布(如高斯分布)來描述動作,能自然地處理連續範圍,且易於微調與探索。
2️⃣ 在你學習技能的過程中,有哪些是「不計分數」,而是直接根據做對或做錯進行調整的經驗?
👉
例如學習打籃球投籃、騎腳踏車、彈鋼琴等,當下沒有明確的分數,而是每次失誤(如投偏、跌倒、彈錯音)直接帶來感覺上的回饋,促使身體與大腦逐漸修正動作,這與策略梯度法的即時行為調整非常相似。
3️⃣ 如果使用策略梯度訓練一個下棋 AI,它是否能自動發現哪些棋步值得學習?為什麼?
👉
可以,因為策略梯度法會根據整局棋的勝負結果,將帶來高回報的行為(如優秀的佈局、有效的進攻、防守手法)自動賦予較高的策略權重,透過多次對局與回饋逐漸強化好的棋步,即便一開始不知道哪些行為好壞,也能透過試錯逐步發現有效策略。
________________________________________
✅ 九、小結與啟示
• 策略梯度法是「直接學習怎麼做」的強化學習方法
• 不用估計 Q 值,而是學習一個可微分的策略 π(a|s;θ)
• 適用於連續動作、隨機策略、策略導向任務
• 生活就像策略學習:每次試錯,都是在修正自己的行為分布!