国产美女主播视频一区_国产精品蜜臀在线观看_亚洲成人动漫一区_亚洲视屏在线播放

首頁 > 旅游

【新視野】強化學習從基礎到進階-常見問題和面試必知必答[4]::深度Q網絡-DQN、double DQN、經驗回放、rainbow、分布式DQN

來源:博客園 時間:2023-06-25 06:31:26

強化學習從基礎到進階-常見問題和面試必知必答[4]::深度Q網絡-DQN、double DQN、經驗回放、rainbow、分布式DQN

1.核心詞匯

  • 深度Q網絡(deep Q-network,DQN):基于深度學習的Q學習算法,其結合了價值函數近似(value function approximation)與神經網絡技術,并采用目標網絡和經驗回放等方法進行網絡的訓練。

  • 狀態-價值函數(state-value function):其輸入為演員某一時刻的狀態,輸出為一個標量,即當演員在對應的狀態時,預期的到過程結束時間段內所能獲得的價值。


    (資料圖片)

  • 狀態-價值函數貝爾曼方程(state-value function Bellman equation):基于狀態-價值函數的貝爾曼方程,它表示在狀態 $s_t$ 下對累積獎勵 $G_t$ 的期望。

  • Q函數(Q-function): 其也被稱為動作價值函數(action-value function)。其輸入是一個狀態-動作對,即在某一具體的狀態采取對應的動作,假設我們都使用某個策略 $\pi$ ,得到的累積獎勵的期望值有多大。

  • 目標網絡(target network):其可解決在基于時序差分的網絡中,優化目標 $Q_{\pi}\left(s_{t}, a_{t}\right) = r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右兩側會同時變化使得訓練過程不穩定,從而增大回歸的難度的問題。目標網絡選擇將右邊部分,即 $r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通過改變左邊部分,即 $Q_{\pi}\left(s_{t}, a_{t}\right)$ 中的參數進行回歸,這也是深度Q網絡應用中比較重要的技巧。

  • 探索(exploration):我們在使用Q函數的時候,我們的策略完全取決于Q函數,這有可能導致出現對應的動作是固定的某幾個數值的情況,而不像策略梯度中的輸出是隨機的,我們再從隨機分布中采樣選擇動作。這會導致我們繼續訓練的輸入值一樣,從而“加重”輸出的固定性,導致整個模型的表達能力急劇下降,這就是探索-利用窘境(exploration-exploitation dilemma)問題。我們可以使用 $\varepsilon$-貪心和玻爾茲曼探索(Boltzmann exploration)等探索方法進行優化。

  • 經驗回放(experience replay):其會構建一個回放緩沖區(replay buffer)來保存許多經驗,每一個經驗的形式如下:在某一個狀態 $s_t$,采取某一個動作 $a_t$,得到獎勵 $r_t$,然后進入狀態 $s_{t+1}$。我們使用 $\pi$ 與環境交互多次,把收集到的經驗都存儲在回放緩沖區中。當我們的緩沖區“裝滿”后,就會自動刪去最早進入緩沖區的經驗。在訓練時,對于每一輪迭代都有相對應的批量(batch)(與我們訓練普通的網絡一樣,都是通過采樣得到的),然后用這個批量中的經驗去更新我們的Q函數。綜上,Q函數在采樣和訓練的時候,會用到過去的經驗,所以這里稱這個方法為經驗回放,其也是深度Q網絡應用中比較重要的技巧。

  • 雙深度Q網絡(double DQN):在雙深度Q網絡中存在兩個Q網絡,第一個Q網絡決定哪一個動作的Q值最大,從而決定對應的動作。另一方面,Q值是用 $Q"$ 計算得到的,這樣就可以避免過度估計的問題。具體地,假設我們有兩個Q函數并且第一個Q函數高估了它現在執行的動作 $a$ 的值,這沒關系,只要第二個Q函數 $Q"$ 沒有高估動作 $a$ 的值,那么計算得到的就還是正常的值。

  • 競爭深度Q網絡(dueling DQN):將原來的深度Q網絡的計算過程分為兩步。第一步計算一個與輸入有關的標量 $\mathrm{V(s)}$;第二步計算一個向量 $\mathrm{A(s,a)}$ 對應每一個動作。最后的網絡將兩步的結果相加,得到我們最終需要的Q值。用一個公式表示就是 $\mathrm{Q(s,a)=V(s)+A(s,a)}$ 。另外,競爭深度Q網絡,使用狀態價值函數與動作價值函數來評估Q值。

  • 優先級經驗回放(prioritized experience replay,PER):這個方法是為了解決我們在第6章中提出的經驗回放方法的不足而提出的。我們在使用經驗回放時,均勻地取出回放緩沖區(reply buffer)中的采樣數據,這里并沒有考慮數據間的權重大小。但是我們應該將那些訓練效果不好的數據對應的權重加大,即其應該有更大的概率被采樣到。綜上,優先級經驗回放不僅改變了被采樣數據的分布,還改變了訓練過程。

  • 噪聲網絡(noisy net):其在每一個回合開始的時候,即智能體要和環境交互的時候,在原來的Q函數的每一個參數上加上一個高斯噪聲(Gaussian noise),把原來的Q函數變成 $\tilde{Q}$ ,即噪聲Q函數。同樣,我們把每一個網絡的權重等參數都加上一個高斯噪聲,就得到一個新的網絡 $\tilde{Q}$ 。我們會使用這個新的網絡與環境交互直到結束。

  • 分布式Q函數(distributional Q-function):對深度Q網絡進行模型分布,將最終網絡的輸出的每一類別的動作再進行分布操作。

  • 彩虹(rainbow):將7個技巧/算法綜合起來的方法,7個技巧分別是——深度Q網絡、雙深度Q網絡、優先級經驗回放的雙深度Q網絡、競爭深度Q網絡、異步優勢演員-評論員算法(A3C)、分布式Q函數、噪聲網絡,進而考察每一個技巧的貢獻度或者與環境的交互是否是正反饋的。

