第三部《強化學習》52/100 REINFORCE 演算法 ✍ 使用樣本策略估計梯度方向!

更新 發佈閱讀 9 分鐘

AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》

52/100 第六週:📌 策略梯度與 Actor-Critic 架構

52.REINFORCE 演算法 ✍ 使用樣本策略估計梯度方向!

________________________________________

🎯 單元導讀

上一單元我們學到,策略梯度法不估 Q 值,而是直接學一個 策略 π(a|s;θ),讓智慧體學會「如何選擇動作」。

而最經典、最基本的策略梯度實作,就是 REINFORCE 演算法。

它的核心思想是:

「從實際觀察到的行為結果中,反向推回去調整策略方向。」

我們將透過樣本路徑(episode)來估算出正確的策略方向,逐步改進行為選擇!

________________________________________

🧠 一、REINFORCE 的公式與核心機制

REINFORCE 是一種 蒙地卡羅策略梯度演算法,其更新公式為:

∇θ J(θ) ≈ E[ ∇θ log π(a|s;θ) * G_t ]

其中:

log π(a|s;θ):該動作在策略中的對數機率

G_t:從時間步 t 開始累積的回報(reward-to-go)

這表示:

如果某個動作最後導致了高回報 → 增強它的機率

如果某個動作導致低回報 → 減少它的機率

這就像你在遊戲裡嘗試不同戰術,根據最終勝利與否來微調下一次的選擇傾向。

________________________________________

🔁 二、REINFORCE 的完整訓練流程

步驟 說明

