RL

RL

Agent->Env: Action a
Env-->Agent: State x
Env-->Agent: Reward r

強(qiáng)化學(xué)習(xí)任務(wù)通常用馬爾科夫決策過程(Markov Decision Process,簡稱 MDP)來描述:

機(jī)器處于環(huán)境$E$中,狀態(tài)空間為$X$,其中每個狀態(tài)$x \in X$是機(jī)器感知到的環(huán)境的描述,機(jī)器能采取的動作構(gòu)成了動作空間$A$,若某個動作$a\in A$作用在當(dāng)前狀態(tài)$x$上,則潛在的轉(zhuǎn)移函數(shù)$P$將使得環(huán)境從當(dāng)前狀態(tài)按某種概率轉(zhuǎn)移到一另個狀態(tài),在轉(zhuǎn)移到另一個狀態(tài)的同時,環(huán)境會根據(jù)潛在的獎賞(reward)函數(shù)$R$反饋給機(jī)器一個獎賞。綜合起來,強(qiáng)化學(xué)習(xí)任務(wù)對應(yīng)了四元組$E=<X,A,P,R>$,其中$P:X\times A\times X \mapsto \mathbb{R}$指定了狀態(tài)轉(zhuǎn)移概率,$R:X \times A \times X \mapsto \mathbb{R}$指定了獎賞,在有的應(yīng)用中,獎賞函數(shù)可能僅與狀態(tài)轉(zhuǎn)移有關(guān),即$R: X \times X \mapsto \mathbb{R}$.

在環(huán)境中狀態(tài)的轉(zhuǎn)移,獎賞的返回是不受機(jī)器控制的,機(jī)器只能通過選擇要執(zhí)行的動作來影響環(huán)境,也只能通過觀察轉(zhuǎn)移后的狀態(tài)和返回的獎賞來感知環(huán)境。
策略(policy)$\pi$的定義,根據(jù)這個策略,在狀態(tài)$x$下就能得知要執(zhí)行的動作$a=\pi(x)$,確定性動作表示為$\pi:X \mapsto A$,隨機(jī)性動作表示為$\pi:X\times A \mapsto \mathbb{R}$,$\pi(x,a)$為狀態(tài)$x$下選擇動作$a$的概率,則有$\sum_a\pi(x,a)=1$

累計獎賞####

T步累積獎賞$E(\frac{1}{T}\sum_{t=1}^Tr_t)$
$\gamma$折扣累積獎賞$E(\sum_{t=0}{+\infty}\gammatr_{t+1})$

$K$-搖臂賭博機(jī)

$K$-要比賭博機(jī)有$K$個搖臂,賭徒在投入一個硬幣后可選擇按下其中一個要比,每個要比以一定的概率突出硬幣,但這個概率賭徒并不知道,賭徒的目標(biāo)是通過一定的策略最大化自己的獎賞,即獲得醉倒的硬幣
exploration-only:很好的估計每個要比的獎賞,失去選擇最優(yōu)搖臂的機(jī)會
exploitation-only:沒有很好估計搖臂期望獎賞,很可能選不到最優(yōu)的搖臂
因?yàn)閲L試次數(shù)有限,加強(qiáng)了一方則會削弱另一方,面臨“探索-利用窘境”(Exploration-Exploitation dilemma)

$\epsilon$-貪心####

每次嘗試時,以$\epsilon$的概率進(jìn)行探索,即以均勻概率隨機(jī)選取一個搖臂,以$1-\epsilon$的概率進(jìn)行利用,集選擇當(dāng)前平均獎賞最高的搖臂(若有多個,則隨機(jī)選取一個)

class EpsilonGreedyPolicy(Policy):
    """
    The Epsilon-Greedy policy will choose a random action with probability
    epsilon and take the best apparent approach with probability 1-epsilon. If
    multiple actions are tied for best choice, then a random action from that
    subset is selected.
    """
    def __init__(self, epsilon):
        self.epsilon = epsilon

    def __str__(self):
        return '\u03B5-greedy (\u03B5={})'.format(self.epsilon)

    def choose(self, agent):
        if np.random.random() < self.epsilon:
            return np.random.choice(len(agent.value_estimates))
        else:
            action = np.argmax(agent.value_estimates)
            check = np.where(agent.value_estimates == action)[0]
            if len(check) == 0:
                return action
            else:
                return np.random.choice(check)

Softmax####

