強化學習簡介

強化學習簡介

強化學習(Reinforcement Learning,RL)是機器學習中的一個領域,是學習作什麼(即如何把當前的情景映射成動做)才能使得數值化的收益最大化,學習者不會被告知應該採起什麼動做,而是必須本身經過嘗試去發現哪些動做會產生最豐厚的收益html

強化學習同機器學習領域中的有監督學習無監督學習不一樣,有監督學習是從外部監督者提供的帶標註訓練集中進行學習(任務驅動型),無監督學習是一個典型的尋找未標註數據中隱含結構的過程(數據驅動型)算法

強化學習是與二者並列的第三種機器學習範式,強化學習帶來了一個獨有的挑戰——探索利用之間的折中權衡,智能體必須利用已有的經驗來獲取收益,同時也要進行探索,使得將來能夠得到更好的動做選擇空間(即從錯誤中學習)機器學習

img

核心概念

強化學習的主要角色是 智能體環境,環境是智能體存在和互動的世界。智能體在每一步的交互中,都會得到對於所處環境狀態的觀察(有可能只是一部分),而後決定下一步要執行的動做。環境會由於智能體對它的動做而改變,也可能本身改變。函數

智能體也會從環境中感知到 獎勵 信號,一個代表當前狀態好壞的數字。智能體的目標是最大化累計獎勵,也就是回報。強化學習就是智能體經過學習來完成目標的方法。
在這裏插入圖片描述學習

馬爾可夫決策過程(MDP)

MDP 簡單說就是一個智能體(Agent)採起行動(Action)從而改變本身的狀態(State)得到獎勵(Reward)與環境(Environment)發生交互的循環過程,MDP 的策略徹底取決於當前狀態(Only present matters),這也是它馬爾可夫性質的體現

強化學習任務一般用馬爾可夫決策過程 (Markov Decision Process, MDP)來描述,即優化

機器處於環境 $E$ 中, 狀態空間爲 $X,$ 其中每一個狀態 $x \in X$ 是機器感知到的環境的描述spa

機器能採起的動做構成了動做空間 $A$ ; 若某個動做 $a \in A$ 做用在當前狀態 $x$ 上, 則潛在的轉移函數 $P$ 將使得環境從當前狀態按某種機率轉移到另外一個狀態; 在轉移到另外一個狀態的同時, 環境會根據潛在的「獎賞」 (reward)函數 $R$ 反饋給機器一個獎賞.net

綜合起來, 強化學習任務對應了四元組 $E=\langle X, A, P, R\rangle,$ 其中 $P: X \times A \times X \mapsto \mathbb{R}$ 指定了狀態轉移機率, $R: X \times A \times X \mapsto \mathbb{R}$ 指定了獎賞; 在有的應用中, 獎賞函數可能僅與狀態轉移有關, 即 $R: X \times X \mapsto \mathbb{R} .$htm

策略

機器要作的是經過在環境中不斷地嘗試而學得一個「策略」 (policy) $\pi,$ 根據這個策略, 在狀態 $x$ 下就能得知要執行的動做 $a=\pi(x)$ blog

策略有兩種表示方法:

一種是將策略表示爲函數 $\pi: X \mapsto A,$ 肯定性策略經常使用這種表示

另外一種是機率表示 $\pi: X \times A \mapsto \mathbb{R},$ 隨機性策略經常使用這種表示

$\pi(x, a)$ 爲狀態 $x$ 下選擇動做 $a$ 的機率, 這裏必須有 $\sum_{a} \pi(x, a)=1$

肯定性策略

肯定性策略,在相同的狀態下,其輸出的動做是肯定的

優缺點

  • 可以利用肯定性梯度優化策略,因此不須要太多的採樣數據,計算效率也很快
  • 因爲每次面對同一狀態其輸出的動做是惟一的,沒法討論一些其它動做的效果,不具備自學習的能力

隨機性策略

對於隨機策略,對於相同的狀態,其輸出的狀態並不惟一,而是知足必定的機率分佈,從而致使即便是處在相同的狀態,也可能輸出不一樣的動做

優缺點

  • 隨機策略將探索和改進集成到一個策略中
  • 須要採樣的數據量較大,學習比較慢

獎勵

強化學習中,獎勵函數$R$很是重要,它由當前狀態、已經執行的行動和下一步的狀態共同決定

$$ r_{t}=R\left(s_{t}, a_{t}, s_{t+1}\right) $$

長期累積獎勵有多種計算方式

其中$T$步累計獎賞,指的是在一個固定窗口步數$T$內得到的累計獎勵
$$R(\tau)=\sum_{t=0}^{T} r_{t}$$

