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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

DQN 笔记 State-action Value Function(Q-function)

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

1?State-action Value Function(Q-function)

1.1 和 狀態價值函數的對比

????????在DQN筆記:MC & TD_UQI-LIUWJ的博客-CSDN博客?中,狀態價值函數的輸入是一個狀態。它是根據狀態去計算出,看到這個狀態以后,累積獎勵的期望是多少。

????????狀態-動作價值函數【State-action Value Function】的輸入是一個狀態、動作對。它的意思是說,在某一個狀態采取某一個動作,假設我們都使用演員 π?,得到的累積獎勵的期望值有多大。

1.2 一個需要注意的問題

????????有一個需要注意的問題是,這個演員π,在看到狀態 s 的時候,它采取的動作不一定是 a。

????????Q-function 假設在狀態 s 強制采取動作 a。不管你現在考慮的這個演員π, 它會不會采取動作 a,這不重要。在狀態 s 強制采取動作 a。

? ? ? ? 接下來的狀態就進入”自動模式“,讓演員π 按照他設定的策略繼續玩下去。這樣得到的期望獎勵才是

1.3 兩種寫法

Q-function 有兩種寫法:

  • 輸入是狀態跟動作,輸出就是一個標量;

  • 輸入是一個狀態,輸出就是好幾個值。

????????假設動作是離散的,動作就只有 3 個可能:往左往右或是開火。

????????那這個 Q-function 輸出的 3 個值就分別代表 a 是向左的時候的 Q 值,a 是向右的時候的 Q 值,還有 a 是開火的時候的 Q 值。

????????要注意的事情是,這種寫法只有離散動作才能夠使用。如果動作是無法窮舉的,你只能夠用第一種寫法,不能用第二種寫法。

2 策略改進

????????有了這個 Q-function,我們就可以決定要采取哪一個動作,我們就可以進行策略改進(Policy Improvement)了。

2.1 大致思路

? ? ? ? 大致思路如下,假設你有一個初始的演員π,這個 π?跟環境互動,會收集數據。

????????接下來學習一個演員π的 Q 值(衡量一下π?在某一個狀態強制采取某一個動作,接下來用π?這個策略 會得到的期望獎勵)【TD,MC皆可】

????????學習出一個 Q-function 以后,就可以去找一個新的策略 π′?,π′?一定會比原來的策略π?還要好。

? ? ? ? ?這樣一直循環下去,policy 就會越來越好。

2.2 什么是更好的策略?

????????這邊”好“是說,對所有可能的狀態 s 而言,。????????

????????也就是說我們走到同一個狀態 s 的時候,如果拿π?繼續跟環境互動下去,我們得到的獎勵一定會小于等于用π′?跟環境互動下去得到的獎勵。

2.3 如何找更好的策略?

????????有了 Q-function 以后,怎么找這個 π′?呢?

? ? ? ? ?我們可以根據上式來查找 π′?

????????假設你已經學習出π?的 Q-function,今天在某一個狀態 s,你把所有可能的動作 a 都一一帶入這個 Q-function,看看哪一個 a 可以讓 Q-function 的值最大,那這個動作就是π′?會采取的動作。

????????這邊要注意一下,給定這個狀態 s,你的策略π?并不一定會采取動作a,我們是給定某一個狀態 s 強制采取動作 a,用π?繼續互動下去得到的期望獎勵,這個才是 Q-function 的定義。

2.4 為什么用決定出來的 π′?一定會比π?好?

? ? ? ? 這里也就是要說明,假設有一個策略叫做 π′,它是由決定的。我們要證對所有的狀態 s 而言,。

? ? ? ? 首先,。因為在狀態 s根據π?這個演員,它會采取的動作就是π(s)

? ? ? ? ?同時,我們根據策略更新的方式,知道:(因為 a 是所有動作里面可以讓 Q 最大的那個動作)

? ? ? ? ?而最大的那個動作就是π′(s),所以有:

? ? ? ? 于是有:

????????

?????????而?π只是當前狀態為s的時候,是會導致最大的Q(s,a),之后的各個狀態s',則不一定是最大的Q(s',a)。而π' 會保證所有的狀態s,Q(s,a)都是最大的。所以后者一定大于等于前者。

?

