1. 程式人生 > >DQN(Deep Reiforcement Learning) 發展歷程(三)

DQN(Deep Reiforcement Learning) 發展歷程(三)

只需要 便是 cas clas lis force ron 矩陣 .html

目錄

  • 不基於模型(Model-free)的預測
    • 蒙特卡羅方法
    • 時序差分方法
    • 多步的時序差分方法
  • 參考

DQN發展歷程(一)

DQN發展歷程(二)

DQN發展歷程(三)

DQN發展歷程(四)

DQN發展歷程(五)

不基於模型(Model-free)的預測

  • 無法事先了解狀態轉移的概率矩陣

蒙特卡羅方法

  • 從開始狀態開始,到終結狀態,找到一條完整的狀態序列,以求解每個狀態的值。相比於在整個的狀態空間搜索,是一種采樣的方法。

  • 對於某一狀態在同一狀態序列中重復出現
    的,有以下兩種方法:
    • 只選擇第一個狀態進行求解,忽略之後的所有相同狀態
    • 考慮所有的狀態,求平均值
  • 對於求解每個狀態的值,使用平均值代表狀態值,根據大數定理,狀態數足夠多的條件下,該平均值等於狀態值。平均值求解有兩種方法:
    • 存儲所有狀態後求平均:消耗大量存儲空間
    • 每次叠代狀態都更新當前平均值:

時序差分方法

  • 蒙特卡羅方法需要獲得從開始到終結的一條完整的狀態序列,以求解每個狀態的值,時序差分方法則不需要。根據貝爾曼不等式,只需要從當前狀態到下一狀態求解。
  • 時序差分方法每步都更新狀態值,而蒙特卡羅方法需要等到所有狀態結束才更新。
  • 蒙特卡羅方法使用最後的目標來求解狀態值,而時序差分使用下一狀態的估計在每一步調整狀態值。
  • 蒙特卡羅方法是無偏估計方差較大,時序差分則是有篇估計但估計方差小。

多步的時序差分方法

  • 時序差分方法使用當前狀態值和下一狀態值更新當前狀態值,如果使用當前狀態值和之後多步的狀態值更新當前狀態值,就是多步的時序差分方法。
  • 當步數到最後的終結狀態時,便是蒙特卡羅方法。
  • 當步數到下一狀態時,便是時序差分方法。
  • 多步的時序差分方法,分為前向和後向的時序差分方法。

參考

david siver 課程

https://home.cnblogs.com/u/pinard/

DQN(Deep Reiforcement Learning) 發展歷程(三)