2.常見問題匯總

2.為什么在深度Q網絡中采用價值函數近似的表示方法?

首先深度Q網絡為基于深度學習的Q學習算法,而在Q學習中,我們使用表格來存儲每一個狀態下動作的獎勵,即我們在正文中介紹的動作價值函數 $Q(s,a)$ 。但是在我們的實際任務中,狀態量通常數量巨大,并且在連續任務中會遇到維度災難等問題,使用真正的價值函數通常是不切實際的,所以使用了與價值函數近似的表示方法。

2.2 評論員的輸出通常與哪幾個值直接相關?

與狀態和演員直接相關。我們在討論輸出時通常是針對一個演員衡量一個狀態的好壞,也就是狀態、價值從本質上來說是依賴于演員的。不同的演員在相同的狀態下也會有不同的輸出。

2.3 我們通常怎么衡量狀態價值函數 $V_{\pi}(s)$ ?其優勢和劣勢分別有哪些?

(1)基于蒙特卡洛的方法:本質上就是讓演員與環境交互。評論員根據統計結果,將演員和狀態對應起來,即如果演員看到某一狀態 $s_a$ ,將預測接下來的累積獎勵有多大,如果看到另一個狀態 $s_b$,將預測接下來的累積獎勵有多大。但是其普適性不好,其需要匹配到所有的狀態。如果我們面對的是一個簡單的例如貪吃蛇游戲等狀態有限的問題還可以應對,但是如果我們面對的是一個圖片型的任務,我們幾乎不可能將所有的狀態(對應每一幀的圖像)的都“記錄”下來。總之,其不能對未出現過的輸入狀態進行對應價值的輸出。

(2)基于蒙特卡洛的網絡方法:為了彌補上面描述的基于蒙特卡洛的方法的不足,我們將其中的狀態價值函數 $V_{\pi}(s)$ 定義為一個網絡,其可以對于從未出現過的輸入狀態,根據網絡的泛化和擬合能力,“估測”出一個價值輸出。