1️⃣ 初始化策略網路 π(a

2️⃣ 跑出一整個 episode:收集 (s₀, a₀, r₁, ..., s_T)

3️⃣ 計算每一時間點的 G_t(未折扣或折扣累積回報)

4️⃣ 對每一步計算 `∇θ log π(a

5️⃣ 加總所有梯度並執行梯度上升:θ ← θ + α * ∇θ J(θ)

________________________________________

🧪 三、簡易 PyTorch 實作(CartPole 範例)

python

# 策略網路(softmax 輸出動作機率)

class PolicyNet(nn.Module):

def __init__(self, state_dim, action_dim):

super().__init__()

self.net = nn.Sequential(

nn.Linear(state_dim, 128),

nn.ReLU(),

nn.Linear(128, action_dim),

nn.Softmax(dim=-1)

)

def forward(self, state):

return self.net(state)

# 計算 reward-to-go

def compute_returns(rewards, gamma=0.99):

G = 0

returns = []

for r in reversed(rewards):

G = r + gamma * G

returns.insert(0, G)

return returns

PolicyNet 定義了一個策略網路,透過兩層全連接層與 Softmax 輸出動作機率分布,直接學習策略 π(a∣s);而 compute_returns() 則計算每個時間步的「reward-to-go」,即從當前時間步起累積的折扣回報,用於強化學習中衡量每個動作的長期價值,協助訓練策略網路提升整體回報。

________________________________________

📌 四、REINFORCE 的優點與限制

優點 說明

✅ 簡單直接 算法直覺、易實作、理論清晰

✅ 適合連續動作空間 因為輸出為機率分布,可支援連續輸出

✅ 可用任何策略參數化架構 如 CNN、RNN、Transformer…

限制 說明

⚠️ 方差大 每次更新都基於整集 episode,穩定性低

⚠️ 無法即時更新 必須等完整 episode 結束後才能計算 G_t

⚠️ 收斂慢 學習速率 α 與 baseline 技巧需小心調整

________________________________________

🔍 五、改進方向:REINFORCE + baseline

為了解決方差大的問題,可以使用「基準線」(baseline) 改進更新公式:

∇θ J(θ) ≈ ∇θ log π(a|s) * (G_t - b(s))

其中 b(s) 通常是該狀態的價值估計 V(s)。這樣可讓策略更新只針對「比平均好」的部分放大學習。

這也是之後 Actor-Critic 方法的前身。

________________________________________

📸 六、應用範例(實務場景)

應用 說明

遊戲玩者 從遊戲回合勝負中強化整體行為策略(如打牌、圍棋)

模擬操作 模擬每一次完整作業後調整策略,如機器臂抓取任務

NLP 生成 對生成的句子整體給分後回傳強化訊號(如對話品質評分)

________________________________________

🧩 七、問題與思考 💭

1️⃣ 如果使用 REINFORCE 來訓練一個文字生成模型,回報會是什麼?如何定義?

👉

在文字生成任務中(如對話、摘要、寫詩),回報可以設計成任務特定的評價指標,例如 BLEU 分數(翻譯品質)、ROUGE 分數(摘要品質)、讀者喜好分數、是否符合主題等。每次完整生成一段文字(完整 episode)後,計算整體表現作為該 episode 的回報,然後用 REINFORCE 來增強那些能帶來高回報的生成行為。

________________________________________

2️⃣ 為什麼方差大會導致學習變慢?如何用 baseline 來處理這問題?

👉

方差大代表每次學到的梯度方向波動很大,不穩定,容易讓學習像走「鋸齒路線」,導致收斂速度變慢甚至震盪。引入 baseline(例如:當前狀態的 V(s) 估計值)可以減去回報的平均水準,讓更新只針對「比預期好或壞的部分」進行調整,這樣能顯著降低梯度估計的方差,提升學習穩定性,加速收斂。

公式觀念:

原始: ∇θ log π(a|s) * G

加入 baseline 後: ∇θ log π(a|s) * (G - baseline)

________________________________________

3️⃣ 你在人生中有沒有「打一場仗才知道對錯」的經驗?像不像跑完整回合才知道怎麼調整策略?

👉

例如:參加一場重大考試、主導一個專案、創業、或初次面試新公司,過程中每個決策當下都不知道效果,要到整個事件結束後才有完整回饋(分數、成敗、客戶反應等)。這正像 REINFORCE 的學習邏輯 —— 先執行完整回合(episode),再根據整體回報來調整策略,讓以後面對類似情境時更有經驗、更有勝算。

______________________________________

✅ 八、小結與啟示

REINFORCE 是最基礎的策略梯度法:直接使用樣本來更新策略

每次策略更新依賴整個 episode 的結果,容易有方差問題

搭配 baseline 能顯著穩定訓練

它是 Actor-Critic 等先進方法的奠基基礎


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
9會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/24
策略梯度方法直接學習行為策略 π(a|s;θ),不再估計 Q 值,適合連續動作與需隨機性的任務。透過 REINFORCE 與基準線、Actor-Critic 等改進,能減少方差、提升穩定性。應用於機器手臂、自駕車、金融與語言生成,強調試錯中直接修正行為分布。
2025/09/24
策略梯度方法直接學習行為策略 π(a|s;θ),不再估計 Q 值,適合連續動作與需隨機性的任務。透過 REINFORCE 與基準線、Actor-Critic 等改進,能減少方差、提升穩定性。應用於機器手臂、自駕車、金融與語言生成,強調試錯中直接修正行為分布。
2025/09/24
本單元總結從 Q 表到 DQN 的進化,涵蓋神經網路逼近 Q 值、Replay Buffer、Target Network、Double 與 Dueling DQN 改良,以及訓練技巧。透過 CartPole 實作展現從探索到穩定策略的學習曲線,並以測驗檢驗理解。
2025/09/24
本單元總結從 Q 表到 DQN 的進化,涵蓋神經網路逼近 Q 值、Replay Buffer、Target Network、Double 與 Dueling DQN 改良,以及訓練技巧。透過 CartPole 實作展現從探索到穩定策略的學習曲線,並以測驗檢驗理解。
2025/09/24
本單元以 CartPole 任務實作 DQN,涵蓋網路建立、Replay Buffer、ε-Greedy、Target Network 與 TD 誤差更新,並觀察獎勵曲線與收斂趨勢,體驗強化學習決策與平衡訓練過程。
2025/09/24
本單元以 CartPole 任務實作 DQN,涵蓋網路建立、Replay Buffer、ε-Greedy、Target Network 與 TD 誤差更新,並觀察獎勵曲線與收斂趨勢,體驗強化學習決策與平衡訓練過程。
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 127 中提及: Transformer 的關鍵參數為: 原始 Transformer 模型中,左圖的 N = 6 原始 Tran
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 39 至 AI說書 - 從0開始 - 69 的第二章內容,我們拿 Encoder 出來看: 幾點注意如下: BERT 模型使用 M
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 39 至 AI說書 - 從0開始 - 69 的第二章內容,我們拿 Encoder 出來看: 幾點注意如下: BERT 模型使用 M
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 xxx 提到,既然提到訓練,就表示要有一套衡量基準供大家遵守,有鑑於此,以下繼續介紹幾類衡量方式: MCC: 首先介紹 True (T) Positive (
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 xxx 提到,既然提到訓練,就表示要有一套衡量基準供大家遵守,有鑑於此,以下繼續介紹幾類衡量方式: MCC: 首先介紹 True (T) Positive (
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News