搖臂的概率的分配是基于Boltzmann分布
$$P(k)=\frac{e\frac{Q(k)}{\tau}}{\sum_{i=1}{K}e^\frac{Q(i)}{\tau}}$$
其中,Q(i)記錄當(dāng)前搖臂的平均獎賞;$\tau>0$成為“溫度”,$\tau$越小則平均獎賞高的搖臂被選取的概率越高。$\tau \rightarrow 0$則Softmax趨于“僅利用”,$\tau \rightarrow \infty$則Softmax趨于“僅探索”

class SoftmaxPolicy(Policy):
    """
    The Softmax policy converts the estimated arm rewards into probabilities
    then randomly samples from the resultant distribution. This policy is
    primarily employed by the Gradient Agent for learning relative preferences.
    """
    def __str__(self):
        return 'SM'

    def choose(self, agent):
        a = agent.value_estimates
        pi = np.exp(a) / np.sum(np.exp(a))
        """
        >>> a = np.array([[1,2,3], [4,5,6]])
        >>> np.cumsum(a)
        array([ 1,  3,  6, 10, 15, 21])
        """
        cdf = np.cumsum(pi)
        s = np.random.random()
        return np.where(s < cdf)[0][0]
def choose(self):
        action = self.policy.choose(self)
        self.last_action = action
        return action

def observe(self, reward):
    self.action_attempts[self.last_action] += 1

    if self.gamma is None:
        g = 1 / self.action_attempts[self.last_action]
    else:
        g = self.gamma
    q = self._value_estimates[self.last_action]

    self._value_estimates[self.last_action] += g*(reward - q)
    self.t += 1

對于離散狀態(tài)空間,離散動作空間上的多不講話學(xué)習(xí)人物,一種直接的辦法是將每個狀態(tài)上動作的選擇看做一個$K$-搖臂賭博機(jī)問題,用強(qiáng)化學(xué)習(xí)任務(wù)的累計獎賞來代替$K$-搖臂賭博機(jī)算法中的獎賞函數(shù),即可將賭博計算法用于每個狀態(tài)

有模型學(xué)習(xí)###

