1. 程式人生 > >強化學習筆記二 MDP & DP

強化學習筆記二 MDP & DP

本篇筆記將會介紹強化學習的基本概念,馬爾可夫決策過程MDP,Bellman方程和動態規劃求解MDP問題。

基本概念

history and state
history 是一系列觀察,行動和獎勵的集合。state是history的函式,包含當前狀態的資訊,並用於決定下一時刻的行動。

policy
π ( a s

) {\pi(a|s)} 代表在狀態s下采取行動的策略,換言之就是採取行動a的概率。policy可以是deterministic或stochastic的。

reward & return
reward是實時獲得的,取決於當前的行動或者說是下一步的狀態。return是一段時間內reward的總和, G t

= R t + 1 + γ R
t + 2
+ . . . = k = 0 γ k R t + k + 1 {G_t = R_{t+1} + \gamma R_{t+2} + ... = \sum\limits _{k=0}^{\infty} \gamma^k R_{t+k+1}}

value function
用於衡量agent在當前狀態好壞程度的函式。
對於MDP,某一個狀態的價值函式是 v π ( s ) = E π [ G t s t ] {v_{\pi}(s) = E_{\pi}[G_t|s_t]} ,在當前狀態某一個行動的價值函式是 q π ( s , a ) = E π [ G t s t , a t ] {q_{\pi}(s,a) = E_{\pi}[G_t|s_t,a_t]}

policy

策略指在某個狀態採取行動a的概率,即 π ( a s ) = P [ A t = a S t = s ] {\pi(a|s) = P[A_t = a| S_t =s]}

optimal policy

最優策略指價值函式最大。
對於任意MDP,均存在最優策略。所有最優決策都達到最優值函式和最優行動值函式。

MRP

Markov reward process是一個帶獎勵的馬爾科夫過程,表示為 < S , P , R , γ > {<S, P, R, \gamma>} ,其中S是狀態,P是狀態轉移矩陣,R是獎勵 R s = E [ R t + 1 S t = s ] {R_s = E[R_{t+1}|S_t=s]} γ {\gamma} 是折扣率。

γ {\gamma} 使得一個無限求和的問題轉化為了一個有限求和問題:
G t = k = 0 γ k R t + k + 1 R m a x 1 γ G_t = \sum\limits_{k = 0}^{\infty} \gamma^k R_{t+k+1} \leq \frac{R_{max}}{1-\gamma}
γ {\gamma} 較大時,far-sighted;當 γ {\gamma} 較大時,myopic。

MDP

MDP是一個智慧體通過採取行動,改變自己的狀態,與環境互動並獲得獎勵的迴圈過程,其策略完全取決於當前狀態。MDP可以認為是一個帶決策的MRP,表示為 < S , P , A , R , γ > {<S, P, A, R, \gamma>} ,其中A是行動。

基本上所有的RL問題都可以視為MDP。

MDP還有不少變種,比如說POMDP(Partially Observable MDP),例如自動駕駛汽車我們不知道在遇到某種情況,像撞車,對方採取行動的策略,這種有部分資訊未知的情況即屬於POMDP。

Bellman function

對於MRP,根據定義有
v ( s ) = E [ G t s t ] = E [ R t + 1 + γ G t + 1 s t ] = E [ R t + 1 + γ v ( s + 1 ) s t ] {v(s) = E[G_t|s_t]= E[R_{t+1}+\gamma G_{t+1}|s_t] = E[R_{t+1}+\gamma v(s+1)|s_t] }

