強化學習

機器學習可以分爲三類,分別是 supervised learningunsupervised learning reinforcement learning。而強化學習與其他機器學習不同之處爲:

  1. 沒有教師信號,也沒有label。只有reward,其實reward就相當於label
  2. 反饋有延時,不是能立即返回。
  3. 相當於輸入數據是序列數據。
  4. agent執行的動作會影響之後的數據。

強化學習的關鍵要素有:environmentrewardaction state。有了這些要素我們就能建立一個強化學習模型。強化學習解決的問題是,針對一個具體問題得到一個最優的policy,使得在該策略下獲得的reward最大。所謂的policy其實就是一系列action。也就是sequential data 
強化學習可用下圖來刻畫,都是要先從要完成的任務提取一個環境,從中抽象出狀態(state) 、動作(action)、以及執行該動作所接受的瞬時獎賞(reward) 

 

reward

reward通常都被記作RtRt,表示第ttime step的返回獎賞值。所有強化學習都是基於reward假設的。reward是一個scalar

action

action是來自於動作空間,agent對每次所處的state用以及上一狀態的reward確定當前要執行什麼action。執行action要達到最大化期望reward,直到最終算法收斂,所得的policy就是一系列actionsequential data

state

就是指當前agent所處的狀態。

 

policy

policy就是隻agent的行爲,是從stateaction的映射,分爲確定策略和與隨機策略,確定策略就是某一狀態下的確定動作a=π(s), 隨機策略以概率來描述,即某一狀態下執行這一動作的概率:π(a|s)=P[At=a|St=s]

value function

因爲強化學習今本上可以總結爲通過最大化reward來得到一個最優策略。但是如果只是瞬時reward最大會導致每次都只會從動作空間選擇reward最大的那個動作,這樣就變成了最簡單的貪心策略(Greedy policy),所以爲了很好地刻畫是包括未來的當前reward值最大(即使從當前時刻開始一直到狀態達到目標的總reward最大)。因此就夠早了值函數(value function)來描述這一變量。表達式如下: 

γ是折扣係數(取值在[0,1]),就是爲了減少未來的reward對當前動作的影響。然後就通過選取合適的policy使value function最大,稍後會爲大家推導著名的bellman方程,bellman方程纔是強化學習各大算法(e.g. 值迭代,策略迭代,Q-learning)的源頭。

model

model就是用來預測環境接下來會幹什麼,即在這一狀態的情況下執行某一動作會達到什麼樣的狀態,這一個動作會得到什麼reward。所以描述一個模型就是用動作轉移概率與動作狀態reward。具體公式如下: 

馬爾可夫決策過程(MDP)

大家應該都很熟悉馬爾科夫過程,其實就是狀態以及某狀態的轉移,最重要的就是一步轉移概率矩陣,只要有了這個一步轉移概率矩陣就能刻畫整個馬爾科夫過程。 


下面就來介紹一下馬爾可夫決策過程(MDP)它主要由以下幾個變量來刻畫,狀態空間S(是一個有限集合),動作空間A(一個有限動作集合),狀態轉移概率矩陣P,獎賞函數RR以及折扣因子γγ[0,1] 
下面介紹一個MDP常用的用來刻畫獎賞的函數。 


1.return Gt
t時刻之後未來執行一組action後能夠獲得的reward,即t+1t+2…所有時刻的reward之和。(未來時刻的reward在當前時刻體現),後面的reward要乘以discountγγ 係數。表達式如下


2.狀態值函數v(s)v
定義爲t時刻狀態S能獲得的return的期望,表達式如下
 
3.動作值函數qπ(s,a)
t時刻狀態S下選擇特定action後能獲得的return的期望,表達式如下
 

 

下面來講解一下最著名的bellman方程的推導,首先推導如何迭代值函數,即更新值函數: 
1.value function 

v(s)=E[Gt|St=s]=E[Rt+1+γ(Rt+2+γRt+3+...)|St=s]

=E[Rt+1|St=s]+γE[Gt+1|St=s]

=ERs+γGt+1P[Gt+1|St=s]

=ERs+γGt+1sP[Gt+1|St+1=s,St=s]P[St+1=s|St=s]

=ERs+γsSv(s)Pss
 

2.Q-value function 

v(s)=E[Gt|St=s]=aAP[At=a|St=s]E[Gt|St=s,At=a]

=π(a|s)qπ(s,a)

qπ(s,a)=Ras+γE[Gt+1|St=s,At=a]

=Ras+γsSE[Gt+1|St+1=s,St=s,At=a]P[St+1=s|St=s,At=a]

=Ras+γsSPassE[Gt+1|St+1=s]

=Ras+γsSPassvπ(s)


 


 

12的推導就可以得到著名的bellman方程,強化學習的算法迭代都是基於此方程的。如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章