導覽 RL 框架

使用 Python 的 Gymnasium 進行強化學習

Fouad Trad

Machine Learning Engineer

RL 框架

顯示代理元件的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 框架

顯示代理與環境元件的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 框架

  • Agent:學習者、決策者
  • Environment:待解的挑戰

顯示所有 RL 元件(代理、環境、狀態、動作、回饋)的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 框架

  • Agent:學習者、決策者
  • Environment:待解的挑戰
  • State:某時刻的環境快照

顯示環境提供狀態給代理的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 框架

  • Agent:學習者、決策者
  • Environment:待解的挑戰
  • State:某時刻的環境快照
  • Action:代理對狀態的回應選擇

顯示代理根據環境狀態執行動作的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 框架

  • Agent:學習者、決策者
  • Environment:待解的挑戰
  • State:某時刻的環境快照
  • Action:代理對狀態的回應選擇
  • Reward:對代理動作的回饋

顯示代理依環境狀態執行動作,並依該動作自環境獲得回饋的圖片。

使用 Python 的 Gymnasium 進行強化學習

RL 互動迴圈

env = create_environment()
state = env.get_initial_state()

for i in range(n_iterations): action = choose_action(state)
state, reward = env.execute(action)
update_knowledge(state, action, reward)

顯示代理依環境狀態執行動作,並依該動作自環境獲得回饋的圖片。

使用 Python 的 Gymnasium 進行強化學習

分集式 vs. 連續式任務

分集式任務
  • 任務切成多個回合
  • 每回合有起點與終點
  • 例:代理下西洋棋

一隻貓在下西洋棋的圖片。

連續式任務
  • 持續互動
  • 無明確回合
  • 例:調整號誌時間

一隻青蛙騎腳踏車等紅綠燈變綠的圖片。

使用 Python 的 Gymnasium 進行強化學習

回報(Return)

  • 動作會影響長期結果
  • 代理目標:隨時間最大化總回饋
  • Return:所有期望回饋之和

顯示回報為個別回饋 r_1 到 r_n 之總和的圖片。

使用 Python 的 Gymnasium 進行強化學習

折扣回報

  • 立即回饋比未來回饋更有價值
  • 折扣回報:較重視近端回饋
  • 折扣因子($\gamma$):折減未來回饋

顯示折扣回報公式:回饋總和,每項乘以其時間步次方的折扣因子。

使用 Python 的 Gymnasium 進行強化學習

折扣因子

  • 介於 01 之間
  • 衡量即時與長期回饋
    • 較小值 → 偏重即時收益
    • 較大值 → 偏重長期利益

顯示折扣因子的極端值影響:0 只重視即時收益,1 不折扣未來收益。

使用 Python 的 Gymnasium 進行強化學習

數值範例

import numpy as np
expected_rewards = np.array([1, 6, 3])

discount_factor = 0.9
discounts = np.array([discount_factor ** i for i in range(len(expected_rewards))])
print(f"Discounts: {discounts}")
Discounts: [1.   0.9  0.81]
discounted_return = np.sum(expected_rewards * discounts)
print(f"The discounted return is {discounted_return}")
The discounted return is 8.83
使用 Python 的 Gymnasium 進行強化學習

一起來練習吧!

使用 Python 的 Gymnasium 進行強化學習

Preparing Video For Download...