所以,我們可以估計某一個策略的 Q-function,接下來你就可以找到另外一個策略?π′?比原來的策略還要更好。

3 target network

?????????我們在學習 Q-function 的時候,也會用到 TD:在狀態st?,你采取動作at??以后,你得到獎勵rt??,然后跳到狀態。然后根據這個 Q-function,會得到:

????????

?????????所以在學習的時候,我們希望我們的Q-function,輸入st?,at??得到的值,跟輸入,?得到的值中間,我們希望它差了一個rt?。

?????????但是實際上這樣的一個輸入并不好學習。

????????假設這是一個回歸問題,?是網絡的輸出,是目標,你會發現目標也是會隨著訓練過程而動的。

????????當然要實現這樣的訓練,其實也沒有問題,就是你在做反向傳播的時候,的參數會被更新,這樣會導致訓練變得不太穩定,因為假設你把當作你模型的輸出,當作目標的話,你要去擬合的目標是一直在變的,這種一直在變的目標的訓練是不太好訓練的。

???????解決方法是,你會把其中一個 Q 網絡,通常是你會把右邊這個 Q 網絡固定住。

????????也就是說你在訓練的時候,你只更新左邊的 Q 網絡的參數,而右邊的 Q 網絡的參數會被固定住。

????????因為右邊的 Q 網絡負責產生目標,所以叫?目標網絡 target network。
????????因為目標網絡是固定的,所以你現在得到的目標的值也是固定的。

????????因為目標網絡是固定的,我們只調左邊網絡的參數,它就變成是一個回歸問題。

?????????在實現的時候,可以左邊的 Q 網絡更新好幾次以后,再去用更新過的 Q 網絡替換這個目標網絡。

????????但左右兩個Q網絡不要一起動,它們兩個一起動的話,結果會很容易不穩定。

(思路和PPO 有點類似強化學習筆記:PPO 【近端策略優化(Proximal Policy Optimization)】_UQI-LIUWJ的博客-CSDN博客_ppo算法

?3.1 形象的例子詮釋target network

????????我們可以通過貓追老鼠的例子來直觀地理解為什么要 fix target network。貓是?Q estimation,老鼠是?Q target。一開始的話,貓離老鼠很遠,所以我們想讓這個貓追上老鼠。

????????

?????????因為 Q target 也是跟模型參數相關的,所以每次優化后,Q target 也會動。這就導致一個問題,貓和老鼠都在動。

????????

?????????然后它們就會在優化空間里面到處亂動,就會產生非常奇怪的優化軌跡,這就使得訓練過程十分不穩定。

????????

????????所以我們可以固定 Q target,讓老鼠動得不是那么頻繁,可能讓它每 5 步動一次,貓則是每一步都在動。

????????如果老鼠每 5 次動一步的話,貓就有足夠的時間來接近老鼠。然后它們之間的距離會隨著優化過程越來越小,最后它們就可以擬合,擬合過后就可以得到一個最好的Q 網絡。

?4 探索

4.1 遇到的問題

????????當我們使用 Q-function 的時候,policy 完全取決于 Q-function。給定某一個狀態,你就窮舉所有的 a, 看哪個 a 可以讓 Q 值最大,它就是采取的動作?!獀alue based
????????這個跟策略梯度不一樣,在做策略梯度的時候,輸出其實是隨機的。我們輸出一組動作的概率分布,根據這組動作的概率分布去做采樣, 所以在策略梯度里面,你每次采取的動作是不一樣的,是有隨機性的?!猵olicy based

????????強化學習筆記:Policy-based Approach_UQI-LIUWJ的博客-CSDN博客

? ? ? ? 而對于Q-function,如果每次采取的動作總是固定的,會有什么問題呢?

?????????會遇到的問題就是這不是一個好的收集數據的方式。因為計算Q(S,a)的時候,除了第一步強制指定的動作a之外,之后的每一步都只確定性地取決策,喪失了exploration的機制。

4.2?解決方法

????????這個問題其實就是探索-利用窘境(Exploration-Exploitation dilemma)問題。

? ? ? ? 我們使用Epsilon Greedy(ε-greedy) ,和generalized policy iteration with MC?中的一致

總結

以上是生活随笔為你收集整理的DQN 笔记 State-action Value Function(Q-function)的全部內容,希望文章能夠幫你解決所遇到的問題。

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