(3)基于時序差分的網絡方法,即基于時序差分的網絡:與我們在前4章介紹的蒙特卡洛方法與時序差分方法的區別一樣,基于時序差分的網絡方法和基于蒙特卡洛的網絡方法的區別也相同。在基于蒙特卡洛的方法中,每次我們都要計算累積獎勵,也就是從某一個狀態 $s_a$ 一直到游戲結束的時候,得到的所有獎勵的總和。所以要應用基于蒙特卡洛的方法時,我們必須至少把游戲玩到結束。但有些游戲要玩到游戲結束才能夠更新網絡花費的時間太長了,因此我們會采用基于時序差分的網絡方法。基于時序差分的網絡方法不需要把游戲玩到結束,只要在游戲某一個狀態 $s_t$ 的時候,采取動作 $a_t$ 得到獎勵 $r_t$ ,進入狀態 $s_{t+1}$,就可以應用基于時序差分的網絡方法。其公式與之前介紹的時序差分方法類似,即 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$。

(4)基于蒙特卡洛方法和基于時序差分方法的區別在于: 蒙特卡洛方法本身具有很大的隨機性,我們可以將其 $G_a$ 視為一個隨機變量,所以其最終的偏差很大。而對于時序差分,其具有隨機的變量 $r$ 。因為在狀態 $s_t$ 采取同一個動作,所得的獎勵也不一定是一樣的,所以對于時序差分方法來說,$r$ 是一個隨機變量。但是相對于蒙特卡洛方法的 $G_a$ 來說,$r$ 的隨機性非常小,這是因為 $G_a$ 本身就是由很多的 $r$ 組合而成的。從另一個角度來說,在時序差分方法中,我們的前提是 $r_t=V_{\pi}\left(s_{t+1}\right)-V_{\pi}\left(s_{t}\right)$ ,但是我們通常無法保證 $V_{\pi}\left(s_{t+1}\right)$ 、$V_{\pi}\left(s_{t}\right)$ 計算的誤差為0。所以當 $V_{\pi}\left(s_{t+1}\right)$ 、$V_{\pi}\left(s_{t}\right)$ 計算得不準確,得到的結果也會是不準確的。總之,兩者各有優劣。

(5)目前,基于時序差分的方法是比較常用的,基于蒙特卡洛的方法其實是比較少用的。

2.4 基于本章正文介紹的基于蒙特卡洛的網絡方法,我們怎么訓練模型呢?或者我們應該將其看作機器學習中什么類型的問題呢?

理想狀態下,我們期望對于一個輸入狀態,輸出其無誤差的獎勵價值。對于價值函數,如果輸入狀態是 $s_a$,正確的輸出價值應該是 $G_a$。如果輸入狀態是 $s_b$,正確的輸出價值應該是 $G_b$。所以在訓練的時候,其就是一個典型的機器學習中的回歸問題。我們實際中需要輸出的僅僅是一個非精確值,即我們希望在輸入狀態 $s_a$ 的時候,輸出價值與 $G_a$ 越近越好;輸入 $s_b$ 的時候,輸出價值與 $G_b$ 越近越好。其訓練方法與我們在訓練卷積神經網絡等深度神經網絡時的方法類似。

2.5 基于本章正文中介紹的基于時序差分的網絡方法,具體地,我們應該怎么訓練模型呢?

基于時序差分網絡的核心函數為 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$。我們將狀態 $s_t$ 輸入網絡,因為將 $s_t$ 輸入網絡會得到輸出 $V_{\pi}(s_t)$,同樣將 $s_{t+1}$ 輸入網絡會得到$V_{\pi}(s_{t+1})$。同時核心函數 $V_{\pi}\left(s_{t}\right)=V_{\pi}\left(s_{t+1}\right)+r_{t}$ 告訴我們, $V_{\pi}(s_t)$ 減 $V_{\pi}(s_{t+1})$ 的值應該是 $r_t$。我們希望它們兩個相減的損失值與 $r_t$ 盡可能地接近。這也是網絡的優化目標,我們稱之為損失函數。

2.6 動作價值函數和狀態價值函數的有什么區別和聯系?

(1)狀態價值函數的輸入是一個狀態,它根據狀態計算出當前這個狀態以后的累積獎勵的期望值是多少。

(2)動作價值函數的輸入是狀態-動作對,即在某一個狀態采取某一個動作,同時假設我們都使用策略 $\pi$ ,得到的累積獎勵的期望值是多少。

