深度強化學習課程文件

一個 Q-Learning 示例

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

一個 Q-Learning 示例

為了更好地理解 Q-Learning,我們來舉一個簡單的例子

Maze-Example
  • 你是一隻小迷宮裡的老鼠。你總是從同一個起點開始。
  • 目標是吃到右下角的那一大堆乳酪並避開毒藥。畢竟,誰不喜歡乳酪呢?
  • 如果我們吃到毒藥、吃到那一大堆乳酪,或者走的步數超過五步,本回合就結束。
  • 學習率為 0.1
  • 折扣率(gamma)為 0.99
Maze-Example

獎勵函式如下:

  • +0: 進入沒有乳酪的狀態。
  • +1: 進入有小塊乳酪的狀態。
  • +10: 進入有大塊乳酪的狀態。
  • -10: 進入有毒藥的狀態,因此死亡。
  • +0 如果我們走了超過五步。
Maze-Example

為了訓練我們的代理有一個最優策略(即一個向右、向右、向下的策略),我們將使用 Q-Learning 演算法

第 1 步:初始化 Q 表

Maze-Example

所以,目前,我們的 Q 表是無用的;我們需要使用 Q-Learning 演算法來訓練我們的 Q 函式。

我們進行 2 個訓練時間步

訓練時間步 1

第 2 步:使用 Epsilon Greedy 策略選擇一個動作

因為 epsilon 很大(= 1.0),我採取一個隨機動作。在這種情況下,我向右走。

Maze-Example

第 3 步:執行動作 At,得到 Rt+1 和 St+1

向右走,我得到一小塊乳酪,所以Rt+1=1R_{t+1} = 1然後我進入了一個新狀態。

Maze-Example

第 4 步:更新 Q(St, At)

我們現在可以更新Q(St,At)Q(S_t, A_t)使用我們的公式。

Maze-Example Maze-Example

訓練時間步 2

第 2 步:使用 Epsilon Greedy 策略選擇一個動作

我再次採取了一個隨機動作,因為 epsilon=0.99 很大。(注意,我們稍微衰減了 epsilon,因為隨著訓練的進行,我們希望探索越來越少)。

我選擇了動作“向下”。這不是一個好的動作,因為它把我引向了毒藥。

Maze-Example

第 3 步:執行動作 At,得到 Rt+1 和 St+1

因為我吃了毒藥,所以我得到Rt+1=10R_{t+1} = -10,並且我死了。

Maze-Example

第 4 步:更新 Q(St, At)

Maze-Example

因為我們死了,我們開始一個新回合。但我們在這裡看到的是,透過兩個探索步驟,我的代理變得更聰明瞭。

隨著我們繼續探索和利用環境,並使用 TD 目標更新 Q 值,Q 表將為我們提供越來越好的近似。在訓練結束時,我們將得到最優 Q 函式的估計。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.