v ( s ) = R s + γ s P s s v ( s ) {v(s) = R_s + \gamma \sum\limits_{s'} P_{ss'} v(s')}
這個就是Bellman方程,改寫為矩陣形式:

v = R + γ P v {v = R + \gamma Pv}

可以看出來這是個線性方程,可以直接求解v:
v = ( 1 γ P ) 1 v v = (1- \gamma P)^{-1}v

時間複雜度為 O ( n 3 ) O(n^3) ,只適用於狀態數較少的情況。對於更復雜的情況,一般用dynamic programming,Monte-Carlo evaluation或Temporal-Difference learning。

對於MDP,Bellman equation為
v π ( s ) = a π ( a s ) ( R s a + γ s P s s a v π ( s ) ) q π ( s , a ) = R s a + γ s P s s a a π ( a s ) q π ( s , a ) v_{\pi}(s) = \sum\limits_{a} \pi(a|s) (R_s^a + \gamma \sum\limits_{s'} P_{ss'}^a v_{\pi}(s')) \\ q_{\pi}(s,a) = R_s^a + \gamma \sum\limits_{s'} P_{ss'}^a \sum\limits_{a'} \pi(a'|s') q_{\pi}(s',a')

相關推薦

強化學習筆記 MDP & DP

本篇筆記將會介紹強化學習的基本概念,馬爾可夫決策過程MDP,Bellman方程和動態規劃求解MDP問題。 基本概念 history and state history 是一系列觀察,行動和獎勵的集合。state是history的函式,包含當前狀態的資訊,並用於決定下一時刻的行動。

強化學習筆記1——MDP

概率 style 技術分享 目標 可能 描述 映射 價值 因子 強化學習概述 深度學習如圖像識別和語音識別解決的是感知問題,而強化學習相當於大腦,解決的是智能決策問題或者說序貫決策問題,就是隨著環境的變化連續不斷的作出決策,實現最終的目標。 強化學習最初應用在倒立擺問題上,

強化學習筆記DP, MC, TD小結

前兩篇介紹了三種RL方法,DP,MC和TD,本篇進行一個總結和對比。 Backup 先來看看backup的區別: DP MC TD Bootstrapping & sampling Bootstrapping指更新中包含估計值,sampling指是否用期望還是取

強化學習筆記三 Monte Carlo Method & Temporal-Difference Method

之前筆記二中介紹了求解MDP的model based方法,本篇筆記介紹兩種model-free方法,Monte Carlo(MC) 和 Temporal-Difference(TD)。 model-free methods 先說說model free的好處,前面我們用DP求解需要知道

SpringMVC學習筆記:常用註解

title c學習 請求 pin 學習 lin att 詳解 stp 轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html 一、用於定義類的註解:@Controller @Controller 用於標記在一個類上,

【JAVAWEB學習筆記】12_Http&Tomcat

請求重定向 san res tor tomcat啟動 zha rac pac b- 一、Http協議 1.什麽是Http協議 HTTP,超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最為廣泛的 一種網絡協議。所有的WWW文

【JAVAWEB學習筆記】16_session&cookie

發送 學習筆記 獲得 tab esp http 應用 區分 pac 會話技術Cookie&Session 學習目標 案例一、記錄用戶的上次訪問時間---cookie 案例二、實現驗證碼的校驗----session 一、會話技術簡介 1.存儲客

Scala學習筆記()(for循環相關)

spa nts multiple bool val turn 優化 n) 例子 Scala裏if...else語句 if語句不管是在哪種語言裏是使用最多的語句了. scala的if語句與java如出一轍. 舉個栗子就不再贅述: 一個 if 語句的語法: if(Boolean

ES6學習筆記()——字符串擴展

兩個 -m 開始 部分 學習筆記 erro xxx ocs 個數 相信很多人也和我一樣,不喜歡這樣循規蹈矩的逐條去學習語法,很枯燥乏味。主要是這樣學完一遍之後,沒過一段時間就忘到九霄雲外了。不如實際用到的時候研究它記得牢靠,所以我就整理成筆記,加深記憶的同時便於復習查看。

MySQL學習筆記(

發送 int 賦值 數據庫基礎知識 font 字符 需要 con spa -- 回顧 數據庫基礎知識: 關系型數據庫(磁盤),建立在關系模型上的數據庫,數據結構(二維表),浪費空間。 操作數據的指令集合:SQL(DDL,DML[DQL]和DCL) 完整性約束:表內和表之間(

Android第一行代碼學習筆記---在活動中使用Toast

一行代碼 就會 onclick log sta contex instance and undle Toast:是Android系統提供的一種非常好的提醒方式,在程序中可以使用它將一些短小的信息通知給用戶,這些信息會在一段時間後自動消失,並且不會占用任何屏幕空間。 首先需要

framework7學習筆記:基礎知識

部分 cnblogs query 基礎 logs code 自己 $$ pan 一:DOM7 framework7有自己的 DOM7 - 一個集成了大部分常用DOM操作的高性能庫。它的用法和jQuery幾乎是一樣的,包括大部分常用的方法和jquery風格的鏈式調用。 在開發

node.js學習筆記之版本問題

nodejs targe tle 下一個 .cn blank 網站 mage 功能 一、版本說明 進入node.js官網https://nodejs.org/en/download/ 點擊上面的【All download options】進入到所有下載列表的地址 下載地

Java基礎學習筆記 網絡編程

數據丟失 交互圖 主動 總結 交互 servers -- 處理 關閉 絡通信協議 通過計算機網絡可以使多臺計算機實現連接,位於同一個網絡中的計算機在進行連接和通信時需要遵守一定的規則,這就好比在道路中行駛的汽車一定要遵守交通規則一樣。在計算機網絡中,這些連接和通信的規則被

Java基礎學習筆記十三 Java核心語法之反射

負責 目錄 boolean tostring 筆記 str 編譯 三種 進制 類加載器 類的加載 當程序要使用某個類時,如果該類還未被加載到內存中,則系統會通過加載,鏈接,初始化三步來實現對這個類進行初始化。 加載就是指將class文件讀入內存,並為之創建一個Clas

Java基礎學習筆記十四 MySQL安裝圖解

password data 默認 count 重新 doc documents tran xp系統 、MYSQL的安裝 1、打開下載的mysql安裝文件mysql-5.5.27-win32.zip,雙擊解壓縮,運行“setup.exe”。

Java基礎學習筆記十七 DBUtils和連接池

ride 基本 代碼塊 ear 不同 一行 ria 靜態方法 ... DBUtils 如果只使用JDBC進行開發,我們會發現冗余代碼過多,為了簡化JDBC開發,本案例我們講采用apache commons組件一個成員:DBUtils。DBUtils就是JDBC的簡化開發工

JavaWeb學習筆記四 request&response

cer 代碼 gbk msi 抓包工具 rom service net war HttpServletResponse 我們在創建Servlet時會覆蓋service()方法,或doGet()/doPost(),這些方法都有兩個參數,一個為代表請求的request和代表響

函數響應式編程及ReactiveObjC學習筆記 ()

per 舉例 def nsobject uibutton 為我 string method 寫法 之前我們初步認識了RAC的設計思路跟實現方式, 現在我們再來看看如果使用它以及它能幫我們做什麽 One of the major advantages of RAC is

html學習筆記

清空表 多行文本 按鈕 nbsp sel 沒有效果 提交表單 tip 效果 常用標簽學習: <img/>(單標簽) 圖片標簽 使用效果:在網頁中插入一張圖片,可設置alt屬性,在沒有加載到圖片的時候顯示提示文字(插入圖片有絕對路徑和相對路徑)。 <form