強化學習 (RL) - Q-Learning

強化學習 (RL) - Q-Learning

這不是考試,是一場生存遊戲。本文將介紹強化學習的核心組件與經典的 Q-Learning 演算法,看看 AI 如何透過「獎勵與懲罰」學會尋寶。


1. 前言:這不是考試,是生存遊戲

前 21 天我們學的 (監督式/非監督式學習) 像是「考試」:

  • 監督式 (Supervised):老師給你考古題和答案,你要死背下來。
  • 非監督式 (Unsupervised):老師給你一堆資料,你要自己整理歸納。

今天我們要進入一個全新的領域:Reinforcement Learning (RL,強化學習)。它像是玩馬利歐 (Mario)訓練狗狗:沒人告訴你每一步該怎麼走,你只能透過不斷嘗試 (Trial and Error),做得好有糖吃 (Reward +1),做錯了會受傷 (Reward -1),目標是活下去並拿到最高分。

RL 的發展演進

年份模型重要性
1989Q-LearningRL 始祖。Watkins 提出,用表格 (Table) 來記錄經驗。
2013DQN深度學習革命。將 Q-Learning 結合神經網路,成功玩 Atari 遊戲。
2016AlphaGo震驚世界。結合了 RL + MCTS,擊敗圍棋世界冠軍。
2017PPO現代標準。OpenAI 提出,現在 ChatGPT 的 RLHF 就是用它。

MCTS (蒙地卡羅樹搜尋): 隨機試玩 (Simulation)。想像你在走迷宮,MCTS 會派 1000 隻螞蟻隨機亂跑,看哪條路跑出去的螞蟻最多,就走那條路。AlphaGo 就是用這個方法快速判斷目前的棋局「勝率」。


2. 核心組件

RL 的世界由 5 個核心元素組成:

  • Agent (代理人):主角 (例如:馬利歐、AlphaGo)。
  • Environment (環境):遊戲世界 (例如:關卡、棋盤)。
  • State (狀態 S):現在的情況 (例如:前面有烏龜)。
  • Action (動作 A):你能做什麼 (例如:跳躍、向右走)。
  • Reward (獎勵 R):環境給你的回饋 (例如:吃到金幣 +10)。

互動迴圈 (The Loop)

Loading Diagram...

3. 核心算法:Q-Learning (Q 表學習)

這是最經典、最簡單的 RL 演算法。它的核心思想是建立一張 作弊小抄 (Q-Table)

什麼是 Q-Table?

想像你在玩迷宮,你有一本筆記本,記錄著在每個路口做每個動作的預期分數。

  • 行 (Row):代表每個位置 (State)。
  • 列 (Column):代表每個動作 (Action)。
  • 值 (Q-Value):代表該動作預期能拿到的分數。

Q-Learning 公式

Q(S,A)Q(S,A)+α[R+γmaxQ(S,A)Q(S,A)]Q(S, A) \leftarrow Q(S, A) + \alpha [ R + \gamma \max Q(S', A') - Q(S, A) ]

💡 公式白話文

  • 現實與理想的差距:我剛剛拿到的獎勵 + 下一步最好的預期分數,減掉我原本以為的分數。
  • α\alpha (學習率):我多相信新的經驗?(通常 0.1)。
  • γ\gamma (遠見因子):我多在乎未來的獎勵?(0.9 代表很有遠見)。

4. 實戰:尋寶遊戲 (Treasure Hunt)

我們實作一個簡單的 1D 世界:o---T。其中 o 是探險家,T 是寶藏。

Q-Table Treasure Hunt Visualization

訓練過程

  • Episode 1:Agent 像無頭蒼蠅,亂走很久才摸到寶藏。
  • Episode 10:Agent 變成老司機,直接衝向寶藏。

Q-Table 解讀

這張表就是 Agent 的「腦袋」,記錄了在每個位置(State)做每個動作(Action)的 「含金量 (Q-Value)」

  • 動作分析
    • Action: Right (往右):你會發現分數從 +15 一路飆升到 +80。這代表 Agent 意識到越往右走,離寶藏越近,未來的期望獎勵就越高。
    • Action: Left (往左):在位置 0 往左走會拿到 -10(撞牆受罰);其餘位置的分數較低,因為那是拿不到寶藏的「回頭路」。

數據循環:分數是如何傳遞的?

為什麼圖片中的數字是這樣排列的?我們帶入公式跑一次 「位置 3 往右走」 的更新循環:

  1. 現在情況:Agent 站在位置 3,筆記本上記錄往右走值 60 分
  2. 看到希望:它往右看了一眼位置 4,發現那邊往右走值 80 分
  3. 算出期望:算上 0.9 的遠見因子,位置 4 的價值對現在來說是 80×0.9=7280 \times 0.9 = \mathbf{72} 分。
  4. 修正大腦:AI 發現「未來的希望 (72)」比「舊的印象 (60)」還要好,於是它會把 60 分往 72 分的方向上修。

結論:寶藏的獎勵就像 「墨水滴進水裡」,會隨訓練次數向後擴散。AI 不需要知道寶藏在哪,它只需要在每個路口選數字大的方向走,自然就會抵達終點。


5. 下一關預告

當狀態太多 (例如圍棋有 1017010^{170} 種狀態),Q-Table 寫不下怎麼辦?

Day 23 我們將介紹 Deep Q-Network (DQN),看看我們如何用「神經網路」來取代這張作弊小抄!