2.7 請介紹Q函數的兩種表示方法。

(1)使用狀態-動作對表示時,即當Q函數的輸入是狀態-動作對時,輸出就是一個標量。

(2)僅使用狀態表示時,即當Q函數的輸入僅是一個狀態時,輸出就是多個價值。

2.8 當得到了Q函數后,我們應當如何找到更好的策略 $\pi"$ 呢?或者說 $\pi"$ 的本質是什么?

首先, $\pi"$ 由 $\pi^{\prime}(s)=\underset{a}{\arg \max} Q_{\pi}(s, a)$ 計算而得,其表示假設我們已經學習出 $\pi$ 的Q函數,對于某一個狀態 $s$ ,把所有可能的動作 $a$ 一一代入這個Q函數,看看哪一個動作 $a$ 可以讓Q函數的價值最大,那么該動作就是 $\pi"$ 將會執行的動作。所以根據以上方法決定動作的策略 $\pi"$ 一定比原來的策略 $\pi$ 要好,即 $V_{\pi^{\prime}}(s) \geqslant V_{\pi}(s)$ 。

2.9 解決探索-利用窘境問題的探索的方法有哪些?

(1) $\varepsilon$-貪心: 我們有 $1-\varepsilon$ 的概率(通常 $\varepsilon$ 很小)完全按照Q函數決定動作,但是有 $\varepsilon$ 的概率使得動作是隨機的。通常在實現上, $\varepsilon$的值會隨著時間遞減。也就是在最開始的時候,因為還不知道哪個動作是比較好的,所以我們會花比較大的力氣做探索。接下來隨著訓練的次數越來越多,我們已經比較確定哪一種策略是比較好的,就會減少探索,從而把 $\varepsilon$ 的值變小,主要根據Q函數來決定未來的動作,隨機性就會變小。

(2) 玻爾茲曼探索:這個方法比較像策略梯度。在策略梯度里面,網絡的輸出是一個期望動作空間上的一個概率分布,我們根據概率分布去采樣。所以也可以根據Q值確定一個概率分布,假設某一個動作的Q值越大,代表它越好,我們采取這個動作的概率就越高。

2.10 我們使用經驗回放有什么好處

(1)首先,在強化學習的整個過程中,最花時間的過程是與環境交互,使用GPU乃至TPU來訓練網絡相對來說是比較快的。而用回放緩沖區可以減少與環境交互的次數。因為在訓練的時候,我們的經驗不需要通通來自于某一個策略(或者當前時刻的策略)。一些由過去的策略所得到的經驗可以放在回放緩沖區中被使用多次,被反復地再利用,這樣采樣到的經驗才能被高效地利用。

(2)另外,在訓練網絡的時候,我們其實希望一個批量里面的數據越多樣越好。如果一個批量里面的數據都是同性質的,我們訓練出的模型的擬合能力可能不會很樂觀。如果一個批量里面都是一樣的數據,在訓練的時候,擬合效果會比較差。如果回放緩沖區里面的經驗通通來自于不同的策略,那么采樣到的一個批量里面的數據會是比較多樣的。這樣可以保證我們的模型的性能至少不會很差。

2.11 在經驗回放中我們觀察 $\pi$ 的價值,發現里面混雜了一些不是 $\pi$ 的經驗,這會有影響嗎?

沒影響。這并不是因為過去的 $\pi$ 與現在的 $\pi"$ 很相似,就算過去的$\pi$ 不是很相似,其實也是沒有關系的。主要的原因是我們并不是去采樣一條軌跡,我們只能采樣一個經驗,所以與是不是異策略是沒有關系的。就算是異策略,就算是這些經驗不是來自 $\pi$,我們還是可以使用這些經驗來估測 $Q_{\pi}(s,a)$。

2.12 為什么傳統的深度Q網絡的效果并不好?可以參考其公式 $Q(s_t ,a_t)=r_t+\max_{a}Q(s_{t+1},a)$ 來描述。