$$E=<X,A,P,R>$$
機(jī)器已對模型進(jìn)行了建模,能在機(jī)器內(nèi)部模擬出與環(huán)境相同活近似的狀況,對于任意狀態(tài)$x,x'$和動作$a$,在$x$狀態(tài)下執(zhí)行動作$a$轉(zhuǎn)移到$x'$狀態(tài)的概率$P_{x \rightarrow x'}^a$是已知的,改轉(zhuǎn)移所帶來的獎賞$R_{x \rightarrow x'}^a$也是已知的
$V^\pi(x)$表示從$x$出發(fā),使用策略$\pi$所帶來的累積獎賞."狀態(tài)值函數(shù)"(state value function)
$Q^\pi(x,a)$表示從$x$出發(fā),執(zhí)行動作$a$后再使用策略$\pi$帶來的累積獎賞."狀態(tài)-動作值函數(shù)"(state-action value function)
$$\left{\begin{array}{ll}V_T\pi(x)=E_\pi[\frac{1}{T}\sum_{t=1}Tr_t|x_0=x], & \text{T步累積獎賞}\
V_\gamma\pi(x)=E_\pi[\sum_{t=0}{+\infty}\gamma^tr_{t+1}|x_0=x], & \gamma\text{折扣累計獎賞}
\end{array}
\right.$$
$$\left{\begin{array}{ll}Q_T\pi(x,a)=E_\pi[\frac{1}{T}\sum_{t=1}Tr_t|x_0=x,a_0=a], & \text{T步累積獎賞}\
Q_\gamma\pi(x,a)=E_\pi[\sum_{t=0}{+\infty}\gamma^tr_{t+1}|x_0=x,a_0=a], & \gamma\text{折扣累計獎賞}
\end{array}
\right.$$
Bellman等式
$$
\begin{align}
V_T\pi(x)&=E_\pi[\frac{1}{T}\sum_{t=1}Tr_t|x_0=x]\
&=E_\pi[\frac{1}{T}r_1+\frac{T-1}{T}\frac{1}{T-1}\sum_{t=2}^Tr_t|x_0=x]\
&=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}E_\pi[\frac{1}{T-1}\sum_{t=1}^{T-1}r_t|x_0=x'])\
&=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}V_{T-1}^\pi(x')) \tag{1.1} \
V_{\gamma}^\pi(x)&=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a + \gamma V_{\gamma}^\pi(x')) \tag{1.2}
\end{align
}
$$
P和R已知,才能進(jìn)行全概率展開,類似于動態(tài)規(guī)劃
停止準(zhǔn)則,設(shè)置一個閾值$\theta$滿足值函數(shù)的改變在一次迭代后改變小于$\theta$則停止$\max_{x\in X}|V(x)-V'(x)|<\theta$
通過狀態(tài)值函數(shù)V,就能直接計算出狀態(tài)-動作值函數(shù)
$$\left{\begin{array}{ll}Q_T^\pi(x,a)=\sum_{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}V_{T-1}^\pi(x'))\
Q_\gamma^\pi(x,a)=\sum_{x'\in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a + \gamma V_{\gamma}^\pi(x'))\tag{1.3}
\end{array}
\right.$$

策略改進(jìn)####

對某個策略的累計獎賞進(jìn)行評估后,若發(fā)現(xiàn)它并非最有策略,則希望改進(jìn)。理想的策略應(yīng)能最大化累積獎賞
$$\pi^=\mathop{argmax}\pi\sum{x\in X}V^\pi(x)$$
一個強(qiáng)化學(xué)習(xí)任務(wù)可能有多個最優(yōu)策略,最有策略所對應(yīng)的值函數(shù)$V^
$稱為最優(yōu)值函數(shù),即
$$\forall x \in X:V*(x)=V{\pi^}(x)$$
策略空間是所有狀態(tài)上所有動作的組合,共有$|A|^{|X|}$種不同的策略
將動作的求和改為取最優(yōu),公式(1.1)(1.2)
$$\left{\begin{array}{ll}V_T^
(x)=\mathop{max}{a \in A}\sum{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}V_{T-1}^(x'))\
V_\gamma^
(x)=\mathop{max}{a \in A}\sum{x'\in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a + \gamma V_{\gamma}^(x')) \tag{1.4}
\end{array}
\right.$$
$$V^
(x)=\mathop{max}{a \in A}Q{\pi}(x,a)$$
帶入公式(1.3)得到最優(yōu)Bellmann等式,其唯一解是最優(yōu)值函數(shù)
$$\left{\begin{array}{ll}Q_T^
(x,a)=\sum
{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}\mathop{max}{a' \in A}Q{T-1}^(x',a'))\
Q_\gamma^
(x,a)=\sum_{x'\in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a + \gamma \mathop{max}{a' \in A}Q{\gamma}^*(x',a'))\tag{1.5}
\end{array}
\right.$$
$$
\begin{equation}
\begin{array} {l}
V^\pi(x)&\leq Q^\pi(x,\pi'(x))\
&=\sum_{x'\in X}P_{x \rightarrow x'}^{\pi'(x)}(R_{x \rightarrow x'}^{\pi'(x)} + \gamma V^\pi(x'))\
&\leq\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}E_\pi[\frac{1}{T-1}\sum_{t=1}^{T-1}r_t|x_0=x'])\
&=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(\frac{1}{T}R_{x \rightarrow x'}^a + \frac{T-1}{T}V_{T-1}^\pi(x')) \
V_{\gamma}^\pi(x)&=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a + \gamma V_{\gamma}^\pi(x')) \tag{1.2}
\end{array}
\end{equation}$$

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,415評論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,104評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,884評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,647評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,130評論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,366評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,887評論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,737評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,174評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,586評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,827評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,608評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,914評論 2 372

推薦閱讀更多精彩內(nèi)容

  • #1996 AHSME ##1996 AHSME Problems/Problem 1 The addition ...
    abigtreenj閱讀 1,422評論 0 0
  • $ \LaTeX{} $歷史 $\LaTeX{}$(/?lɑ?t?x/,常被讀作/?lɑ?t?k/或/?le?t?...
    大只若于閱讀 5,621評論 0 5
  • 目錄 [TOC] 引言 量化交易是指以先進(jìn)的數(shù)學(xué)模型替代人為的主觀判斷,利用計算機(jī)技術(shù)從龐大的歷史數(shù)據(jù)中海選能帶來...
    雷達(dá)熊閱讀 995評論 0 2
  • 一 什么是RL RL是trail and error來解決問題。 RL條件:你有一個sequential deci...
    Zichen_195d閱讀 321評論 0 1
  • 這次的學(xué)習(xí)會又有了新的變化,而每一次的變化都是為了更好的學(xué)習(xí)與工作。以前聽車間的家人或者別的部門的家人分享工...
    嚴(yán)露露閱讀 326評論 0 1