DQN從入門到放棄學習總結(2)

2021-08-06 04:50:34 字數 1391 閱讀 6827

每個狀態對應多種動作,我們考率在某個狀態下執行不同動作所獲得的價值,通過其大小,便可選擇價值最大的來執行。action-value function:

動作-價值函式表示如下:

此處包含策略,即在策略下的動作價值。因為對於每乙個動作,都需要由策略根據當前的狀態生成。但價值函式不一定依賴於策略。

但因為動作價值函式更直觀,更方便用於演算法,所以更多的使用的是動作價值函式。

因為所以

通過迭代計算value function 使policy收斂到最優

策略迭代的本質是使用bellman方程得到的:

策略迭代分為兩步:

1、策略評估。目的:更新value-function (更好地估計基於當前策略的價值)

2、策略改進。使用貪婪策略產生新的樣本用於第一步的策略評估

具體演算法:

policy-evaluation 中,需要知道轉移概率,即依賴模型。且迭代中需要限制迭代次數。不論策略迭代還是值迭代,都是「上帝」視角推導出來的,本質上不能直接應用,因為是依賴模型的。

價值迭代是通過bellman最優方程得到的:

變為迭代形式:

演算法如下:

policy iteration使用 bellman方程 來更新value,最後收斂的value 即

value iteration使用 bellman 最優方程 來更新value,最後收斂得到的value即

從上面的分析看,value iteration較之policy iteration更直接。不過問題也都是一樣,需要知道狀態轉移函式p才能計算。本質上依賴於模型,而且理想條件下需要遍歷所有的狀態,這在稍微複雜一點的問題上就基本不可能了。

上面引用的是價值函式的版本,那麼如果是使用動作價值函式呢,公式基本是一樣的:

每次根據新得到的reward和原來的q值來更新現在的q值。理論上可以證明這樣的value iteration能夠使q值收斂到最優的action-value function。

《WEB安全從入門到放棄》學習筆記2

一 information schema資料庫 中含有多個表,重點以下兩個 1.tables表 用於儲存table schema,將整個資料庫的所有例項的表的相關資訊都放在這裡 把錶對應的相應資料庫的名稱,表的型別,預設額引擎,版本等資訊儲存在tables表裡 2.columns表 用於儲存相關的列...

Flask從入門到 「放棄」 2

tips 不能跨瀏覽器 cookie是伺服器通過response進行操作 先建立response物件 flask對cookie內容作了編碼,支援中文 login cookie需要通過response resp response response welcome s username resp.set...

樹形dp總結 從入門到放棄

一 如何擁有一棵樹how to build a tree 存樹的方法有很多種,我個人常用的有 鏈式前向星存圖法 因為樹也是一種圖,所以說對於存圖法是適用的。缺點就是不好利用樹的性質。因為比較普遍,教程也很多,就不再贅述了。左兒子右兄弟法 1 struct node 結構體存樹 2a n 這個好像叫t...