因為實際應用時,需要讓 $Q(s_t ,a_t)$ 與 $r_t+\max_{a}Q(s_{t+1},a)$ 盡可能相等,即與我們的目標越接近越好。可以發現,目標值很容易一不小心就被設置得太高,因為在計算該目標值的時候,我們實際上在做的事情是看哪一個動作 $a$ 可以得到最大的Q值,就把它加上去,使其成為我們的目標。

例如,現在有4個動作,本來它們得到的Q值都是差不多的,它們得到的獎勵也都是差不多的,但是在估算的時候是有誤差的。如果第1個動作被高估了,那目標就會執行該動作,然后就會選這個高估的動作的Q值加上 $r_t$ 當作目標值。如果第4個動作被高估了,那目標就會選第4個動作的Q值加上 $r_t$ 當作目標值。所以目標總是會選那個Q值被高估的動作,我們也總是會選那個獎勵被高估的動作的Q值當作Q值的最大值的結果去加上 $r_t$ 當作新目標值,因此目標值總是太大。

2.13 在傳統的深度Q網絡中,我們應該怎么解決目標值太大的問題呢?

我們可以使用雙深度Q網絡解決這個問題。首先,在雙深度Q網絡里面,選動作的Q函數與計算價值的Q函數不同。在深度Q網絡中,需要窮舉所有的動作 $a$,把每一個動作 $a$ 都代入Q函數并計算哪一個動作 $a$ 反饋的Q值最大,就把這個Q值加上 $r_t$ 。但是對于雙深度Q網絡的兩個Q網絡,第一個Q網絡決定哪一個動作的Q值最大,以此來決定選取的動作。我們的Q值是用 $Q"$ 算出來的,這樣有什么好處呢?為什么這樣就可以避免過度估計的問題呢?假設我們有兩個Q函數,如果第一個Q函數高估了它現在選出來的動作 $a$ 的值,那沒關系,只要第二個Q函數 $Q"$ 沒有高估這個動作 $a$ 的值,計算得到的就還是正常值。假設反過來是 $Q"$ 高估了某一個動作的值,那也不會產生過度估計的問題。

2.14 請問雙深度Q網絡中所謂的 $Q$ 與 $Q"$ 兩個網絡的功能是什么?

在雙深度Q網絡中存在兩個Q網絡,一個是目標的Q網絡,一個是真正需要更新的Q網絡。具體實現方法是使用需要更新的Q網絡選動作,然后使用目標的Q網絡計算價值。雙深度Q網絡相較于深度Q網絡的更改是最少的,它幾乎沒有增加任何的運算量,甚至連新的網絡都不需要。唯一要改變的就是在找最佳動作 $a$ 的時候,本來使用 $Q"$ 來計算,即用目標的Q網絡來計算,現在改成用需要更新的Q網絡來計算。

2.15 如何理解競爭深度Q網絡的模型變化帶來的好處?

對于 $\mathrm{Q}(s,a)$ ,其對應的狀態由于為表格的形式,因此是離散的,而實際中的狀態卻不是離散的。對于 $\mathrm{Q}(s,a)$ 的計算公式—— $\mathrm{Q}(s,a)=\mathrm{V}(s)+\mathrm{A}(s,a)$ 。其中的 $\mathrm{V}(s)$ 對于不同的狀態都有值, $\mathrm{A}(s,a)$ 對于不同的狀態都有不同的動作對應的值。所以從本質上來說,我們最終矩陣 $\mathrm{Q}(s,a)$ 的結果是將每一個 $\mathrm{V}(s)$ 加到矩陣 $\mathrm{A}(s,a)$ 中得到的。從模型的角度考慮,我們的網絡直接改變的不是 $\mathrm{Q}(s,a)$ ,而是改變的 $\mathrm{V}$、$\mathrm{A}$ 。但是有時我們更新時不一定會將 $\mathrm{V}(s)$ 和 $\mathrm{Q}(s,a)$ 都更新。將狀態和動作對分成兩個部分后,我們就不需要將所有的狀態-動作對都采樣一遍,我們可以使用更高效的估計Q值的方法將最終的 $\mathrm{Q}(s,a)$ 計算出來。

2.16 使用蒙特卡洛和時序差分平衡方法的優劣分別有哪些?