另外一種叫作$\gamma$折扣獎勵,指的是智能體得到的所有獎勵之和,可是獎勵會由於得到的時間不一樣而衰減。這個公式包含衰減率$\gamma \in(0,1)$:

$$ R(\tau)=\sum_{t=0}^{\infty} \gamma^{t} r_{t} $$

這裏爲何要加上一個衰減率呢?爲何不直接把全部的獎勵加在一塊兒?能夠從兩個角度來解釋: 直觀上講,如今的獎勵比外來的獎勵要好,因此將來的獎勵會衰減;數學角度上,無限多個獎勵的和極可能 不收斂,有了衰減率和適當的約束條件,數值纔會收斂

探索與利用

所謂探索:是指作你之前歷來沒有作過的事情,以指望得到更高的回報

所謂利用:是指作你當前知道的能產生最大回報的事情

多臂賭博機問題

單步強化學習任務對應了一個理論模型, 即「 $K$ -搖臂賭博機」 , $K$ -搖臂賭博機有 $K$ 個搖臂, 賭徒在投入一個硬幣後可選擇按下其中一個搖臂, 每一個搖臂以必定的機率吐出硬幣, 但這個機率賭徒並不知道。賭徒的目標是經過必定的策略最大化本身的獎賞, 即得到最多的硬幣

僅探索(exploration only): 將全部的嘗試機會平均分配給每一個搖臂(即輪流按下每一個搖臂),最後以每一個搖臂各自的平均吐幣機率做爲其獎賞指望的近似估計

僅利用(exploitation-only): 按下目前最優的(即到目前爲止平均獎賞最大的)的搖臂,如有多個搖臂同爲最優, 則從中隨機選取一個.
在這裏插入圖片描述

顯然,「僅探索」法能很好地估計每一個搖臂的獎賞, 卻會失去不少選擇最優搖臂的機會;「僅利用」法則相反, 它沒有很好地估計搖臂指望獎賞, 極可能常常 選不到最優搖臂. 所以, 這兩種方法都難以使最終的累積獎賞最大化.
事實上,探索和利用這二者是矛盾的, 由於嘗試次數(即總投幣數)有限, 增強了一方則會天然削弱另外一方, 這就是強化學習所面臨的「探索-利用困境」 (Exploration Exploitation dilemma)

顯然, 欲累積獎賞最大, 則必須在探索與利用之間達成較好的折中

$\epsilon$ -貪心法

$\epsilon$ -貪心法基於一個機率來對探索和利用進行折中: 每次嘗試時, 以 $\epsilon$ 的機率進行探索, 即以均勻機率隨機選取一個搖臂; 以 $1-\epsilon$ 的機率進行利用, 即選擇當前平均獎賞最高的搖臂(如有多個, 則隨機選取一個)

Softmax

Softmax 算法基於當前已知的搖臂平均獎賞來對探索和利用進行折中

若各搖臂的平均獎賞至關, 則選取各搖臂的機率也至關; 若某些搖臂的平均獎賞明顯高於其餘搖臂, 則它們被選取的機率也明顯更高.

強化學習的分類

在這裏插入圖片描述

有模型學習

考慮多步強化學習任務, 暫且先假定任務對應的馬爾可夫決策過程四元組 $E=\langle X, A, P, R\rangle$ 均爲已知, 這樣的情形稱爲「模型已知」,即機器已對環境進行了建模, 能在機器內部模擬出與環境相同或近似的情況。在已知模型的環境中學習稱爲「有模型學習」 (model-based learning)

此時, 對於任意狀態 $x, x^{\prime}$ 和動做 $a,$ 在 $x$ 狀態下執行動做 $a$ 轉移到 $x^{\prime}$ 狀態的機率 $P_{x \rightarrow x^{\prime}}^{a}$ 是已知的, 該轉移所帶來的獎賞 $R_{x \rightarrow x^{\prime}}^{a}$ 也是已知的

優缺點

有模型學習最大的優點在於智能體可以 提早考慮來進行規劃,走到每一步的時候,都提早嘗試將來可能的選擇,而後明確地從這些候選項中進行選擇

最大的缺點就是智能體每每不能得到環境的真實模型。若是智能體想在一個場景下使用模型,那它必須徹底從經驗中學習,這會帶來不少挑戰。最大的挑戰就是,智能體探索出來的模型和真實模型之間存在偏差,而這種偏差會致使智能體在學習到的模型中表現很好,但在真實的環境中表現得很差(甚至不好)

免模型學習

在現實的強化學習任務中, 環境的轉移機率、獎賞函數每每很可貴知, 甚至很難知道環境中一共有多少狀態

若學習算法不依賴於環境建模,則稱爲免模型學習(model-free learning),這比有模型學習困難的多

參考

相關文章
相關標籤/搜索