├── 01-MDP-马尔可夫决策过程 ├── img │ ├── Gtlim.svg │ ├── coupleR.svg │ ├── dymic1.svg │ ├── hss01.svg │ ├── hss02.svg │ ├── hss03.svg │ ├── merch.svg │ ├── optimp.svg │ ├── p1.svg │ ├── policy.svg │ ├── recg.svg │ ├── reward.svg │ ├── spm.svg │ └── sum01.png ├── 强化学习入门基础——马尔可夫决策过程(MDP).md └── 强化学习入门基础——马尔可夫决策过程(MDP).pdf ├── 02-DP-动态规划 ├── img │ ├── jieduan.svg │ ├── jieduan1.svg │ ├── pe.svg │ └── veq.svg ├── 强化学习-动态规划-DP.md └── 强化学习-动态规划-DP.pdf ├── 03-Monte Carlo, MCMC-蒙特卡洛方法 ├── img │ ├── MonteCarlo.jpg │ ├── mtclpf.svg │ ├── panda.jpg │ └── pi.png └── 蒙特卡洛方法.md ├── 04-Model-free prediction-免模型预测 ├── img │ └── blackj.jpg ├── 免模型学习预测.md └── 免模型学习预测.pdf ├── Bookcover300g.png ├── README.md └── 版权logo.drawio /01-MDP-马尔可夫决策过程/img/Gtlim.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
St+1
St+1
St
St
s
s
s'
s'
At
At
Rt+1
Rt+1
a1
a1
a2
a2
a3
a3
St = s
St = s
St+1 = s'
St+1 = s'
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/coupleR.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
St
St
St+1
St+1
马尔可夫链
马尔可夫链
Rt+1
Rt+1
At
At
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/dymic1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
s1
s1
A1
A1
A2
A2
R2
R2
R3
R3
At
At
Rt+1
Rt+1
At+1
At+1
Rt+2
Rt+2
····
····
s2
s2
st
st
st+1
st+1
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/hss01.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
a2
a2
a1
a1
a3
a3
St = s
St = s
vt (s)
vt (s)
St+1= s'
St+1= s'
qπ (s,a)
qπ (s,a)
vπ (s')
vπ (s')
Rt+1 = r
Rt+1 = r
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/hss02.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
a2
a2
a1
a1
a3
a3
St = s
St = s
vt (s)
vt (s)
St+1= s'
St+1= s'
qπ (s,a)
qπ (s,a)
vπ (s')
vπ (s')
Rt+1 = r
Rt+1 = r
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/hss03.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
a2
a2
a1
a1
a3
a3
St = s
St = s
vt (s)
vt (s)
St+1= s'
St+1= s'
qπ (s,a)
qπ (s,a)
vπ (s')
vπ (s')
Rt+1 = r
Rt+1 = r
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
a1
a1
a2
a2
a3
a3
At = a
At = a
At+1= a'
At+1= a'
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/merch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
a1
a1
a2
a2
a3
a3
St = s
St = s
St+1 = s'
St+1 = s'
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/optimp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
ST
ST
RT
RT
···
···
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/p1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Policy1
Policy1
A
A
P(s)
P(s)
a1
a1
0.8
0.8
a2
a2
0.1
0.1
a3
a3
0.1
0.1
Policy2
Policy2
A
A
P(s)
P(s)
a1
a1
0.5
0.5
a2
a2
0.3
0.3
a3
a3
0.2
0.2
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/policy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
s
s
a1
a1
a2
a2
a3
a3
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/recg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
s1
s1
s4
s4
s2
s2
s5
s5
s3
s3
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/reward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
St
St
St+1
St+1
马尔可夫链
马尔可夫链
Rt+1
Rt+1
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/spm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
s1
s1
s2
s2
s3
s3
a1
a1
a2
a2
a3
a3
Text
Text
观测变量
观测变量
马尔可夫链
马尔可夫链
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/img/sum01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/01-MDP-马尔可夫决策过程/img/sum01.png -------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/强化学习入门基础——马尔可夫决策过程(MDP).md: -------------------------------------------------------------------------------- 1 | # 强化学习入门基础-马尔达夫决策过程(MDP) 2 | 3 | > 作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Learning-Notes,如果感觉对您有所帮助,烦请点个⭐Star。 4 | 5 | ## MDP背景介绍 6 | 7 | ### Random Variable 8 | 9 | **随机变量(Random Variable)**,通常用大写字母来表示一个随机事件。比如看下面的例子: 10 | 11 | $X$: 河水是咸的 12 | 13 | $Y$: 井水是甜的 14 | 15 | 很显然,$X$, $Y$两个随机事件是没有关系的。也就是说$X$和$Y$之间**是相互独立**的。记作: 16 | $$ 17 | \large 18 | X \bot Y 19 | $$ 20 | 21 | ### Stochastic Process 22 | 23 | 对于一类随机变量来说,它们之间存在着某种关系。比如: 24 | 25 | $S_{t}$:表示在 $t$ 时刻某支股票的价格,那么 $S_{t+1}$ 和 $S_t$ 之间一定是有关系的,至于具体什么样的关系,这里原先不做深究,但有一点可以确定,两者之间一定存在的一种关系。随着时间 $t$ 的变化,可以写出下面的形式: 26 | $$ 27 | \large 28 | ...S_t, S_{t+1},S_{t+2}... 29 | $$ 30 | 这样就生成了一组随机变量,它们之间存在着一种相当复杂的关系,也就是说,各个随机变量之间存在着关系,即不相互独立。由此,我们会把按照某个时间或者次序上的一组不相互独立的随机变量的这样一个整体作为研究对象。这样的话,也就引出了另外的一个概念:**随机过程(Stochastic Process)**。也就是说随机过程的研究对象不在是单个的随机变量,而是一组随机变量,并且这一组随机变量之间存在着一种非常紧密的关系(不相互独立)。记作: 31 | $$ 32 | \large 33 | \lbrace S_t \rbrace ^\infty_{t=1} 34 | $$ 35 | 36 | 37 | ### Markov Chain/Process 38 | 39 | **马尔科夫链(Markov Chain)**即马尔可夫过程,是一种特殊的随机过程——具备马尔可夫性的随机过程。 40 | 41 | * 马尔可夫性:(Markov Property): 还是上面股票的例子,如果满足 $P(S_{t+1} \mid S_t,S_{t-1}...S_1) = P(S_{t+1}\mid S_t)$,即具备了马尔可夫性。简单来说,$S_{t+1}$ 和$S_t$之间存在关系,和以前的时刻的没有关系,即只和“最近的状态” 有关系。 42 | * 现实例子:下一个时刻仅依赖于当前时刻,跟过去无关。比如:一个老师讲课,明天的讲课状态一定和今天的状态最有关系,和过去十年的状态基本就没关系了。 43 | * 最主要考量:为了简化计算。$P(S_{t+1} \mid S_t,S_{t-1}...S_1) = P(S_{t+1}\mid S_t)$ 如果 $S_{t+1}$ 和 $S_t,S_{t-1}...S_1$ 都有关系的话,计算的话就会爆炸了。 44 | 45 | 马尔可夫链/过程 即满足马尔可夫性质的随机过程,记作: 46 | $$ 47 | \large P(S_{t+1}) \mid S_t,S_{t-1}...S_1) = P(S_{t+1}\mid S_t) 48 | $$ 49 | 50 | ### State Space Model 51 | 52 | **状态空间模型(State Space Model)**,常应用于 HMM,Kalman Filterm Particle Filter,关于这几种这里不做讨论。在这里就是指马尔可夫链 + 观测变量,即`Markov Chain + Obervation` 53 | 54 | ![spm](https://gitee.com/YJLAugus/pic-go/raw/master/img/spm.svg) 55 | 56 | 如上图所示,s1-s2-s3为马尔可夫链,a1, a2, a3为观测变量,以a2为例,a2只和s2有关和s1, s3无关。状态空间模型可以说是由马尔可夫链演化而来的模型。记作: 57 | 58 |
Markov Chain + Obervation
59 | 60 | ### Markov Reward Process 61 | 62 | **马尔可夫奖励过程(Markov Reward Process)**,即马尔可夫链+奖励,即:`Markov Chain + Reward`。如下图: 63 | 64 | ![图片描述](https://gitee.com/YJLAugus/pic-go/raw/master/img/reward.svg) 65 | 66 | 67 | 68 | 举个例子,比如说你买了一支股票,然后你每天就会有“收益”,当然了这里的收益是泛化的概念,收益有可能是正的,也有可能是负的,有可能多,有可能少,总之从今天的状态$S_t$ 到明天的状态 $S_{s+1}$ ,会有一个`reward`。记作: 69 | 70 |
Markov Chain + Reward
71 | 72 | ### Markov Decision Process 73 | 74 | **马尔可夫决策过程(Markov Decision Process)**,即马尔可夫奖励过程的基础上加上`action`,即:`Markov Chain + Reward + action`。如果还用刚才的股票为例子的话,我们只能每天看到股票价格的上涨或者下降,然后看到自己的收益,但是无法操作股票的价格的,只有看到份,只是一个“小散户”。这里的马尔可夫决策过程相当于政策的制定者,相当于一个操盘手,可以根据不同的状态而指定一些政策,也就相当于 action。 75 | 76 | 在马尔可夫决策过程中,所有的**状态**是我们看成离散的,有限的集合。所有的**行为**也是离散有限的集合。记作: 77 | 78 | $$ 79 | \large 80 | \enclose{box}{ 81 | \it S: \quad state \quad set \quad \quad \quad\quad\quad\quad\quad\quad\quad\quad S_t \\ 82 | \it A: \quad action \quad set ,\quad \quad \forall s \in S,A_{(s)} \quad\quad A_t\\ 83 | \it R: \quad reward \quad set \quad\quad\quad\quad\quad\quad\quad\quad\quad R_t, R_{(t+1)} \\ 84 | } 85 | $$ 86 | 对于上述公式简单说明,$S_t$ 用来表示某一个时刻的状态。$A_{(s)}$ 表示在**某一个状态**时候的行为 ,这个行为一定是基于某个状态而言的,假设在$t$ 时刻的状态为$S$ 此时的`action`记作 $A_t$ 。$R_t 和 R_{(t+1)}$ 只是记法不同,比如下面的例子:从$S_t$状态经过 $A_t$ 到$S_{t+1}$状态,获得的奖励一般记作$R_{(t+1)}$。 也就是说$S_t$, $A_t$ ,$R_{(t+1)}$ 是配对使用的。 87 | 88 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/coupleR.svg) 89 | 90 | ### Summary 91 | 92 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/sum01.png) 93 | 94 | ## MDP动态特性 95 | 96 | ### Markov Chain 97 | 98 | 马尔可夫链只有一个量——**状态**。比如 $S\in(s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_{10})$ ,在状态集合中一共有十个状态,每个状态之间可以互相转化,即可以从一个状态转移到另外一个状态,当然,“另外的状态” 也有可能是当前状态本身。如下图所示,s1状态到可以转移到s2状态,s1状态也可以转移到自己当前的状态,当然s1也有可能转移到s3,s4,s5,状态,下图中没有给出。 99 | 100 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/recg.svg) 101 | 102 | 根据上面的例子,我们可以把所有的状态写成矩阵的形式,就成了**状态转移矩阵**。用状态转移矩阵来描述马尔可夫链的**动态特性**。以上面的状态集合$S\in(s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_{10})$ 为例,可得一个 $10\times10$ 的矩阵。如下图所示: 103 | $$ 104 | \large 105 | \begin{bmatrix} 106 | s_1s_1 &... & s_1s_{10} \\ 107 | \vdots & \vdots & \vdots \\ 108 | 109 | s_{10}s_1 & ... & s_{10}s_{10}\\ 110 | \end{bmatrix} 111 | $$ 112 | 由上面的例子可知,在状态转移的过程中,对于下一个状态转移是有概率的,比如说s1转移到到s1状态的概率可能是0.5,s1有0.3的概率转移到s2状态。⻢尔科夫过程是⼀个⼆元组(S, P) , 且满⾜: **S是有限状态集合, P是状态转移概率。** 可得: 113 | $$ 114 | \large 115 | P= 116 | \begin{bmatrix} 117 | P_{11} &... & P_{1n} \\ 118 | \vdots & \vdots & \vdots \\ 119 | 120 | P_{n1} & ... & P_{nn}\\ 121 | \end{bmatrix} 122 | $$ 123 | 一个简单的例子:如图2.2所⽰为⼀个学⽣的7种状态{娱乐, 课程1, 课程2, 课程3, 考过, 睡觉, 论⽂}, 每种状态之间的转换概率如图所⽰。 则该⽣从课程 1 开始⼀天可能的状态序列为: 124 | 125 | ![image-20201127124916367](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201127124916367.png) 126 | 127 | ### MRP 128 | 129 | 在 MPR 中,打个比喻,更像是随波逐流的小船,没有人为的干预,小船可以在大海中随波逐流。 130 | 131 | ### MDP 132 | 133 | 在MDP中,打个比喻,更像是有人划的小船,这里相比较MRP中的小船来说,多了“人划船桨”的概念,可以认为控制船的走向。这里我们看下面的图: 134 | 135 | 136 | 137 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/dymic1.svg) 138 | 139 | 140 | 141 | s1状态到s2状态的过程,agent从s1发出action A1,使得s1状态转移到s2状态,并从s2状态得到一个R2的奖励。其实就是下图所示的一个过程。这是一个**动态的过程**,由此,引出**动态函数**。 142 | 143 | ![image-20201127132127738](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201127132127738.png) 144 | 145 | * **动态函数:** The function $p$ defines the dynamics of the MDP. 这是书上的原话,也就说,这个动态函数定义了MDP的`动态特性`,动态函数如下: 146 | $$ 147 | \large 148 | p(s',r\mid s,a) \dot{=} Pr\lbrace S_{t+1}=s',R_{t+1} = r \mid S_{t} =s,A_{t}=a \rbrace 149 | $$ 150 | 151 | 152 | * **状态转移函数:** 我们去掉 $r$ ,也就是`reward`,动态函数也就成了状态转移函数。 153 | 154 | $$ 155 | \large{ 156 | p(s'\mid s,a) \dot{=} Pr\lbrace S_{t+1}=s',\mid S_{t} =s,A_{t}=a \rbrace \\ 157 | p(s'\mid s,a) = \sum_{r\in R} p(s'\mid s,a) 158 | } 159 | $$ 160 | 161 | * **`reward`的动态性:** 在 s 和 a 选定后,r 也有可能是不同的,即 r 也是随机变量。但是,大多数情况在 s 和 a 选定后 r 是相同的,这里只做简单的介绍。 162 | 163 | ### Summary 164 | 165 | ![image-20201127135356269](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201127135356269.png) 166 | 167 | ## MDP价值函数 168 | 169 | ### 策略的定义 170 | 171 | 在MDP中,即马尔可夫决策过程,最重要的当然是**策略(Policy)**,**用 $\pi$ 来表示**。在策略中其主要作用的就是`action`,也即 $A_t$,需要指出的一定是,action 一定是基于某一状态 S 时。看下面的例子: 172 | 173 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/policy.svg) 174 | 175 | 即,当 $S_t = S$ 状态时,无论 $t$ 取何值,只要遇到 $S$ 状态就 选定 $a_1$ 这个 action ,这就是一种策略,并且是确定性策略。 176 | 177 | ### 策略的分类 178 | 179 | * **确定性策略:**也就是说和时间 $t$ 已经没有关系了,只和这个状态有关,只要遇到这个状态,就做出这样的选择。 180 | 181 | * **随机性策略:**与确定性策略相对,当遇到 $S$ 状态时,可能选择 $a_1$ ,可能选择 $a_2$,也可能选择 $a_3$。只是选择action的概率不同。如下图,就是**两种不同**的策略: 182 | 183 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/p1.svg) 184 | 185 | 从上面两天图中,因为一个策略是基于一个状态而言的,在 $S$ 状态,可能选择 $a_1$ ,可能选择 $a_2$,也可能选择 $a_3$,故三个 `action` 之间是**或**的关系,所以说以上是两个策略,而不要误以为是6个策略。 186 | 187 | 故策略可分为确定性策略和随机性策略两种。 188 | 189 | 190 | $$ 191 | \large 192 | Policy= \begin{cases} 确定性策略, & \text {a $\dot{=}\pi(s)$} \\ 随机性策略, & \text { $\pi(a\mid s) \dot{=} P \lbrace A_t=a \mid S_t = s \rbrace$} \end{cases} 193 | $$ 194 | 195 | 对于随机性策略而言,给定一个 $s$ ,选择**一个 $a$** ,也就是条件概率了。 196 | 197 | > 确定性策略可以看作是一种特殊的随机性策略,以上表-Policy1为例,选择a1的概率为1,选择a2,a3的概率都为0。 198 | 199 | ### 最优策略 200 | 201 | 在所有的策略中一定存在至少一个**最优策略**,而且在强化学习中,`reward`的获得有**延迟性(delay)**,举雅达利游戏中,很多游戏只有到结束的时候才会知道是否赢了或者输了,才会得到反馈,也就是`reward`,所以这就是奖励获得延迟。当选定一个状态 $S_t$ 时,选定action $A_t$ ,因为奖励延迟的原因可能对后续的 $S_{t+1}$ 等状态都会产生影响。这样,就不能用当前的reward来衡量策略的好坏、优劣。这里引入了回报和价值函数的概念。 202 | 203 | #### 回报($G_t$) 204 | 205 | 而是后续多个reward的加和,也就是**回报**,用 $G_t$ 表示 $t$ 时刻的回报。 206 | 207 | 208 | 209 | 210 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/optimp.svg) 211 | 212 | 213 | 214 | 如上图所示,此时的“回报”可以表示为:$G_t = R_{t+1} + R_{t+2}+ \ ...\ +R_T$ 215 | 216 | 值得注意的是,$T$ 可能是有限的,也有可能是无限的。 217 | 218 | 举例:张三对李四做了行为,对李四造成了伤害,李四在当天就能感受到伤害,而且,这个伤害明天,后头都还是有的,但是,时间是最好的良药,随着时间的推移,李四对于张三对自己造成的伤害感觉没有那么大了,会有一个wei折扣,用 $\gamma$ 来表示。故**真正的回报**表示为: 219 | $$ 220 | \large 221 | G_t = R_{t+1} + \gamma R_{t+2}+\gamma^2 R_{t+3} \ ...\ +\gamma^{T-t-1}R_T = \sum_{i=0}^{\infty}\gamma^i R_{t+i+1} \quad \quad \gamma\in[0,1],\quad (T\rightarrow\infty) 222 | $$ 223 | **用 $G_t$ 来衡量一个策略的好坏,$G_t$ 大的策略就好,反之。** 224 | 225 | 但是使用 $G_t$ 也不能很好的衡量策略的好坏,比如一个最大的问题是,在给定一个状态后,选择一个确定的action后(这里还是在随机策略的角度),进入的下一个状态也是随机的。如下图所示:把左侧的过程放大,只给出a3下的随机状态,a1,a2也是有同样的情况,这里胜率。 226 | 227 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/Gtlim.svg) 228 | 229 | 230 | 231 | 举个例子,就像我们给一盆花浇水,水是多了还是少了,对于这盆花来说我们是不得知的,可能会少,也可能会多。这个花的状态变化也就是随机的了。从上面的例子得知,如果还是用 $G_t$ 来对一个策略来进行评估的话,至少有9中情况(随机策略,3个action选一种)。 232 | 233 | $G_t$ 只能评估的是一个“分叉”而已(图中`绿色分支`)。而不能更好的进行评估。如下图所示: 234 | 235 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/merch.svg) 236 | 237 | 因为回报不能很好的对策略进行一个评估,由此引入了另外一个概念——价值函数。 238 | 239 | #### 价值函数(Value Function ) 240 | 241 | 在指定一个状态 $s$ ,采取一个`随机策略 `$\pi$ ,然后加权平均,以上图为例,把9 个分叉($G_t$)加权平均。也就是**期望** $E$。故得出价值函数: 242 | $$ 243 | \large 244 | V_\pi(s) = E_\pi[G_t\mid S_t = s] 245 | $$ 246 | 247 | 248 | ### Summary 249 | 250 | ![image-20201128110205095](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201128110205095.png) 251 | 252 | ## MDP贝尔曼期望方程 253 | 254 | ### 价值函数分类 255 | 256 | 上面提到的的价值函数其实是其中的一种,确切的可以称为 `状态价值函数`,**用$v_\pi(s)$ 来表示**只和状态有关系。初次之外还有另外一种价值函数,那就是`状态动作价值函数`,用$q_\pi(s,a)$这里引入的`action`。故价值函数可以分为下面的两种: 257 | $$ 258 | Value \quad Function = \begin{cases} v_\pi(s) = E_\pi[G_t\mid S_t = s], & \text {only $s$ is independent variable} \\ q_\pi(s,a) = E_\pi[G_t\mid S_t = s,A_t = a], & \text{Both $s$ and a are independent variable} \end{cases} 259 | $$ 260 | 从上面的公式中,我们可以得知,在 $v_\pi(s)$ 中,只有 $s$ 是自变量,一个 $\pi$ 其实就是一个状态$s$ 和一个action的一个映射。故,只要$\pi$ 确定了,那么$s,a$ 也就确定了,即此时的 $\pi$ 对状态 $s$ 是有限制作用的。但是,在 $q_\pi(s,a)$ 中,子变量为$s,a$ 两个,这两个自变量之间是没有特定的关系的。也就是说,$s$和$a$ 都在变,无法确定一个映射(策略) $\pi$ ,那么也就是说在 $q_\pi$ 中的$\pi$ 对于$s$ 是没有约束的。 261 | 262 | ### 两种价值函数之间的关系 263 | 264 | #### $v_\pi(s)$ 和 $q_\pi(s,a)$ 之间的关系 265 | 266 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/Gtlim.svg) 267 | 268 | 269 | 270 | 还是以上图为例,对于 s 状态,在随机策略中有三种 action 选择,分别是 $\pi(a_1 \mid s)$,$\pi(a_1 \mid s)$,$\pi(a_1 \mid s)$,三种action(行为)对应的价值函数(此时为动作价值函数)为 $q_\pi(s,a_1)$, $q_\pi(s,a_2)$, $q_\pi(s,a_3)$。那么此时的 $v_\pi(s)$ 就等于各个action的动作状态价值函数的加和,即: 271 | $$ 272 | v_\pi(s) = \pi(a_1 \mid s)·q_\pi(s,a_1) + \pi(a_2 \mid s)·q_\pi(s,a_2) + \pi(a_3 \mid s)·q_\pi(s,a_3) 273 | $$ 274 | 这样一来我们就得出了 **$v_\pi(s)$ 和 $q_\pi(s,a)$ 之间的关系**,若条件已知,就可以直接计算出 $v_\pi$。 275 | $$ 276 | \large 277 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) 278 | $$ 279 | 对于某个状态 $s$ 来说,$v_\pi \leq \underset{a}{max}\ q_\pi(s,a)$ ,$v_\pi(s)$ 是一个加权平均,实际上就是一个平均值,当然要小于等于$\ q_\pi(s,a)$的最大值。$v_\pi(s)$只有全部是最大值的时候,两者才有可能相等。比如 5,5,5,平均值是5,最大值也是5;3,4,5而言,平均值为4,但是最大值为5。注意的是,4是乘上权值后的值,换句话说也就是乘了一个概率($\pi(a\mid s)$)。 280 | 281 | #### $q_\pi(s,a)$ 和 $v_\pi(s')$ 之间的关系 282 | 283 | 从下面图中可得,在 $q_\pi(s,a)$ 位置,(一个action)状态转移只能向“箭头”方向转移,而不能向上。如果想从下面的状态转移到上面的状态,那必须还要另外一个action。情况是一样的,就按下图来说明,经过a3后到达状态s',此时的状态函数就是 $v_\pi(s’)$。 284 | 285 | ![image-20201128134834753](https://gitee.com/YJLAugus/pic-go/raw/master/img/hss01.svg) 286 | 287 | 上面的图可知: 在确定了s 后,由随机策略action,引起“分叉”,同理,以a3为例,因为系统状态转移的随机性,也会引起分叉,也就是 s' 的状态也是不确定的。还有一点 r 也又不确定性,如下图蓝色虚线部分。 288 | 289 | ![image-20201128135658979](https://gitee.com/YJLAugus/pic-go/raw/master/img/hss02.svg) 290 | 291 | 由我们前面提到的公式也可得知:s' 和 r 都是随机的。比如说s,a ,s' 都是给定的,r也是不确定的。 292 | $$ 293 | \large p(s',r\mid s,a) \dot{=} Pr\lbrace S_{t+1}=s',R_{t+1} = r \mid S_{t} =s,A_{t}=a \rbrace 294 | $$ 295 | 这样一来,可得**一条蓝色通路的回报**: 296 | $$ 297 | \large 298 | q_\pi(s,a) = r + \gamma v_\pi(s') \quad\quad\quad (1) 299 | $$ 300 | (1)式是怎么来的呢?以上图为例,在 $q_\pi(s,a)$ 处往下走,选定一个 r ,再往下到达一个状态s', 此时在往下还是同样的状态,就是俄罗斯套娃,以此类推。关于其中的 $\gamma v_\pi(s') $ ,来自于 $G_t$。看下面的式子: 301 | $$ 302 | \large{ 303 | G_t = R_{t+1} + \gamma R_{t+2}+\gamma^2 R_{t+3} \ ...\ +\gamma^{T-t-1}R_T \quad\quad \gamma\in[0,1],\quad (T\rightarrow\infty) \\ 304 | G_t = R_{t+1} + \gamma(R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+ ...) 305 | } 306 | $$ 307 | 因为 $v_\pi(s)$ 来自 $G_t$ ,故类比得(1)式。 308 | 309 | 因为走每条蓝色的通路也都是由概率的,故我们需要乘上概率,同时累加求和,一个是多条蓝色通路另一个是多个s'。故得:**$q_\pi(s,a)$ 和 $v_\pi(s')$ 之间的关系** 如下: 310 | $$ 311 | \large 312 | q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (2) 313 | $$ 314 | 315 | 316 | ### 贝尔曼期望等式(方程) 317 | 318 | 这样我们得到两个式子: 319 | $$ 320 | \large{ 321 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\ (3) \\ 322 | 323 | q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (4) 324 | } 325 | $$ 326 | (4)式带入(3)得: 327 | $$ 328 | \large 329 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) \sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad\quad\quad\quad (5) 330 | $$ 331 | (3)式带入(4)得: 332 | $$ 333 | \large 334 | q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma \sum_{a'\in A} \pi(a'\mid s') ·q_\pi(s',a') ] \quad\quad (6) 335 | $$ 336 | 关于(6)式可以看下图,更容易理解: 337 | 338 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/hss03.svg) 339 | 340 | (5)式和(6)式 被称为**贝尔曼期望方程**。 341 | 342 | * 一个实例: 343 | 344 | 例子是一个学生学习考试的MDP。里面实心圆位置是**起点**,方框那个位置是**终点**。上面的动作有study, Pub, Facebook, Quit, Sleep,每个状态动作对应的即时奖励R已经标出来了。我们的目标是找到最优的状态动作价值函数或者状态价值函数,进而找出最优的策略。 345 | 346 | image-20201129160656460 347 | 348 | 为了方便,我们假设衰减因子 $\gamma =1, \pi(a|s) = 0.5$ 。对于终点方框位置,由于其没有下一个状态,也没有当前状态的动作,因此其状态价值函数为0,对于其他的状态(圆圈)按照从上到下,从左到右的顺序定义其状态价值函数分别是 $v_1,v_2,v_3,v_4$ ,根据(5)式 : 349 | $$ 350 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) \sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad\quad\quad\quad (5) 351 | $$ 352 | 对于$v_1$位置,我们有:$v_1 = 0.5*(-1+v_1) +0.5*(0+v_2)$ 353 | 354 | 对于$v_2$位置,我们有:$v_2 = 0.5*(-1+v_1) +0.5*(-2+v_3)$ 355 | 356 | 对于$v_3$位置,我们有:$v_3 = 0.5*(0+0) +0.5*(-2+v_4)$ 357 | 358 | 对于$v_4$位置,我们有:$v_4 = 0.5*(10+0) +0.5*(1+0.2*v_2+0.4*v_3+0.4*v_4)$ 359 | 360 | 解出这个方程组可以得到 $v_1=-2.3, v_2=-1.3, v_3=2.7, v_4=7.4$, 即每个状态的价值函数如下图: 361 | 362 | image-20201129162749453 363 | 364 | > 从上面可以看出,针对一个特定状体,状态价值函数计算都是基于下一个状态而言的,通俗的讲,按照“出箭头”的方向计算当前状态的价值函数。 365 | 366 | 367 | ### Summary 368 | 369 | ![image-20201128152843746](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201128152843746.png) 370 | 371 | ## MDP贝尔曼最优方程 372 | 373 | ### 最优价值函数 374 | 375 | 能够使得 $v$ 达到最大值的那个 $\pi$ ,这个 $\pi$ 被成为最优策略,进而得到**最优状态价值函数**。同理得到最**优状态动作价值函数**。 376 | $$ 377 | \large 378 | \begin{cases} v_*(s)\ \dot{=}\ \ \underset{\pi}{max} \ v_\pi(s) & \text{} \\ 379 | q_*(s,a)\ \dot{=}\ \ \underset{\pi}{max} \ q_\pi(s,a) & \text{} & \text {} \end{cases} 380 | $$ 381 | 记 $\pi_* = \underset{\pi}{argmax} \ v_\pi(s) = \underset{\pi}{argmax} \ q_\pi(s,a)$,含义是 $\pi_*$ 可以使得 $ v_*(s)$达到最大值,同样的,也可以使得 382 | 383 | $q_\pi(s,a)$ 达到最大值。 384 | 385 | 由以上公式得: 386 | $$ 387 | \large 388 | \begin{cases}v_*(s)=\underset{\pi}{max}\ v_\pi(s)= v_{\pi_*}(s) & \text{(7)} \\ 389 | q_*(s,a)=\underset{\pi}{max}\ q_\pi(s,a)= q_{\pi_*}(s,a) & \text{} & \text {(8)} \end{cases} 390 | $$ 391 | 392 | > 值得注意的一点是$ v_*(s)$ 强调的是,不管你采用的是什么策略,只要状态价值函数达到最大值,而 $v_{\pi_*}(s)$ 则更为强调的是 $\pi$ ,达到最大的状态价值函数所采取的最优的那个 $\pi$ 393 | 394 | 此时,我们再探讨一下$v_{\pi_*}(s)$ 和 $q_{\pi_*}(s,a)$ 的关系。在贝尔曼期望方程中,我们提到过 $v_\pi(s) \leq \underset{a}{max}\ q_\pi(s,a)$ ,那么在这里是不是也由类似的关系$v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)$ 成立?我们知道 $v_{\pi_*}(s)$ 是一种策略,并且是最优的策略,$q_{\pi_*}(s,a)$ 是代表一个“分支”,因为 $v_{\pi_*}(s)$ 是一个加权平均值,但同样的,和$v_\pi(s)$ 不同的是,$v_{\pi_*}(s)$ 是最优策略的加权平均,那么是不是可以把小于号去掉,写成下面的形式: 395 | $$ 396 | \large 397 | v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a) 398 | $$ 399 | 400 | 401 | 假定 $v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)$ 中的 $\pi_*$ 还是一个普通的策略,那么一定满足 $v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)$ ,这一点我们已经提到过,如果说 $v_{\pi_*}(s)< \underset{a}{max}\ q_\pi(s,a)$ ,说明$v_{\pi_*}(s)$ 还有提高的空间,并不是最优策略,这和条件矛盾了。所以这个小于不成立,得证:$v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a)$ 402 | 403 | 详细证明过程如下: 404 | 405 | ![image-20201129190023306](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201129190023306.png) 406 | 407 | 其实,上面的式子是由 (3)式 408 | $$ 409 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) \quad\quad (3) 410 | $$ 411 | 演变而来的。$v_{\pi_*}(s)$ 直接取最大值时候和 $\underset{a}{max}\ q_\pi(s,a)$ 的最大值是相等的。也就是此时不用加权平均了,直接是 $v_\pi(a) = q_\pi(s,a)$ 。那么从原先的(4)式能不能也得出相似 412 | $$ 413 | q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad (4) 414 | $$ 415 | 的结论,把求和符号去掉,直接等于最大值呢?答案是否定的,因为$v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a)$ 是作用在`action`上的,在公式中也可以看出,换句话说,我们对于下图的a1,a2,a3这里是可以控制的。但是对于下图中的蓝色虚线部分,系统状态转移是无法控制的。 416 | 417 | ![image-20201128135658979](https://gitee.com/YJLAugus/pic-go/raw/master/img/hss02.svg) 418 | 419 | 所以,原先的两组公式(3)、(4)并 结合(7)、(8) 420 | $$ 421 | \large{ 422 | v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\ (3) \\ 423 | 424 | q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (4) 425 | } 426 | $$ 427 | 并进行一个推导,得出另外的两组公式(9)、(10)如下: 428 | $$ 429 | \large{ 430 | v_*(s)=\underset{a}{max}\ q_*(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad (9) \\ 431 | q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma v_*(s')] \quad\quad\quad (10) 432 | } 433 | $$ 434 | 435 | ### 贝尔曼最优方程 436 | 437 | (10)式带入(9)式得: 438 | $$ 439 | \large{ 440 | v_*(s)=\underset{a}{max}\sum_{s',r}P(s',r \mid s,a)[r+\gamma v_\pi(s')] \quad\quad(11) \\ 441 | 442 | 443 | } 444 | $$ 445 | (9)式带入(10)式得: 446 | $$ 447 | \large 448 | q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma \underset{a'}{max}\ q_*(s',a') ] \quad\quad (12) 449 | $$ 450 | (11)、(12)被称为**贝尔曼最优方程**。 451 | 452 | * 一个实例:还是以上面的例子讲解,我们这次以动作价值函数 $q_*(s,a)$ 为例来求解 $v_*(s),q_*(s,a) $ 453 | 454 | image-20201129160656460 455 | 456 | 根据(12)式 457 | 458 | $$ 459 | \large 460 | q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma \underset{a'}{max}\ q_*(s',a') ] \quad\quad (12) 461 | $$ 462 | 可得方程组如下: 463 | 464 | $$ 465 | \large{\begin{align} 466 | q_*(s_4, study) & = 10 \\ 467 | q_*(s_4, pub) & = 1 + 0.2 * \underset{a'}{max}q_*(s_2, a') + 0.4 * max_{a'}q_*(s_3, a') + 0.4 * \underset{a'}{max}q_*(s_4, a') \\ 468 | q_*(s_3, sleep) & = 0 \\ 469 | q_*(s_3, study) & = -2 + \underset{a'}{max}q_*(s_4, a') \\ 470 | q_*(s_2, study) & = -2 + \underset{a'}{max}q_*(s_3, a') \\ 471 | q_*(s_2, facebook) & = -1 + \underset{a'}{max}q_*(s_1, a') \\ 472 | q_*(s_1, facebook) & = -1 + \underset{a'}{max}q_*(s_1, a') \\ 473 | q_*(s_1, quit) & = 0 + \underset{a'}{max}q_*(s_2, a') 474 | \end{align}} 475 | $$ 476 | 477 | 然后求出所有的 $q_*(s,a)$,然后再利用 $v_*(s) = \underset{a'}{max}q_*(s,a)$,就可以求出所有的 $v_*(s)$,最终结果如下图所示: 478 | 479 | image-20201130141108720 480 | 481 | 详细的计算过程可以看下视频 的简单分析。https://www.bilibili.com/video/BV1Fi4y157vR/ 482 | 483 | ### Summary 484 | 485 | ![image-20201129210325397](https://gitee.com/YJLAugus/pic-go/raw/master/img/image-20201129210325397.png) 486 | 487 | ## 参考文献 488 | 489 | https://www.bilibili.com/video/BV1RA411q7wt 490 | 491 | https://www.cnblogs.com/pinard/p/9426283.html 492 | 493 | https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf 494 | 495 | https://www.cnblogs.com/jsfantasy/p/jsfantasy.html -------------------------------------------------------------------------------- /01-MDP-马尔可夫决策过程/强化学习入门基础——马尔可夫决策过程(MDP).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/01-MDP-马尔可夫决策过程/强化学习入门基础——马尔可夫决策过程(MDP).pdf -------------------------------------------------------------------------------- /02-DP-动态规划/img/jieduan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
π  
π  
v1(s)
v1(s)
vπ(s)
vπ(s)
····
····
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /02-DP-动态规划/img/jieduan1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
π  
π  
v1(s)
v1(s)
vπ(s)
vπ(s)
····
····
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /02-DP-动态规划/img/pe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
π  
π  
qπ(s,a)  
qπ(s,a)  
π'  
π'  
Policy Evaluation
Policy Evaluation
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /02-DP-动态规划/img/veq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
t
t
π ' 
π ' 
vπ =vπ' =v* 
vπ =vπ' =v* 
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /02-DP-动态规划/强化学习-动态规划-DP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/02-DP-动态规划/强化学习-动态规划-DP.pdf -------------------------------------------------------------------------------- /03-Monte Carlo, MCMC-蒙特卡洛方法/img/MonteCarlo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/03-Monte Carlo, MCMC-蒙特卡洛方法/img/MonteCarlo.jpg -------------------------------------------------------------------------------- /03-Monte Carlo, MCMC-蒙特卡洛方法/img/mtclpf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
Author: YJLAugus, Blog: https://www.cnblogs.com/yjlaugus
x
x
P(x)
P(x)
Viewer does not support full SVG 1.1
-------------------------------------------------------------------------------- /03-Monte Carlo, MCMC-蒙特卡洛方法/img/panda.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/03-Monte Carlo, MCMC-蒙特卡洛方法/img/panda.jpg -------------------------------------------------------------------------------- /03-Monte Carlo, MCMC-蒙特卡洛方法/img/pi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/03-Monte Carlo, MCMC-蒙特卡洛方法/img/pi.png -------------------------------------------------------------------------------- /03-Monte Carlo, MCMC-蒙特卡洛方法/蒙特卡洛方法.md: -------------------------------------------------------------------------------- 1 | # 蒙特卡洛(Markov Chain & Monte Carlo, MCMC)方法 2 | 3 | > 作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Learning-Notes,如果感觉对您有所帮助,烦请点个⭐Star。 4 | 5 | ## 背景介绍 6 | 7 | 20世纪40年代,在John von Neumann,Stanislaw Ulam 和 Nicholas Metropolis 在洛斯阿拉莫斯国家实验室为核武器计划工作时,发明了蒙特卡罗方法。因为Ulam的叔叔经常在蒙特卡洛赌场输钱得名,而蒙特卡罗方法正是以概率为基础的方法。 8 | 9 | 蒙特卡洛是摩纳哥的一个小城,蒙特卡洛是[摩纳哥](https://baike.baidu.com/item/摩纳哥/127488)公国的一座城市,位于欧洲[地中海](https://baike.baidu.com/item/地中海/11515)之滨、[法国](https://baike.baidu.com/item/法国/1173384)的东南方,属于一个版图很小的国家[摩纳哥公国](https://baike.baidu.com/item/摩纳哥公国/4428850),世人称之为“赌博之国”、“袖珍之国”、“邮票小国” , 很漂亮的一座小城。 10 | 11 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/MonteCarlo.jpg) 12 | 13 | ## 算法介绍 14 | 15 | * 不是 “蒙特卡洛” 发明的,“蒙特卡洛”仅仅是一个城市的名字。由冯·诺依曼、乌拉姆等人发明。这是基于概率的方法的一个统称。 16 | 17 | * 常于拉斯维加斯(Las Vegas)方法比较。两种方法各有侧重点: 18 | 19 | 蒙特卡洛(Monte Carlo):民意调查——抽样,并估算到最优解。采样越多,越近似最优解。 20 | 21 | 拉斯维加斯(Las Vegas):找人——必须要精确到找到那个人。采样越多,越有机会找到最优解。 22 | 23 | * 相关算法: 24 | 25 | 蒙特卡洛算法、蒙特卡洛模拟、蒙特卡洛过程、蒙特卡洛搜索树(AlphaGo就是基于此算法) 26 | 27 | ### 工作原理 28 | 29 | 不断抽样(近似采样),逐渐逼近最优解。 30 | 31 | ### 为什么要采样(采样动机)? 32 | 33 | * 采样本身就是常见的任务:机器学习中,产生一堆样本,然后进行采样分析。 34 | * `求和`或者是`求积分`的运算(比如下面的例子)。 35 | 36 | ### 假定已经采样完毕,那么什么是好的样本? 37 | 38 | * 样本趋向于高概率区域(同时兼顾其他区域):红色球区域 39 | * 样本与样本之间相互独立: 也就是说 在下图红色球最密集区域的球不能有相互联系,不然依然是采样失败的,不能算好的样本。 40 | 41 | 如下图的概率密度函数图所示,只有样本落在高概率的区域,越集中的样本才算是好的样本(红色球),相反的,绿色球样本就不算是好的样本 42 | 43 | 44 | 45 | ![](https://gitee.com/YJLAugus/pic-go/raw/master/img/mtclpf.svg) 46 | 47 | ### 一个例子 48 | 49 | 利用蒙特卡洛方法计算圆周率`pi` 。如下图所示: 50 | 51 | 52 | 53 | 54 | 55 | 从上面可得,扇形的面积$S_扇 = \pi·1^2·1 ·\frac{1}{4}=\frac{\pi}{4}$。正方形的面积为$S_方 = 1$ ,可得:一个关系如下: 56 | $$ 57 | \frac {扇形面积}{正方形面积} = \frac{\pi}{4} 58 | $$ 59 | 60 | 61 | 接下来,如果在下面的图中随机**打点**,那么点落在绿色扇形区域的概率就是$P = \frac {扇形面积}{正方形面积} = \frac{\pi}{4}$ ,并最终得到 $\pi = 4P$ 62 | 63 | ![image-20201208140817233](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201208140817233.png) 64 | 65 | 在程序中实现我们的算法:可以发现,随着样本空间的增加,利用蒙特卡洛算法得到$\pi$ 的值越接近真实的$\pi$ 值。 66 | 67 | ```python 68 | import random 69 | total = 1000000 70 | in_count = 0 71 | 72 | for i in range(total): 73 | x = random.random() 74 | y = random.random() 75 | 76 | dis = (x ** 2 + y ** 2) ** 0.5 77 | 78 | if dis <= 1: 79 | in_count += 1 80 | print('Π是:', 4*in_count/total) 81 | 82 | # PI = 概率 * 4 83 | # 5 Π是: 4.0 84 | # 100 Π是: 3.28 85 | # 1000 Π是: 3.244 86 | # 10000 Π是: 3.1524 87 | # 100000 Π是: 3.15212 88 | # 1000000 Π是: 3.141696 89 | ``` 90 | 91 | ## 简单应用 92 | 93 | 现在进行一个简单的应用,对于上面的规则形状,我们可以很方便的计算出图像的面积,但是对于不规则的图形,就不是那么容易求得了,这里就用蒙特卡洛方法进行计算不规则图形的面积。如下图,如果我们计算图中白色区域的面积,该如何去求得呢? 94 | 95 | ![image-20201208192324680](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201208192324680.png) 96 | 97 | 根据,蒙特卡洛方法,我们还是采用“打点”的方式,总点数为 `total_count` ,在白色区域的点数为`in_count`。那么点落在白色区域的概率就是 `in_count/total_count`,最后用这个概率乘以整张图的面积,就可以大概的估算出白色区域的面积,代码如下: 98 | 99 | ```python 100 | from PIL import Image 101 | import random 102 | 103 | img = Image.open('panda.jpg') 104 | 105 | # 2. 获取像素的颜色 106 | total_count = 1000000 107 | in_count = 0 108 | 109 | for i in range(total_count): 110 | x = random.randint(0, img.width-1) 111 | y = random.randint(0, img.height-1) 112 | # color = img.getpixel((x, y)) 113 | # print(color) 114 | if img.getpixel((x, y)) == (255, 255, 255): 115 | in_count += 1 116 | p = in_count/total_count 117 | print(int(img.width*img.height * p)) 118 | # 20 132240 119 | # 100 143811 120 | # 1000 131744 121 | # 10000 130388 122 | # 100000 130739 123 | # 1000000 130699 124 | # 1.图片读取 125 | ``` 126 | 127 | 接下来进行一个准确的遍历。也就是白色区域的真正的面积值,可以发现,和上面的几乎一致,利用蒙特卡洛算法得到的是 130699,准确的数据是130686, 相差无几。 128 | 129 | ```python 130 | # right: 130686 131 | # 1.图片读取 132 | from PIL import Image 133 | import random 134 | 135 | img = Image.open('panda.jpg') 136 | 137 | # 2. 获取像素的颜色 138 | count = 0 139 | for x in range(img.width): 140 | for y in range(img.height): 141 | if (255, 255, 255) == img.getpixel((x,y)): 142 | count += 1 143 | print(count) 144 | ``` 145 | 146 | ## 参考文献 147 | 148 | https://www.bilibili.com/video/BV1Gs411g7EJ?t=1690 -------------------------------------------------------------------------------- /04-Model-free prediction-免模型预测/img/blackj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/04-Model-free prediction-免模型预测/img/blackj.jpg -------------------------------------------------------------------------------- /04-Model-free prediction-免模型预测/免模型学习预测.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/04-Model-free prediction-免模型预测/免模型学习预测.pdf -------------------------------------------------------------------------------- /Bookcover300g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YJLAugus/Reinforcement-Learning-Notes/f49e5d51118bb7e7ef4166f659ab9c3ca59eaee0/Bookcover300g.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # 强化学习基础入门(Reinforcement Learning) 3 | 4 | # Reinforcement-Learning-Notes 5 | 6 | 强化学习,从MDP开始 7 | 8 |
9 | Cover of book 10 |
11 | 12 | ## 在线阅读 13 | 14 | https://www.yuque.com/yjlaugus/reinforcement-learning-notes 15 | 16 | ## 完整书籍 17 | 18 | **百度网盘:** 链接: https://pan.baidu.com/s/19QsCpRG8sN3zfzsliuromQ 提取码: xm8w 19 | 20 | **Google Drive:** https://drive.google.com/file/d/1ZV0a6LdMo7Op0vAXvWTPnE3NYz60DRV-/view?usp=sharing 21 | 22 | ## 摘要说明 23 | 24 | 因为前辈们已经整理出了一套相当不错的教程,已经各个资源的整合,这里就不在进行逐一整理,一个是为了提高时间效率,另一个是用于记录自己学习中的有趣点和自己的见解。 25 | 26 | ## 参考文献 27 | 28 | > 参考笔记 : https://datawhalechina.github.io/leedeeprl-notes 29 | > 代码仓库: https://github.com/datawhalechina/leedeeprl-notes 30 | 31 | ## 基础学习 32 | 33 | ### 第一部分: 《强化系统纲要》 34 | 35 | > 视频地址:https://www.bilibili.com/video/BV1LE411G7Xj 36 | > 课程资料:https://github.com/zhoubolei/introRL 37 | > 课件地址:https://github.com/zhoubolei/introRL/blob/master/lecture1.pdf 38 | > 39 | > 教材参考:http://www.incompleteideas.net/book/the-book.html 40 | 41 | ### 第二部分: 李宏毅《深度强化学习》 42 | >视频地址: https://www.bilibili.com/video/BV1UE411G78S 43 | >课件地址 : http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html 44 | 45 | ### 第三部分: 《百度强化学习》 46 | 47 | > 视频地址: https://aistudio.baidu.com/aistudio/course/introduce/1335 48 | 49 | ### 补充 50 | 51 | > **David Silver** 52 | > 视频地址:https://www.bilibili.com/video/av37295048/?spm_id_from=333.788.b_636f6d6d656e74.140 53 | > 54 | > 课件:https://www.davidsilver.uk/teaching/ 55 | > 56 | > 笔记: https://zhuanlan.zhihu.com/p/28084751 57 | > 58 | > 59 | 60 | ## 补充说明 61 | 62 | ### PyTorch 63 | 64 | > 视频链接: https://www.bilibili.com/video/BV1Rv411y7oE 65 | 66 | ### 刘建平 67 | 68 | > https://github.com/ljpzzz/machinelearning 很多例子|文章 69 | 70 | ### 周杰 71 | 72 | > https://github.com/shuhuai007/Machine-Learning-Session 讲解透彻|视频 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /版权logo.drawio: -------------------------------------------------------------------------------- 1 | 5Vhdb5swFP01SNtDKrBDkj6GNOk+uqlSNkV7dMABWoOZMSHZr5+NbT4CbVOp6qq1lRp8fO1r33OOHWrBRXK4ZiiLvtEAEwvYwcGCVxYAjg3G4kMiR4W4l0ABIYsDHdQA6/gPNiM1WsQBzjuBnFLC46wL+jRNsc87GGKMlt2wHSXdrBkKcQ9Y+4j00U0c8EihMzBt8E84DiOT2Zlcqp4EmWC9kzxCAS1bEFxacMEo5eopOSwwkcUzdVHjVg/01gtjOOXnDMg2Nry9v1/ig2vf0O9X46/7nyPoqmn2iBR6x/OCR5RZcC7gX19u5kVY5BZYiJZHaFjhE5RkFvTSbS4/RJuIFXhIhEQM76ppJr8LuTEv4lwyNZfrAquyLC/8dCvmyS98mgjkeEeQymBGiKfwmSOJGrdCZqyuOD8aGjk+qDkTIgBHPO5iQhaUyJ2KALhz5a/cBYnDVGC+KCsWnd4eMx4LQcx1RxIHgZzWK6OY43WGfJmjFPIXGKNFGmBZcVvmoClv5VA/9fLa1Gk2ZS58aEGaymtME8zZUYToXmCMpX0FoZZZ2agUzjQWtRRq5Ii0McJ66kY74kHLZ1hKG8DSHyNvtsZsvF1v6GeGZ6NxT0k9FnAgvKWblAmZhTRFZNmgJ/VrYm4ozTRxd5jzoz4oUMHpCa2i5LrTcetSy8QP2kZDOS2Yjx/ZoDl+EAsxfyQODBPHMEE83nfX8eIsOAMsKH/kGUrlQUlQnncsKktWkWS3TdjirR04yqviysPBcbOD8uuJc63FypLSq32pUhtr9k6Pk/aT1s05o/fYGCulKT7xs4Ze2sp9XfX8OqCshy08tjsWBrO+hcev6WDQ086+Fk+xNQQ6bWIb+EP+8f1QB8Ebow4+Qt3zfF+79JT3vqtbfcNef1eacJ2nNTF5TU1M/vcL2T3zQob/8kLuf8E2Zum5R5bqrIt3Ki7egVsXWN504G/jTZWgZ9nWQt6LWcf2GzvAp2eYNQ3m8o22KXKA8qiqkvMynuuXq1UOd6AcBjvbSjrDLY0rqZvrdNplAzpudwp1FOhR7XfcJyYCk5OJ1FnRm6iirN72EIui2byqq/DmHx5w+Rc= --------------------------------------------------------------------------------