優勢:時序差分方法只采樣了一步,所以某一步得到的數據是真實值,接下來的都是Q值估測出來的。使用蒙特卡洛和時序差分平衡方法采樣比較多步,如采樣$N$步才估測價值,所以估測的部分所造成的影響就會比較小。

劣勢:因為智能體的獎勵比較多,所以當我們把$N$步的獎勵加起來時,對應的方差就會比較大。為了緩解方差大的問題,我們可以通過調整$N$值,在方差與不精確的Q值之間取得一個平衡。這里介紹的參數$N$是超參數,需要微調參數 $N$,例如是要多采樣3步、還是多采樣5步。

2.17 深度Q網絡相比基于策略梯度的方法為什么訓練效果更好、更平穩?

在深度Q網絡中,只要能夠估計出Q函數,就可以找到一個比較好的策略。同樣地,只要能夠估計出Q函數,就可以增強對應的策略。因為估計Q函數是一個比較容易的回歸問題,在這個回歸問題中,我們可以時刻觀察模型訓練的效果是不是越來越好(一般情況下我們只需要關注回歸的損失有沒有下降,就可以判斷模型學習得好不好),所以估計Q函數相較于學習一個策略來說是比較容易的。只需要估計Q函數,就可以保證現在一定會得到比較好的策略,同樣其也比較容易操作。對比來說,策略梯度方法中的優化目標是最大化總回報,但是我們很難找到一個明確的損失函數來進行優化,其本質上是一個策略搜索問題,也就是一個無約束的優化問題。

2.18 深度Q網絡在處理連續動作時存在什么樣的問題呢?對應的解決方法有哪些呢?

我們在日常生活中常見的問題大都是包含連續動作的,例如智能體要進行自動駕駛,其就需要決定方向盤要左轉幾度或右轉幾度,這就是連續的動作;假設智能體是一個機器人,它身上有50個關節,它的每一個動作就對應到這50個關節的角度,這些角度也是連續的。

然而在使用深度Q網絡時,很重要的一步是要求能夠解決對應的優化問題。當我們預估出Q函數 $Q(s,a)$ 以后,必須要找到一個動作,它可以讓 $Q(s,a)$ 最大。假設動作是離散的,那么動作 $a$ 的可能性是有限的。但如果動作是連續的,我們就不能像對離散的動作一樣,窮舉所有可能的動作了。

為了解決這個問題,有以下幾種方案。

(1)第一個方案:我們可以使用采樣方法,即隨機采樣出$N$個可能的動作,然后一個一個代入Q函數中,計算對應的$N$個Q值,并比較哪一個最大。但是這個方案因為使用采樣方法所以不會非常精確。

(2)第二個方案:我們將這個連續動作問題,建模為一個優化問題,從而可以用梯度上升去最大化我們的目標函數。具體地,我們將動作視為變量,使用梯度上升更新動作對應的Q值。但是這個方案通常時間花銷比較大,因為其需要迭代計算。

(3)第三個方案:設計一個特別的網絡架構,即設計一個特別的Q函數,使得求解讓Q函數最大化的動作 $a$ 變得非常容易。也就是這里的Q函數不是一個廣義的Q函數,我們可以使用特殊方法設計Q函數,使得尋找讓這個Q函數最大的動作 $a$ 非常容易。但是這個方案的Q函數不能隨意設計,其必須有一些額外的限制。

(4)第四個方案:不用深度Q網絡,畢竟用其處理連續動作比較麻煩。

3.面試必知必答

3.1 友善的面試官:請問深度Q網絡是什么?其兩個關鍵性的技巧分別是什么?

深度Q網絡是基于深度學習的Q學習算法,其結合了價值函數近似與神經網絡技術,并采用了目標網絡和經驗回放技巧進行網絡的訓練。目標網絡和經驗回放

3.2 友善的面試官:那我們繼續分析!你剛才提到的深度Q網絡中的兩個技巧————目標網絡和經驗回放,其具體作用是什么呢?

