該文章是針對Hado van Hasselt於2010年提出的Double Q-learning算法的進一步拓展,是結合了DQN網絡后,提出的關於DQN的Double Q-learning算法。該算法主要目的是修正DQN中max項所產生的過高估計問題,所謂過高估計,在前面的博客Issues in Using Function Approximation for Reinforcement Learning閱讀筆記中已經有所討論。
主要方法是采用下面公式替代DQN算法中從經驗池采樣針對$y_{j}$的計算:
\[Y _ { t } ^ { \text { DoubleQ } } \equiv R _ { t + 1 } + \gamma Q \left( S _ { t + 1 } , \underset { a } { \operatorname { argmax } } Q \left( S _ { t + 1 } , a ; \boldsymbol { \theta } _ { t } \right) ; \boldsymbol { \theta } _ { t } ^ { - } \right)\]
上式即通過online network選擇最好的action的,再用target network計算state-value function值,這與2015 Nature版DQN直接利用target network計算有所區別。
論文采用了一個簡化的強化學習例子說明這一觀點,假設a的選擇並不影響Q(s,a)值,即滿足$Q_*(s,a)=V_*(s)$。我們希望找到一個Q(s,a)的估計函數,滿足:
\[\sum_a(Q_t(s,a)-V_*(s,a))=0\]
但是由於估計誤差的存在,假設有$\frac{1}{m}\sum_a(Q_t(s,a)-V_*(s,a))^2=C$成立,且C>0,m>=2表示當前s可選動作數。作者證明,采用max計算將會產生以下偏誤:$\max_a Q_t(s,a)\geq V_*(s) + \sqrt{\frac{C}{m-1}}$,但是采用Double Q-learning,則絕對誤差為0,即滿足:
\[\left| \dot { Q } _ { t } ^ { \prime } \left( s , \operatorname { argmax } _ { a } Q _ { t } ( s , a ) \right) - V _ { * } ( s ) \right|=0\]
在這里,作者聲明$Q _ { t } ^ { \prime } \left( s , a _ { 1 } \right) = V _ { * } ( s )$。(個人理解是:誤差是由於Q _ { t } ( s , a )產生的。結合DQN算法,即作者認為online network是產生誤差的主要來源,而target network並沒有產生誤差。這里有點不能理解,可能需要再去讀一下2010年Double Q-learning的原文進行進一步研究)