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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史

發布時間:2023/12/20 pytorch 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Deep Q-learning Network(續)

Nature DQN

DQN最早發表于NIPS 2013,該版本的DQN,也被稱為NIPS DQN。NIPS DQN除了提出DQN的基本概念之外,還使用了《機器學習(三十三)》中提到的Experience Replay技術。

2015年初,Deepmind在Nature上提出了改進版本,是為Nature DQN。它改進了Loss函數:

L=(r+γmax?a′Q(s′,a′,w?)?Q(s,a,w))2L=(\color{blue}{r+\gamma \max_{a'}Q(s',a',w^-)}-Q(s,a,w))^2L=(r+γamax?Q(s,a,w?)?Q(s,a,w))2

上式中,計算目標Q值的網絡使用的參數是w?w^-w?,而不是w。也就是說,原來NIPS DQN的target Q網絡是動態變化的,跟著Q網絡的更新而變化,這樣不利于計算目標Q值,導致目標Q值和當前的Q值相關性較大。

因此,Deepmind提出可以單獨使用一個目標Q網絡。那么目標Q網絡的參數如何來呢?還是從Q網絡中來,只不過是延遲更新。也就是每次等訓練了一段時間再將當前Q網絡的參數值復制給目標Q網絡。

個人理解這里的機制類似于進化算法。變異既可以是進化,也可以是退化,只有進化的Q網絡才值得保留下來。

這在下文介紹的Leela Zero項目的訓練過程中體現的很明顯:一開始我們只訓練一個簡單的AI,然后逐漸加深加大網絡,淘汰廢物AI,得到更優秀的AI。

為了使進化生效,在一段時間內保持目標Q網絡不變就是很顯然的了——你過不了我這關,就沒資格繼續下去了。

參考

https://zhuanlan.zhihu.com/p/21262246

DQN從入門到放棄1 DQN與增強學習

https://zhuanlan.zhihu.com/p/21292697

DQN從入門到放棄2 增強學習與MDP

https://zhuanlan.zhihu.com/p/21340755

DQN從入門到放棄3 價值函數與Bellman方程

https://zhuanlan.zhihu.com/p/21378532

DQN從入門到放棄4 動態規劃與Q-Learning

https://zhuanlan.zhihu.com/p/21421729

DQN從入門到放棄5 深度解讀DQN算法

https://zhuanlan.zhihu.com/p/21547911

DQN從入門到放棄6 DQN的各種改進

https://zhuanlan.zhihu.com/p/21609472

DQN從入門到放棄7 連續控制DQN算法-NAF

https://zhuanlan.zhihu.com/p/56023723

通過Q-learning深入理解強化學習(上)

https://mp.weixin.qq.com/s/0HukwNmg3k-rBrIBByLhnQ

深度Q學習:一步步實現能玩《毀滅戰士》的智能體

https://mp.weixin.qq.com/s/x-qCA0TzoVUtZ8VAf8ey0A

深度Q學習介紹

https://mp.weixin.qq.com/s/SqU74jYBrjtp9L-bnBuboA

教你完美實現深度強化學習算法DQN

https://mp.weixin.qq.com/s/Vdt5h8APAFoeVxFYKlywpg

用DeepMind的DQN解數學題,準確率提升15%

https://mp.weixin.qq.com/s/RH4ifA46njdC7fyRI9kVMg

深度Q網絡與視覺格斗類游戲

https://mp.weixin.qq.com/s/uymKtR_7IgMpfXcekfkCDg

從強化學習基本概念到Q學習的實現,打造自己的迷宮智能體

https://mp.weixin.qq.com/s/9ZvaZQ1yumhr75okBxNyeA

優化強化學習Q-learning算法進行股市交易

https://mp.weixin.qq.com/s/QkRdv0xMoqwaXsNAMAHR0A

一圖盡展視頻游戲AI技術,DQN無愧眾算法之鼻祖

https://zhuanlan.zhihu.com/p/35882937

強化學習——從Q-Learning到DQN到底發生了什么?

DQN進化史

上圖引用自論文:

《Deep Learning for Video Game Playing》

該論文最早發表于2017年,但是作者每年都會更新論文的內容。


在Nature DQN出來之后,肯定很多人在思考如何改進它。那么DQN有什么問題呢?

  • 目標Q值的計算準確嗎?全部通過max Q來計算有沒有問題?

  • 隨機采樣的方法好嗎?按道理不同樣本的重要性是不一樣的Q值代表狀態,動作的價值,那么單獨動作價值的評估會不會更準確?

  • DQN中使用?\epsilon?-greedy的方法來探索狀態空間,有沒有更好的做法?

  • 使用卷積神經網絡的結構是否有局限?加入RNN呢?

  • DQN無法解決一些高難度的Atari游戲比如《Montezuma’s Revenge》,如何處理這些游戲?

  • DQN訓練時間太慢了,跑一個游戲要好幾天,有沒有辦法更快?

  • DQN訓練是單獨的,也就是一個游戲弄一個網絡進行訓練,有沒有辦法弄一個網絡同時掌握多個游戲,或者訓練某一個游戲后將知識遷移到新的游戲?

  • DQN能否用在連續動作輸出問題?

Double DQN

L=(r+γQ(s′,arg?max?a′Q(s′,a′,w),w?)?Q(s,a,w))2L=\left(\color{blue}{r+\gamma Q(s',\color{red}{\mathop{\arg\max}_{a'}Q(s',a',w)},w^-)}-Q(s,a,w)\right)^2L=(r+γQ(s,argmaxa?Q(s,a,w),w?)?Q(s,a,w))2

Nature DQN的兩個Q網絡分離的還不夠徹底,Double DQN用當前的Q網絡來選擇動作(公式中紅色部分所示),而用目標Q網絡來計算目標Q。

參考:

https://mp.weixin.qq.com/s/NkWj1bV7uMjACxAvxhPJXw

DQN系列(1):Double Q-learning

https://mp.weixin.qq.com/s/WGxodXAxcgsz61VnuSF5aQ

DQN系列(2): Double DQN算法原理與實現

Prioritised replay

采樣優先級采用目標Q值與當前Q值的差值來表示:

∣r+γmax?a′Q(s′,a′,w?)?Q(s,a,w)∣| \color{blue}{r+\gamma \max_{a'}Q(s',a',w^-)}-Q(s,a,w) |r+γamax?Q(s,a,w?)?Q(s,a,w)

優先級越高,那么采樣的概率就越高。

Dueling Network

Dueling Network將Q網絡分成了兩個通道:

  • Action無關的值函數:V(s,v)V(s,v)V(s,v)

  • Action相關的值函數:A(s,a,w)A(s,a,w)A(s,a,w)

Q(s,a)=V(s,v)+A(s,a,w)Q(s,a)=V(s,v)+A(s,a,w)Q(s,a)=V(s,v)+A(s,a,w)

NAF

傳統RL任務:低維輸入,低維離散輸出。

Atari游戲:高維輸入,低維離散輸出。

通常的控制系統,除了離散控制之外,還有連續控制,然而DQN并不能直接用于連續域:因為它根本就沒辦法窮舉每一個動作,也就無法計算最大的Q值對應的動作。

論文:

《Continuous Deep Q-Learning with Model-based Acceleration》

對于連續控制,由于我們已經無法選擇動作,因此只能設計一種方法,使得我們輸入狀態,然后能夠輸出動作,并且保證輸出動作對應的Q值是最大值。

這個時候,我們有兩種選擇:

  • 弄兩個神經網絡,一個是Policy網絡,輸入狀態,輸出動作,另一個是Q網絡,輸入狀態,輸出Q值。這種做法其實就是Actor-Critic算法。

  • 只弄一個神經網絡,既能輸出動作也能輸出Q值。這就是本節所要使用的方法。

在《機器學習(三十五)》中,我們已經指出advantage function不改變策略梯度,但能有效約束variance。這里沿用了A函數定義:

A(s,a)=Q(s,a)?V(s)A(s,a)=Q(s,a)-V(s)A(s,a)=Q(s,a)?V(s)

作者設計了如下A函數:

A(x,μ∣θA)=?12(u?μ(x∣θμ))TP(x∣θP)(u?μ(x∣θμ))A(x,\mu | \theta^A)=-\frac{1}{2}(u-\mu(x | \theta^\mu))^T P(x | \theta^P)(u-\mu(x | \theta^\mu))A(x,μθA)=?21?(u?μ(xθμ))TP(xθP)(u?μ(xθμ))

其中x是狀態,u是動作,μ\muμ是神經網絡的輸出動作。

它的一階矩陣形式等價于:A(a)=?P(a?x)2A(a)=-P(a-x)^2A(a)=?P(a?x)2

因此,這是一個正定二次型的相反數,即A≤0A\le 0A0

我們的目標就是優化A函數,使之盡可能最大(即等于0)。這時A函數對應的動作即為最優動作。

以下是具體的網絡結構圖。

其流程如下:

  • 狀態經過兩層MLP之后(注意:第2層沒有RELU),生成三個tensor:V、μ\muμ、L0。

  • 將L0轉化為L。也就是將一個列向量轉換為下三角矩陣,就是從新排列,然后把對角線的數exp對數化。

  • 使用Cholesky分解構建P。

若A為n階對稱正定矩陣,則存在唯一的主對角線元素都是正數的下三角陣L,使得A=LLTA=LL^TA=LLT,此分解式稱為正定矩陣的喬列斯基(Cholesky)分解

  • 按照上圖的步驟,依此構建A和Q。其中的Q正好可用于DQN的訓練。

綜上,NAF既可以輸出action,也可產生Q值,而Q值可用于DQN訓練,從而使算法可以進行下去。

這里的構造邏輯和VAE很相似,都是假定構造方法成立,然后再用神經網絡擬合構造所需的各要素,最后通過訓練以達成構造的效果。

Distributional DQN

Distributional DQN也叫做Categorical DQN。

cumulated reward(累計獎勵)是一個孤立的值,它無法完全反映reward的全貌,比如上圖中的兩個reward,其累計值完全相同,但分布卻有很大的差異。這一定程度上會對策略的選擇產生影響。

傳統DQN最后一層輸出的是一個N維的向量,表示N個動作對應的價值,Categorical DQN輸出的是N×M維的向量,表示的是N個動作在M個價值分布的支撐上的概率。(以上圖為例,N=3,M=5。)

總結一下就是:傳統價值函數的目標是近似地估計價值的期望,而Distributional RL的目標是近似地估計價值的分布(概率密度函數)。

Distributional RL不僅可用于DQN,亦可應用于Actor-Critic,這也就是D4PG的主要idea了。

參考:

https://zhang-yi-chi.github.io/2018/09/19/DistributionalRL/

Distributional Reinforcement Learning

Rainbow

論文:

《Rainbow: Combining Improvements in Deep Reinforcement Learning》

Rainbow算是2017年比較火的一篇DRL方面的論文了。它沒有提出新方法,而只是整合了6種DQN算法的變種,達到了SOTA的效果。

這6種DQN算法是:

  • Double DQN
  • Prioritized Experience Replay
  • DuelingNet
  • NoisyNet
  • Distributional DQN(Categorical DQN)
  • N-step Learning

參考:

https://mp.weixin.qq.com/s/SZHMyWOXHM8T3zp_aUt-6A

DeepMind提出Rainbow:整合DQN算法中的六種變體

https://github.com/Curt-Park/rainbow-is-all-you-need

手把手教你從DQN到Rainbow

https://zhuanlan.zhihu.com/p/36375292

最前沿:當我們以為Rainbow就是Atari游戲的巔峰時,Ape-X出來把Rainbow秒成了渣!

參考

https://mp.weixin.qq.com/s/o27U97Y7BmMUXe3zAToHSQ

強化學習DQN初探之2048

https://mp.weixin.qq.com/s/SJd-3qH4W4GMMLZSmvFk1w

利用DQN玩吃豆人(Pacman)小游戲

https://mp.weixin.qq.com/s/snNvN4FFP0VEZwDA0TAp1w

強化學習訓練Chrome小恐龍Dino Run:最高超過4000分

總結

以上是生活随笔為你收集整理的深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史的全部內容,希望文章能夠幫你解決所遇到的問題。

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