為什麼 Q-Learning 在測試時使用 epsilon-greedy?
在 DeepMind 關於 Atari 視頻遊戲的深度 Q-Learning 的論文(此處)中,他們在訓練期間使用 epsilon-greedy 方法進行探索。這意味著當在訓練中選擇一個動作時,它要么被選為具有最高 q 值的動作,要么被選為隨機動作。在這兩者之間進行選擇是隨機的,並且基於 epsilon 的值,並且 epsilon 在訓練期間被退火,因此最初會採取大量隨機動作(探索),但隨著訓練的進行,會採取大量具有最大 q 值的動作(開發)。
然後,在測試期間,他們也使用了這種 epsilon-greedy 方法,但 epsilon 的值非常低,因此對探索有很強的偏見,傾向於選擇具有最高 q 值的動作而不是隨機動作。但是,有時仍會選擇隨機動作(5% 的時間)。
我的問題是:
- 既然已經完成了培訓,為什麼此時還需要進行任何探索?
- 如果系統已經學習了最優策略,那麼為什麼不能總是選擇具有最高 q 值的動作呢?
- 不應該只在訓練中進行探索,然後一旦學習了最優策略,代理就可以反複選擇最優動作嗎?
他們在自然論文中提到:
通過使用不同的初始隨機條件(‘noop’;參見擴展數據表 1)和 e-greedy 策略與 epsilon 0.05 玩每個遊戲 30 次,每次最多 5 分鐘來評估訓練有素的代理。採用此過程是為了最大限度地減少評估過程中過度擬合的可能性。
我認為他們的意思是“消除過擬合/欠擬合的負面影響”。使用 0 的 epsilon 是一種完全剝削性的選擇(正如您所指出的),並且做出了強有力的聲明。
例如,考慮一個迷宮遊戲,其中代理的當前 Q 估計收斂到最優策略,除了一個網格,它貪婪地選擇向一個邊界移動,導致它保持在同一個網格中。如果代理達到任何這樣的狀態,並且它正在選擇 Max Q 動作,它將永遠卡在那裡。但是,在其策略中保留一個模糊的探索性/隨機性元素(如少量的 epsilon)可以讓它擺脫這種狀態。
話雖如此,從我在實踐中查看(並自己編寫代碼)的代碼實現來看,由於您在問題中列出的確切原因,通常使用貪婪策略來衡量性能。