強化學習一:Introduction Of Reinforcement Learning


 

引言:


最近和實驗室的老師做項目要用到強化學習的有關內容,就開始學習強化學習的相關內容了。也不想讓自己學習的內容荒廢掉,所以想在博客里面記載下來,方便后面復習,也方便和大家交流。

一、強化學習是什么?

  定義

  首先先看一段定義:Reinforcement learning is learning what to do—how to map situations to actions—so as to maximize a numerical reward signal。感覺看英文的定義很容易可以了解什么叫強化學習。

首先,我們思考一下學習本身,當一個嬰兒在玩耍時可能會揮舞雙手,左看右看,沒有人來指導他的行為,但是他和外界直接通過了感官進行連接。感知給他傳遞了外界的各種信息,包括知識等。學習的過程貫穿着我們人類的一生,當我們開車或者說話時,都觀察了環境,並執行一系列動作來影響環境。強化學習描述的是一個與環境交互的學習過程。

那么強化學習是如何描述這一學習過程的呢?以人開車為例,將人和車作為一個整體(agent),外界紅綠燈、車道線等信息構成了環境(environment),然后人通過控制車輛向左、向右轉彎或者直行的動作(action),影響了這個環境的狀態(state),比如說前方有車,向右轉彎后車道前沒有車輛,這就說明車輛的動作影響了環境的狀態。

但是,僅僅有了agent、environment、state和action還不夠,需要有一個獎懲來指導agent的行動,這就是reward,比如車輛闖紅燈會收到罰單。那么說到這里,大家一定很好奇:reward是如何指導強化學習的呢?首先我們要從強化學習的特性說起。

應用領域

  再來看看強化學習在整個科學領域的應用范圍。

 

        從圖中可以看出,眾多學科都與強化學習有關,增強學習本質上是一門決策學科,通過理解最佳的方式來制定決策。決策科學在計算機科學領域,體現為機器學習,尤其是強化學習;在工程領域,最優控制的實現與強化學習有關聯;神經科學領域最主要的是研究人類大腦如何做出決策,提出多巴胺系統(前段時間谷歌開源了一個強化學習的框架就叫多巴胺),在強化學習中的運用體現為獎勵系統;在心理學領域,也存在類似於神經科學領域的東西,傳統的條件作用以及條件反射實驗探究動物面對事物是如何做出反應,以及為什么會做出這種反應;在數學方面,可以用一個等價的公式來表示強化學習,可用於研究最優控制,也被稱為運籌學;在經濟學中,博弈論,效用理論以及有限性理的運用,也都是研究人類如何以及為什么做出決定,並使這些決定的效用最大化。這些都涉及到上述的強化學習的本質。

二、強化學習特性

       強化學習作為機器學習的一種,免不了要被拿來和監督學習以及無監督學習比較。

       首先,監督學習的特點是學習的數據都有標簽(labels),即我們在學習之前就以及告知了模型什么樣的state下采用什么樣的action是正確的,簡單說就是有個專門的老師(或者監督者)告訴算法,什么是對什么是錯,通常用於回歸,分類問題。無監督學習則恰恰相反,其所用於學習是數據沒有label的,而是通過學習無標簽的數據來探索數據的特性,通常用於聚類。

       上文說到,強化學習是與環境實時交互並且會通過動作影響環境的,我們所采用的數據是沒有一個正確的label明確告訴我們哪種action是好哪種是壞。但是我們提到了用一種特殊的獎懲機制來引導action,那就是reward。 reward並不向label一樣,是在學習前就已存在與數據中,而是在當前時刻 t 的狀態 stst 下,執行了相應的動作 atat, 才會在下一時刻(t+1時刻)獲得一個對 t 時刻的reward Rt+1Rt+1,細心的你一定發現了這好像存在延遲,對啦,reward 本來就是一種延遲獎勵的機制,另外,有些action通過對環境state的影響,可以影響到好多步之后的reward, 因此強化學習的目標為最大化reward之和,而不是單步reward。

      說了那么多,現在可以總結一下強化學習的特性啦!強化學習有如下特點:

  • 沒有監督者,只有一系列的reward
  • 反饋不是及時的,而是延時的
  • 算法接受的數據是有時間順序的
  • agent的動作可以對環境產生持續影響

對第三點而言,需要額外解釋一下,在監督學習中,通常假設數據是通過獨立同分布采樣的,即假設所有的樣本數據都是通過在同一個分布下(如高斯分布)獨立采樣獲得,而這一點對於強化學習來說,明顯是不大可能,因為強化學習是一種與環境交互的學習問題,這意味着state和action的時序性是很重要的,他所獲得的一系列state很大程度上是有聯系的,並不是獨立存在的。比如用強化學習下棋的例子中,當前落子位置會影響后面的落子。