在深度Q網絡中某個動作價值函數的更新依賴于其他動作價值函數。如果我們一直更新價值網絡的參數,會導致更新目標不斷變化,也就是我們在追逐一個不斷變化的目標,這樣勢必會不太穩定。為了解決基于時序差分的網絡中,優化目標 $Q_{\pi}\left(s_{t}, a_{t}\right) =r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 左右兩側會同時變化使得訓練過程不穩定,從而增大回歸難度的問題,目標網絡選擇將優化目標的右邊即 $r_{t}+Q_{\pi}\left(s_{t+1}, \pi\left(s_{t+1}\right)\right)$ 固定,通過改變優化目標左邊的網絡參數進行回歸。對于經驗回放,其會構建一個回放緩沖區,用來保存許多數據,每一個數據的內容包括:狀態 $s_t$、采取的動作 $a_t$、得到的獎勵 $r_t$、下一個狀態 $s_{t+1}$。我們使用 $\pi$ 與環境交互多次,把收集到的數據都放到回放緩沖區中。當回放緩沖區“裝滿”后,就會自動刪去最早進入緩沖區的數據。在訓練時,對于每一輪迭代都有相對應的批量(與我們訓練普通網絡一樣,通過采樣得到),然后用這個批量中的數據去更新Q函數。即Q函數在采樣和訓練的時候會用到過去的經驗數據,也可以消除樣本之間的相關性。

3.3 友善的面試官:深度Q網絡和Q學習有什么異同點?

整體來說,從名稱就可以看出,兩者的目標價值以及價值的更新方式基本相同。但有如下不同點:

(1)首先,深度Q網絡將Q學習與深度學習結合,用深度網絡來近似動作價值函數,而Q學習則是采用表格進行存儲。

(2)深度Q網絡采用了經驗回放的技巧,從歷史數據中隨機采樣,而Q學習直接采用下一個狀態的數據進行學習。

3.4 友善的面試官:請問,隨機性策略和確定性策略有什么區別嗎?

隨機性策略表示為某個狀態下動作取值的分布,確定性策略在每個狀態只有一個確定的動作可以選。從熵的角度來說,確定性策略的熵為0,沒有任何隨機性。隨機性策略有利于我們進行適度的探索,確定性策略不利于進行探索。

3.5 友善的面試官:請問不打破數據相關性,神經網絡的訓練效果為什么就不好?

在神經網絡中通常使用隨機梯度下降法。隨機的意思是我們隨機選擇一些樣本來增量式地估計梯度,比如常用的批量訓練方法。如果樣本是相關的,就意味著前后兩個批量很可能也是相關的,那么估計的梯度也會呈現出某種相關性。但是在極端條件下,后面的梯度估計可能會抵消掉前面的梯度估計量,從而使得訓練難以收斂。

3.6 友善的面試官:深度Q網絡都有哪些變種?引入狀態獎勵的是哪種?

深度Q網絡有3個經典的變種:雙深度Q網絡、競爭深度Q網絡、優先級雙深度Q網絡。

(1)雙深度Q網絡:將動作選擇和價值估計分開,避免Q值被過高估計。

(2)競爭深度Q網絡:將Q值分解為狀態價值和優勢函數,得到更多有用信息。

(3)優先級雙深度Q網絡:將經驗池中的經驗按照優先級進行采樣。

3.7 友善的面試官:請簡述雙深度Q網絡原理。

深度Q網絡由于總是選擇當前最優的動作價值函數來更新當前的動作價值函數,因此存在過估計問題(估計的價值函數值大于真實的價值函數值)。為了解耦這兩個過程,雙深度Q網絡使用兩個價值網絡,一個網絡用來執行動作選擇,然后用另一個網絡的價值函數對應的動作值更新當前網絡。

3.8 友善的面試官:請問競爭深度Q網絡模型有什么優勢呢?

對于 $\boldsymbol{Q}(s,a)$ ,其對應的狀態由于為表格的形式,因此是離散的,而實際的狀態大多不是離散的。對于Q值 $\boldsymbol{Q}(s,a)=V(s)+\boldsymbol{A}(s,a)$ 。其中的 $V(s)$ 是對于不同的狀態都有值, $\boldsymbol{A}(s,a)$ 對于不同的狀態都有不同的動作對應的值。所以本質上,我們最終的矩陣 $\boldsymbol{Q}(s,a)$ 是將每一個 $V(s)$ 加到矩陣 $\boldsymbol{A}(s,a)$ 中得到的。但是有時我們更新時不一定會將 $V(s)$ 和 $\boldsymbol{Q}(s,a)$ 都更新。我們將其分成兩個部分后,就不需要將所有的狀態-動作對都采樣一遍,我們可以使用更高效的估計Q值的方法將最終的 $\boldsymbol{Q}(s,a)$ 計算出來。

