日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DQN 笔记 double DQN

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DQN 笔记 double DQN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 DQN的問題

在DQN 筆記 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客?中,我們知道DQN的學習目標是

?????????但是,這個Q的值是被“高估”了的。因為每一次策略Π更新的時候,Π(s)都取的是最大的那個action,也即

? ? ? ? 然而,實際網絡環境中,由于每個狀態都有一定的概率取不同的動作(policy-based network),所以實際的【reward小的那些action會“向下”拉低一些Q值】,也就是說,我們回歸的目標值是“高估”了的

這是double-DQN paper里的圖,可以形象地說明這個“高估”?

????????這邊有 4 個不同的小游戲,橫軸是訓練的時間,紅色鋸齒狀一直在變的線就是 Q-function 對不同的狀態估計出來的平均 Q 值。有很多不同的狀態,每個狀態都 sample 一下,然后算它們的 Q 值,把它們平均起來,得到這條紅色鋸齒狀Q-function。

?????????這條紅色鋸齒狀的線在訓練的過程中會改變,但它是不斷上升的。因為 Q-function 是取決于你的策略的。學習的過程中你的策略越來越強,你得到的 Q 值會越來越大。在同一個狀態, 你得到 reward 的期望會越來越大,所以一般而言,這個值都是上升的,但這是 Q-network 估測出來的值。【所以為啥Alien那里會下降,我就不得而知了】

????????接下來真的去玩那個游戲,玩很多次。然后真的去算,在某一個狀態, 你會得到的 Q 值到底有多少。(紅色直線)

????????你會發現估測出來的值遠比實際的值大,在每一個游戲都是這樣,都大很多。這就是“高估”的效果

? ? ? ? ?就著這個圖我們再看一下double DQN的效果。

????????藍色的鋸齒狀的線是 Double DQN 的 Q-network 所估測出來的 Q 值。

????????藍色的無鋸齒狀的線是真正的 Q 值,你會發現它們是比較接近的。

2 double DQN的原理

2.1 大體思想

????????在 Double DQN 里面,選動作的 Q-function 跟算值的 Q-function 不是同一個。

????????在原來的 DQN 里面,你窮舉所有的 a,把每一個 a 都帶進去, 看哪一個 a 可以給你的 Q 值最高,那你就把那個 Q 值加上?rt?。但是在 Double DQN 里面,你有兩個 Q-network:

  • 第一個 Q-network Q 決定哪一個動作的 Q 值最大(你把所有的 a 帶入 Q 中,看看哪一個 Q 值最大)。
  • 你決定你的動作以后,你的 Q 值(也就是回歸的目標值)是用?Q′?算出來的。

? ? ? ? 所以:

  • 假設第一個 Q-function 高估了它現在選出來的動作 a,只要第二個 Q-function?Q′?沒有高估這個動作 a 的值,那你算出來的就還是正常的值。
  • 假設?Q′?高估了某一個動作的值,那也沒差,因為只要前面這個 Q 不要選那個動作出來就沒事了,這個就是 Double DQN 神奇的地方。

2.2 Q 和Q'的選取

? ? ? ? 使用DQN 筆記 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客?第三小節說的target network

????????在實現上,你有兩個 Q-network:目標的 Q-network 和你會更新的 Q-network。

????????所以在 Double DQN 里面,你會拿你會更新參數的那個 Q-network 去選動作,然后你拿目標網絡(固定住不動的網絡)去算值。

????????Double DQN 相較于原來的 DQN 的更改是最少的,它幾乎沒有增加任何的運算量,連新的網絡都不用,因為原來就有兩個網絡了。你唯一要做的事情只有,本來你在找 Q 值最大的 a 的時候,你是用fixed的 Q′ (目標網絡) 來算【也就是說,我原來更新和找最大的a都是用Q’來求得的】?,F在改成用另外一個會更新的 Q-network 來算最大的a,只用Q'來更新Q-function。

總結

以上是生活随笔為你收集整理的DQN 笔记 double DQN的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。