Q-學習(英語:Q-learning)是強化學習的一種方法。Q-學習就是要記錄下學習過的策略,因而告訴智能體什麼情況下採取什麼行動會有最大的獎勵值。Q-學習不需要對環境進行建模,即使是對帶有隨機因素的轉移函數或者獎勵函數也不需要進行特別的改動就可以進行。

對於任何有限的馬可夫決策過程(FMDP),Q-學習可以找到一個可以最大化所有步驟的獎勵期望的策略。[1],在給定一個部分隨機的策略和無限的探索時間,Q-學習可以給出一個最佳的動作選擇策略。

「Q」這個字母在強化學習中表示一個動作的期望獎勵。[2]

強化學習

強化學習涉及一個智慧型代理人agent),一組「狀態」和每個狀態下的動作集合。通過執行一個行動,該智慧型代理人從一個狀態轉移到另一個狀態。在一個特定的狀態下執行一個動作時,智慧型代理人可以得到一個獎勵。

智慧型代理人的目標是最大化其獎勵的總和。這個潛在的獎勵是所有未來可以拿到的獎勵值的期望的加權和。

例如,假設現在你要上地鐵,獎勵就是你所花的時間的相反數。一種策略就是車門一開就往上擠,但是還有很多人要下車,逆着人流往上擠也會花費不少時間,這個時候你花的總時間可能是:

  • 0秒鐘等待時間+15秒擠上去的時間

在接下來的一天,很巧合,你決定先讓別人下車。雖然這個時候看起來等待的時間稍微增加了,但是下車的人也會下的更順暢,這個時候你可能花的時間是:

  • 5秒等待時間+0秒擠上去的時間。

算法

Thumb
將Q表格的值初始化為零,每個單元會經過訓練而更新其值。

Q-學習演算法,主要內容為計算狀態與行為對應的最大期望獎勵函式

.

在演算法初始化階段,初始值為零(由設計者設計)。在時間時,環境的狀態為,智慧型代理人選擇一個行為,並且獲得獎勵,環境因為代理人的行為導致狀態改變為新的狀態,此時便可根據以下公式更新值。演算法的核心為簡單的利用過去與最近的權重平均值來迭代更新數值。

其中 代表從狀態 到狀態 所得到的獎勵值, 學習率()。 為衰減系數(),當 數值越大時,智慧型代理人便更加重視未來獲得的長期獎勵, 數值越小時,智慧代理人便更加短視近利,只在乎目前可獲得的獎勵。



實現

Q-學習最簡單的實現方式就是將獎勵值存儲在一個表格(Q-table)中,但是這種方式受限於狀態和動作空間的數目。

函數逼近

Q-學習可以結合函數逼近。[3] 這使得在更大的狀態空間中使用 Q-學習,即使狀態空間是連續的。

一個解決方案是以使用人工神經網絡來進行函數逼近。[4]。函數逼近的方法在一些問題中會有很好的加速效果,某些時候算法可以通過早期經驗的總結可以在一些未出現的狀態中依然可以有很好的效果。

變種

深度Q-學習

深度Q-學習(Deep Q-learning)是一個由DeepMind公司開發的利用深度卷積神經網絡來進行Q-學習的算法。在使用非線性函數逼近的時候,強化學習經常會有不穩定性或者發散性:這種不穩定性來於當前的觀測中有比較強的自相關。DeepMind 通過使用經歷回放,也就是每次學習的時候並不直接從最近的經歷中學習,而是從之前的經歷中隨機採樣來進行訓練。

深度雙Q-學習

儘量深度Q-學習的效果已經很好了,但是人們發現了一個問題,它會過高的估計Q值。DeepMind在2015年證明了這個估值錯誤真的存在,並且採用雙Q-學習的方法改進了算法,從而降低了過高估值帶來的影響。

參見

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.