强化学习(Reinforcement learning,简称RL)是和监督学习,非监督学习并列的第三种机器学习方法,以下图示:html
首先让咱们举一个小时候的例子:机器学习
你如今在家,有两个动做选择:打游戏
和读书
。若是选择打游戏的话,你就跑到了网吧
,选择读书的话,就坐在了书桌
面前。你爸妈下班回家,若是发现你在网吧,就会给你一套社会主义的铁拳,若是你在书桌面前的话,就会买根棒棒糖给你吃。函数
首先,你在家的时候并不知道选择哪个动做,所以你可能会选择study或者game。可是,当你接受了屡次社会主义的毒打和奖励棒棒糖以后,你会发现选择game
会获得惩罚,选择study
你会获得奖励。所以当你再次处于”home“状态时,你就会偏向于选择“study”。(这即是强化学习!!)学习
强化模型能够建模以下:spa
以上面的为例子,对以下进行说明:code
Agent:Agent也就是执行个体,咱们能够操做执行个体作出不一样的选择(也就是动做Action)。htm
图中的“你”blog
Environment:咱们研究的环境,它有一个一个的状态(State)。游戏
图中你所处的位置状态:网吧or书桌ip
Action:当Agent作出动做(action)的时候,环境会发生改变也就是State会发生改变。
选择Study或者Game后你会处于书桌或者网吧的状态
Reward:当State发生改变时,环境会给予必定的奖励(奖励可为正负)。
拳头or棒棒糖
总的来讲,就是Agent在\(t\)时刻处于\(s_t\)状态,它会作出某一个动做\(a_i\),致使\(t+1\)的状态为\(s_{t+1}\),同时在\(t+1\)时刻获得的奖励为\(R_{t+1}\)。
接下来咱们再介绍强化学习中稍微复杂一点的概念。这些概念是之后的基础,也比较简单,很容易理解。
当Agent处于某一个state的时候,它作的Action是不肯定的,例如你能够选择study也能够选择game,也就是说你在某一个状态是以必定的几率去选择某一个action。也就是说,策略的选择是一个条件几率\(\pi(a|s)\),这里的\(\pi\)与数序中的\(\pi\)没有任何关系,他只是表明一个函数而已(所以也能够写做\(f(a|s)\))。
此函数表明:在状态\(s\)时采起动做\(a\)的几率分布。
前面咱们说到过奖励,当Agent在\(t\)时刻执行某个动做时,会获得一个\(R_{t+1}\)。咱们能够想一下蝴蝶效应,这个Action会影响\(R_{t+1}\),那么他会不会影响\(R_{t+2},R_{t+3}……R_{t+n}\)呢?极可能会的,好比说在电游中,你所作的某个选择确定会对接下来的游戏产生影响,这个影响能够深远,也能够没那么深渊(对,我说的就是隐形守护者,mmp),所以状态价值函数能够表示为:
\(v_{\pi}(s)\)与策略函数\(\pi\)有关,能够理解为当Agent以策略\(\pi\)运行时,状态\(s\)的价值是多少。也就是在此状态下,我可以获得多少回报。
在后面咱们会详细的对这个函数进行分析。
在上面的价值函数中,有一个变量\(\gamma\) ,即奖励衰减因子,在[0,1]之间。若是为0,则是贪婪法,即价值只由当前的奖励决定,若是是1,则全部的后续状态奖励和当前奖励一视同仁。通常来讲取0到1之间的数。
因为在某个状态下,执行必定的action,可以达到新的一个状态\(state_{t+1}\),可是\(state_{t+1}\)不必定是惟一的。环境的状态转化模型,能够理解为一个几率状态机,它是一个几率模型,即在状态\(t\)下采起动做\(a\),转到下一个状态\(s'\)的几率,表示为\(P_{ss'}^a\)。
怎么说的探索率呢?它主要是为了防止陷入局部最优。好比说目前在\(s_1\)状态下有两个\(a_1,a_2\)。咱们经过计算出,发现执行\(a_1\)的动做比较好,可是为了防止陷入局部最优,咱们会选择以 \(\epsilon\) 的几率来执行\(a_2\),以\(1 - \epsilon\) 的几率来执行\(a_1\)。通常来讲,\(\epsilon\) 随着训练次数的增长而逐渐减少。
前面咱们说过某个状态执行action能够转换成另一个state,能够用几率表示为:\(P_{ss'}^a\)。那么这个几率与什么有关呢?认真的考虑下,毋庸置疑,与目前的状态\(s_t和a\)有关,可是一样,它可能也与上一个状态\(s_{t-1}\),上上个状态\(s_{t-2}\)……有关,可是若是真的这样考虑,就复杂了。
所以咱们将问题进行必定的简化,简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态\(s'\)的几率仅与当前状态\(s\)有关,与以前的状态无关(也就是说将来与当前有关,与过去无关)。用公式表示就是:
同时对于针对于策略 \(\pi\) 咱们也作MDP假设,也就是说,当前Agent所做的策略仅仅与当前状态有关,与之前的状态都没有关系,所以:
一样针对于价值函数\(v\),有:
之因此咱们来分析这个价值函数,是由于它是强化学习的核心,为何Agent可以自动学习,自动选择某一个Action,其中一个量化标准就是它:
令:
\(G_t\)表明Return,表明Agent从某一个状态\(S_t\)开始直到终止状态时全部奖励的有衰减的之和。
则有:
So:
所以:
上述方程即是Bellman方程的基本形态。所以咱们能够知道,当前状态的价值与奖励\(\R_{t+1}\)和下一个状态的价值有关。
这里再说一下动做价值函数,它表明着在当前state下,作某一个action的价值:
一样,咱们利用Bellman方程,能够将上式转化成:
动做价值函数与状态价值函数之间能够相互进行转化:
图示说明以下:图来自(强化学习(二)马尔科夫决策过程(MDP))
综上可得:
OK,强化学习的入门介绍就到这里,经过这篇博客,咱们知道了:
策略 \(\pi\) :表示在某一个状态下,action的几率分布函数\(\pi(a|s) = P(A_t=a | S_t=s)\)
\(\gamma\) :奖励衰减因子,表示后续奖励的占比
探索率\(\epsilon\):表示Agent以 \(\epsilon\) 的几率来随机选择action
状态转化模型:表示执行某个action后,状态变化的几率函数\(P_{ss'}^a = \mathbb{P}(S_{t+1}=s'|S_t=s, A_t=a)\)
状态价值函数:表示 \(t\) 时刻的状态 \(s_{t}\) 能得到的将来回报(return)的指望\(v_\pi(s)=\mathbb{E}\left[R_{t+1}+\gamma \left(S_{t+1}\right) | S_{t}=s\right]\)
动做价值函数:表示 \(t\) 时刻的状态 \(s\),选择一个 action 后能得到的将来回报(return)的指望
\(q_{\pi}(s,a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma q_{\pi}(S_{t+1},A_{t+1}) | S_t=s, A_t=a)\)