更多優質內容請關注公號:汀丶人工智能

相關稿件

【新視野】強化學習從基礎到進階-常見問題和面試必知必答[4]::深度Q網絡-DQN、double DQN、經驗回放、rainbow、分布式DQN

約克中央空調安裝全過程(約克中央空調安裝)

一周市場回顧

MosaicML 推出 300 億參數模型,訓練成本 70 萬

鐘鼓饌玉不足貴但愿長醉不復醒還是不愿醒(鐘鼓饌玉不足貴但愿長醉不復醒)

6月24日體彩開獎

環球最新:理夫泉的護膚品怎么樣(理膚泉的護膚品怎么樣)

【環球報資訊】在命令行按下tab鍵之后, 發生了生么?

谷歌稱愿為Stadia花五年打造3A游戲 奈何成本太高_當前速讀

車保險到期了不開可以先不交嗎

如何養護丙烯酸涂料,讓你的禮物更持久美麗?男生必看送女生禮物小技巧!|今亮點

黃金消費旺 吉祥又時尚 每日關注

動物園里過端午

環球今頭條!重慶四環來了!將形成“四環二十二射六十聯線”高速公路網布局

Lisa Selesner(lisa selesner)|環球關注

天天新動態:女子用蹲便器洗粽葉被吐槽 店老板:沒連接下水道

要學會取舍_天天時快訊

上汽大眾全新Polo Plus怎么樣及廣汽謳歌TLX-L 2.4L多少錢|全球速訊

【當前獨家】讓傳統節日綻放時代新韻(今日談)

潮訊:蘋果終于修復這漏洞;安卓比iOS更容易使用;手機NFC功能要徹底變了;Flyme10修復了這些問題

溫迪的蝴蝶結怎么系?

“夏日夜經濟”火熱 激發消費新活力

每日消息!webhits.dll缺少打不開怎么辦

天天熱消息:蝴蝶結扣怎么系好看?

紐約記者:尼克斯內部有一些人士有意迪文岑佐|快訊

全球聚焦:收藏!高考查分報志愿時間表

市第八屆中華龍舟賽圓滿閉幕

剪輯視頻需要版權嗎?存在侵權嗎?

南方 16 條河流發生超警洪水,水利部門全力做好暴雨洪水防御 天天微資訊

山東高速駛入高質量發展“快車道” 當前視訊


主站蜘蛛池模板: 欧美精品久久久久久久久久久| 国产精品91在线观看| 一区二区视频国产| 亚洲精品日韩激情在线电影| 欧美成人精品三级在线观看| 国产日产亚洲精品| 麻豆久久久9性大片| 欧美一区二区视频97| 欧美乱妇高清无乱码| 久久九九国产精品怡红院 | 久99久在线| 欧美精品久久久久| 欧美一区二区视频在线| 久久riav二区三区| 黄色三级中文字幕| 国产精品自拍视频| 久久全国免费视频| 日本三日本三级少妇三级66| 日韩一二区视频| 久久久久久av| 久久久久国色av免费观看性色| 精品国产一区二区三区久久狼黑人 | 无码人妻精品一区二区蜜桃百度| 91精品国产综合久久香蕉922| 欧美中文字幕视频在线观看| 亚洲欧美精品在线观看| 日日噜噜噜夜夜爽亚洲精品| 色婷婷成人综合| 欧美在线日韩精品| 久久五月天综合| 一区中文字幕在线观看| 久久中文精品视频| 久久五月天色综合| 91免费国产视频| 一区二区不卡视频| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲综合中文字幕在线| 久久在线精品视频| 不卡视频一区二区三区| 日本阿v视频在线观看| 日韩一区二区高清视频|