三、強化學習問題

強化學習定義的是一類問題,即強化學習問題,用於解決該類問題的方法我們稱之為強化學習方法。第一節中,我們說到強化學習的幾個組成部分:reward、agent、environment、state、action。第二節中,我們明確了強化學習的目的為選擇action用以最大化所有未來的reward(reward之和),下面我們將分別介紹其他幾個部分是如何影響強化學習工作的。

3.1 agent and environment
agent與environment的交互過程如下圖所示,其中大腦表示agent,地球表示environment。

每 t 時刻, agent完成以下過程:

執行action AtAt,影響環境
觀測到觀測量observation OtOt
收到環境反饋的reward RtRt
environment完成以下工作:

接收action AtAt
更新observation Ot+1Ot+1
產生reward RtRt
需要注意agent和environment 之間的界限問題,並不是嚴格的物理界限,比如一個機器人和外界這樣的關系,當我們考慮機器人如何決策時(如決定往哪前進),機器人的決策部分作為一個agent,而他的控制系統則可以看做是environment的一部分。如何界定agent和environment:

The agent-environment boundary represents the limit of the agent’s absolute control, not of its knowledge.

3.2 state
通過觀察上圖,發現state還沒出現,接下來我們討論一下上圖中的observation是如何轉變為我們常用state的。
首先,假設我們執行上述強化學習過程一段時間並將其存儲下來,那么這些信息就構成了歷史數據(history),即由一系列的observation、reward、action組成。

 

那么這些歷史數據可以用來干啥呢?我們有了歷史數據,就可以用於讓agent選擇action,讓environment選擇observation和reward。而根據state的定義,state是用來決定下一步做什么的信息量,那么既然歷史有這樣的作用,可以將state看做是history 的函數:

state可以分為environment state 、agent state 和information state,前兩者顧名思義,environment state為環境的內部狀態,即environment采用哪些信息來選擇下一步的observation和reward(通常對agent不可見,如果可見常常包括冗余信息),agent state 為agent內部狀態,即哪些信息用於選擇下一步的動作,這是強化學習算法直接采用的信息,可以表示為歷史的任意函數Sat=f(Ht)Sta=f(Ht)。

而information state包括了歷史數據中所有有用的信息,當state滿足馬爾科夫條件(見下圖),則下一時刻的狀態完全由當前時刻決定,可以將其他歷史信息扔掉啦! 

定義了這三個state,我們可以將環境分為可完全觀測環境(Fully Observation Environment)和部分可觀測環境(Partially Observation Environment)。
當環境完全可觀測時,有如下特點:

四、agent組成要素

上一節闡述了agent和environment的交互過程,環境主要在於提供reward和observation,那么構建一個agent需要哪些要素呢?
一個強化學習的agent主要包括以下一個或多個要素:
- Policy:agent’s behaviour function
- Value function:how good is each state and/ or action
- Model:agent’s representation of the environment

4.1 policy
策略,簡言之就是agent的行為准則,對應着action和state之間的關系。
- 通常分為確定性策略(deterministic policy):a=π(s)a=π(s) ,即一個action為state的函數。
- 隨機策略(stochastic policy):π(a|s)=P[At=a|St=s]π(a|s)=P[At=a|St=s],對應action相對state的條件概率。

4.2 Value function
強化學習的目標為最大化reward之和,但不是每一個學習過程都有終止狀態,那么reward之和不能簡單計算,所以需要用一個價值函數來估計未來的reward。具體表達說到強化學習的具體表示時再討論。

4.3 模型

根據包不包含Policy 和value function可以將強化學習方法進行分類: 

 根據是否建立了模型,可以將強化學習方法分類: 

五、Exploration and Exploitation

在討論Exploration and Exploitation之前。思考一件事情,假如你要去吃飯了,是選擇你已經知道的餐館中最符合你胃口的(Exploitation),這樣保證你會滿意。還是嘗試一個你從未去過的餐館(Exploration),可能你會有更好的用餐體驗?當然也可能會很糟糕。

強化學習作為一種探索試錯學習,agent需要發現一個好的策略,為了發現這個好的策略,他需要平衡這兩者間的關系:

Exploration:不斷探索新的環境信息,換言之,就是要不斷擴大state的地圖,不斷搜索以前沒遇到的state,並挑戰不同的action
Exploitation: 對已經探索到的環境信息選擇可以獲得最大reward的action。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM