RL

RL

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

強化學習任務通常用馬爾科夫決策過程(Markov Decision Process,簡稱 MDP)來描述:

機器處于環(huán)境$E$中沼填,狀態(tài)空間為$X$,其中每個狀態(tài)$x \in X$是機器感知到的環(huán)境的描述桅咆,機器能采取的動作構(gòu)成了動作空間$A$,若某個動作$a\in A$作用在當前狀態(tài)$x$上坞笙,則潛在的轉(zhuǎn)移函數(shù)$P$將使得環(huán)境從當前狀態(tài)按某種概率轉(zhuǎn)移到一另個狀態(tài)岩饼,在轉(zhuǎn)移到另一個狀態(tài)的同時,環(huán)境會根據(jù)潛在的獎賞(reward)函數(shù)$R$反饋給機器一個獎賞薛夜。綜合起來籍茧,強化學習任務對應了四元組$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}$指定了獎賞,在有的應用中梯澜,獎賞函數(shù)可能僅與狀態(tài)轉(zhuǎn)移有關(guān)寞冯,即$R: X \times X \mapsto \mathbb{R}$.

在環(huán)境中狀態(tài)的轉(zhuǎn)移,獎賞的返回是不受機器控制的,機器只能通過選擇要執(zhí)行的動作來影響環(huán)境吮龄,也只能通過觀察轉(zhuǎn)移后的狀態(tài)和返回的獎賞來感知環(huán)境檬某。
策略(policy)$\pi$的定義,根據(jù)這個策略,在狀態(tài)$x$下就能得知要執(zhí)行的動作$a=\pi(x)$螟蝙,確定性動作表示為$\pi:X \mapsto A$,隨機性動作表示為$\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$-搖臂賭博機

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

$\epsilon$-貪心####

每次嘗試時取具,以$\epsilon$的概率進行探索,即以均勻概率隨機選取一個搖臂扁耐,以$1-\epsilon$的概率進行利用暇检,集選擇當前平均獎賞最高的搖臂(若有多個,則隨機選取一個)

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)記錄當前搖臂的平均獎賞;$\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)空間,離散動作空間上的多不講話學習人物王暗,一種直接的辦法是將每個狀態(tài)上動作的選擇看做一個$K$-搖臂賭博機問題悔据,用強化學習任務的累計獎賞來代替$K$-搖臂賭博機算法中的獎賞函數(shù),即可將賭博計算法用于每個狀態(tài)

有模型學習###

$$E=<X,A,P,R>$$
機器已對模型進行了建模俗壹,能在機器內(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已知,才能進行全概率展開之众,類似于動態(tài)規(guī)劃
停止準則拙毫,設(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.$$

策略改進####

對某個策略的累計獎賞進行評估后棺禾,若發(fā)現(xiàn)它并非最有策略缀蹄,則希望改進。理想的策略應能最大化累積獎賞
$$\pi^=\mathop{argmax}\pi\sum{x\in X}V^\pi(x)$$
一個強化學習任務可能有多個最優(yōu)策略,最有策略所對應的值函數(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)系作者
  • 序言:七十年代末拯刁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子逝段,更是在濱河造成了極大的恐慌垛玻,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奶躯,死亡現(xiàn)場離奇詭異帚桩,居然都是意外死亡,警方通過查閱死者的電腦和手機嘹黔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門账嚎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人儡蔓,你說我怎么就攤上這事郭蕉。” “怎么了浙值?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵恳不,是天一觀的道長。 經(jīng)常有香客問我开呐,道長烟勋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任筐付,我火速辦了婚禮卵惦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓦戚。我一直安慰自己沮尿,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布较解。 她就那樣靜靜地躺著畜疾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪印衔。 梳的紋絲不亂的頭發(fā)上啡捶,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音奸焙,去河邊找鬼瞎暑。 笑死彤敛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的了赌。 我是一名探鬼主播墨榄,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼勿她!你這毒婦竟也來了袄秩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤逢并,失蹤者是張志新(化名)和其女友劉穎播揪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筒狠,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年箱沦,在試婚紗的時候發(fā)現(xiàn)自己被綠了辩恼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡谓形,死狀恐怖灶伊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寒跳,我是刑警寧澤聘萨,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站童太,受9級特大地震影響米辐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜书释,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一翘贮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爆惧,春花似錦狸页、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熄阻,卻和暖如春斋竞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饺律。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工窃页, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跺株,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓脖卖,卻偏偏與公主長得像乒省,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畦木,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

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

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