強化學習按理解環境的程度可以划分為無模型和有模型,Q-Learning算法是典型的無模型強化學習算法,與有模型的強化學習算法的區別是它的后繼狀態\(\[S'\]\)未知,只能通過與環境交互以試驗和采樣的方法得到一個后繼狀態\(\[S'\]\)。所以Q-Learning算法僅由元組\(\[\left( {S,A,R,\gamma } \right)\]\)來描述。
強化學習是智能體從狀態到動作的映射,通常使用Q表來表示狀態-動作值函數,智能體通過不斷與環境進行交互,以此來更新Q表,並通過Q表來進行目標和行為決策。Q-Learning算法的目標函數是最大化Q值函數,智能 體每次與環境交互,都會根據當前的狀態選擇動作,即在狀態\(\[{S_t}\]\)做出動作a,並抵達狀態\(\[{S_{t + 1}}\]\),將動作a,獲得的獎勵R與折扣后續最大獎勵\(\[{R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right)\]\)的和稱為:
\(\[{Q_{real}} = {R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right)\]\)
而之前學習的得到的\(\[Q\left( {{s_t},{a_t}} \right)\]\)稱為Q的估計值。
Q-Learning算法是時序差分的強化學習方法,其中有一個很重要的概念就是TD error,表示的是在該時刻估計的誤差。Q-Learning算法通過Q現實與Q估計之間的時序差分誤差(temporal difference error, TD error)來更新Q表,以此來逼近目標函數。該算法的目標策略為貪婪策略即,
\(\[Q\left( {{s_t},{a_t}} \right) = Q\left( {{s_t},{a_t}} \right) + \alpha \left[ {{R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right) - Q\left( {{s_t},{a_t}} \right)} \right]\]\)
行為策略為\(\[\varepsilon - greedy\]\),即
\( \[{a_t} = \left\{ {\begin{array}{*{20}{c}} {random,\begin{array}{*{20}{c}} {} & {P\left( \varepsilon \right)} \\ \end{array}} \\ {\arg \max Q\left( {{s_t},{a_t}} \right),\begin{array}{*{20}{c}} {} & {P\left( {1 - \varepsilon } \right)} \\ \end{array}} \\ \end{array}} \right.\] \)
式中,e為策略參數,智能體以e的概率在動作空間中隨機選擇行為,以1-e的概率在動作空間中選擇會得到最大Q值的貪婪動作。
由此可以看出看出目標策略與行為策略不同,因此Q-Learning算法算法的策略為異策略'其優勢在於尋求最優的同時保證充分的探索性。
Q-Learning算法相關參數選取原則如下:
S:選取的狀態空間一定要包含智能體學習過程中的所有狀態;
A:動作空間的選擇一定要考慮智能體所有可能做出的所有動作;
R:獎勵函數的設計一定要與所要優化的目標相關;
\(\[\alpha \]\):學習率是R表更新的速率'一般取值為0.01左右;
\(\[\gamma \]\)折扣率是未來經驗對當前狀態執行動作的重要程度,一般取值;
e:表示動作選擇的隨機性'在學習初期設置為1,保證探索性,在學習過程中不斷衰減,最終衰減到0。