什么是 DQN


粉紅色:不會。

黃色:重點。

1.為什么要使用神經網絡  

我們使用表格來存儲每一個狀態 state, 和在這個 state 每個行為 action 所擁有的 Q 值. 而當今問題是在太復雜, 狀態可以多到比天上的星星還多(比如下圍棋). 如果全用表格來存儲它們, 恐怕我們的計算機有再大的內存都不夠, 而且每次在這么大的表格中搜索對應的狀態也是一件很耗時的事. 不過, 在機器學習中, 有一種方法對這種事情很在行, 那就是神經網絡. 我們可以將狀態和動作當成神經網絡的輸入, 然后經過神經網絡分析后得到動作的 Q 值, 這樣我們就沒必要在表格中記錄 Q 值, 而是直接使用神經網絡生成 Q 值. 還有一種形式的是這樣, 我們也能只輸入狀態值, 輸出所有的動作值, 然后按照 Q learning 的原則, 直接選擇擁有最大值的動作當做下一步要做的動作. 我們可以想象, 神經網絡接受外部的信息, 相當於眼睛鼻子耳朵收集信息, 然后通過大腦加工輸出每種動作的值, 最后通過強化學習的方式選擇動作.

 2.更新神經網絡

  

 

接下來我們基於第二種神經網絡來分析, 我們知道, 神經網絡是要被訓練才能預測出准確的值. 那在強化學習中, 神經網絡是如何被訓練的呢? 首先, 我們需要 a1, a2 正確的Q值, 這個 Q 值我們就用之前在 Q learning 中的 Q 現實來代替. 同樣我們還需要一個 Q 估計 來實現神經網絡的更新. 所以神經網絡的的參數就是老的 NN 參數 加學習率 alpha 乘以 Q 現實 和 Q 估計 的差距. 我們整理一下.

  

我們通過 NN 預測出Q(s2, a1) 和 Q(s2,a2) 的值, 這就是 Q 估計. 然后我們選取 Q 估計中最大值的動作來換取環境中的獎勵 reward. 而 Q 現實中也包含從神經網絡分析出來的兩個 Q 估計值, 不過這個 Q 估計是針對於下一步在 s’ 的估計. 最后再通過剛剛所說的算法更新神經網絡中的參數. 但是這並不是 DQN 會玩電動的根本原因. 還有兩大因素支撐着 DQN 使得它變得無比強大. 這兩大因素就是 Experience replay 和 Fixed Q-targets.

DQN 兩大利器

DQN-4

簡單來說, DQN 有一個記憶庫用於學習之前的經歷. 在之前的簡介影片中提到過, Q learning 是一種 off-policy 離線學習法, 它能學習當前經歷着的, 也能學習過去經歷過的, 甚至是學習別人的經歷. 所以每次 DQN 更新的時候, 我們都可以隨機抽取一些之前的經歷進行學習. 隨機抽取這種做法打亂了經歷之間的相關性, 也使得神經網絡更新更有效率. Fixed Q-targets 也是一種打亂相關性的機理, 如果使用 fixed Q-targets, 我們就會在 DQN 中使用到兩個結構相同但參數不同的神經網絡, 預測 Q 估計 的神經網絡具備最新的參數, 而預測 Q 現實 的神經網絡使用的參數則是很久以前的. 有了這兩種提升手段, DQN 才能在一些游戲中超越人類.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM