Skip to content

Latest commit

 

History

History
1038 lines (412 loc) · 18.2 KB

File metadata and controls

1038 lines (412 loc) · 18.2 KB

原始视频: bilibili西湖大学赵世钰<<强化学习>>

一. 基本概念

1. grid-world example

网格分为: 可达、禁止、目标单元格,边界

2. State和State space

3. Action

Action space是和state有关的, 不同的state会有不同的Action space, 写作 $A(S_i)$

4. State transition

5. Forbidden area

6. Tabular respresentation

这种表示方式只能表示确定性(deterministic)的例子,一般不用

7. State transition probability

使用条件概率来表示状态转移:

当前在s1状态,采取a2动作,下一步在s2状态的概率为1;

当前在s1状态,采取a2动作,下一步在si(i不等于2)状态的概率为0;

8. Policy

在强化学习中,我们使用 $\pi$ 来表示策略。在从一个状态转移到另一个状态的时候,采取不同的动作的概率之和应为1。

9. Reward

reward只依赖于当前状态和采取的动作,不取决于它下一刻处于什么状态

10. Trajectory and return

11. Discounted return

12. Episode

二. Markov decision process(MDP)

三. 贝尔曼公式

1. 引出

在上面的公式中, r已知、$\gamma$ 已知、P已知,则v可求

2. 公式推导

注意: 这里的$\pi(a|s)$指的是当前状态为是s,采取动作a的概率

贝尔曼公式解释: 在状态s时,对于一个给定的策略$\pi$,所能获得的state value值为两部分,第一部分是即时奖励,第二部分是未来奖励。

其中,$ \pi ( a | s )$含义为当前状态为s, 采取动作a的概率, $\sum _ { a }$含义为遍历所有可能得动作a;

$p(r|s, a)$含义为当前所在状态为s, 且采取的动作为a,获得的reward值为r的概率为$p(r|s, a)$,$\sum _ { r }$含义为遍历所有可能获得的reward值r;

$p(s'|s, a)$含义为当前所在状态为s采取动作a下一时刻跳转到状态s'的概率为$p(s'|s, a)$。$\sum _ { s' }$含义为遍历所有下一时刻可能到达的状态s', $v_\pi(s')$含义为下一时刻到达s'时的state value值。

这里求解的步骤略过

3. 公式的向量形式

≜符号在数学上的含义为“等价于”

$p_{\pi}(s_j|s_i)$的含义为从状态$s_i$跳到状态$s_j$的概率,看下面的例子更清晰

(插入)Policy evaluation概念

注意这里的$v_k$是向量,先假设一个$v_0$向量值,然后可以一直递归的求解$v_2 v_3 v_4$......,当k趋近于无穷大的时候,求得的序列${v_k}$向量就等价于原始的$v_\pi$(证明略)

代码实现见demo-bellman.ipynb

4. action value

**已知$q_\pi(s, a)$(action value)求解$v_\pi(s)$(state value)公式解释:**在某个状态s处的state value值$v_\pi(s)$等于在该状态对可能采取的动作a的概率乘以在该状态采取动作a后得到的action value之积的和,也就是所有action value的期望值。

已知$v_\pi(s)$(state value)求解$q_\pi(s, a)$(action value)公式解释:

公式第一项:$p(r|s, a)$含义为当前所在状态为s, 且采取的动作为a,获得的reward值为r的概率为$p(r|s, a)$。因此第一项含义为当前在状态s采取动作a后能获得的即时reward的期望值。

公式第二项: $p(s'|s, a)$当前所在状态为s采取动作a下一时刻跳转到状态s'的概率为$p(s'|s, a)$。因此第二项含义为当前在状态s采取动作a后能到达的所有状态s'的state value的期望值。

由上图中的公式(3)和公式(4)我们可以看出,如果在状态s处的action只有一个,且概率为1,那么$v_\pi(s)$就等于$q_\pi(s, a)$。

三. 贝尔曼最优公式

1. 引入

$argmax_a$在数学上表示: 待求参数是a, 且要求是后面的表达式的值最大,返回值为a

2. 公式定义与推导

$\max_{\pi}$在数学上表示: 待求参数是$\pi$, 且要求是后面的表达式的值最大,返回值为后面的表达式的值

3. 公式求解

上图中的定理就是为什么在求解贝尔曼公式时可以迭代求解的原因

4. 分析贝尔曼最优公式一些性质

四、值迭代算法与策略迭代算法

1.值迭代算法求解贝尔曼最优公式策略

值迭代算法流程:

定义好进入到每个state的reward值---->初始化v_pi---->根据初始化好的v_0值计算每个state的action value值(公式1),记作q_table---->根据q_table中记录的action value值,选取每个state位置的最大action value值对应的action更新策略(公式2)---->更新v_pi,更新方式为将每个state位置的最大action value值赋值给v_pi(公式3)---->计算每个state的action value值......

公式1:$q_k(s,a) = \sum_r p(r|s,a)r + \gamma \sum_{s'} p(s'|s,a)v_k(s')$

公式2:$\pi_{k+1}(a|s)=\left{\begin{array}{ll}1 & a=a_k^(s) \0 & a \neq a_k^(s)\end{array}\right.$

公式3: $v_{k+1}(s) = \max_a q_k(a, s)$

代码实现见: "codes/value-iteration-bellman.ipynb"

2.策略迭代算法求解贝尔曼最优公式策略

代码实现见: "codes/policy-iteration-bellman.ipynb"

2.截断策略迭代算法求解贝尔曼最优公式策略

五. 蒙特卡洛方法

1. 引出

2. MC Basic

蒙特卡洛算法的核心思想:

我们求解policy的关键在于求解每个state处的action value,也就是$q_{{\pi}k}$,而求解$q_{{\pi}k}$的一种方式是根据state value和action value的转换公式(比如policy iteration算法),此种方式被称为model-base方法;而另一种方式就是直接根据定义,也就是在一个state处的$q_{{\pi}k}$,等于从这个state处出发可能产生的所有episode的return的期望,此种方式被称为model-free方法

3. MC Basic example

4. MC Exploring Starts

MC-Exploring-Starts缺点很明显,就是要确保所有的state和所有的action都要被探索到,因为没被探索到的action有可能就是最优的action,而全部被探索往往是无法确保的,要确保的话,就需要从每一个(state, action)对儿出发产生episode,这样就又退化成了MC-Basic

解决上述问题的方案就是使用MC Epsilon-Greedy

5. MC Epsilon-Greedy

greedy在这里的含义为,当对某个state来说,如果最大的action value对应的action为a*,那么当产生episode的时候,选择a*的概率是最大的,但是也有一定比较小的概率选择其他的action,这样就保证了不会遗漏每一个action

6. MC Epsilon-Greedy examples

所以如果采用MC Epsilon算法时, 一般会先设置一个大的epsilon值进行探索,然后逐渐减小epsilon值直到0,以能获取最优策略

六. 随机近似理论与随机梯度下降

1. 引出

2. Robbins-Monro算法

注意,该公式和上面引出里的公式是一样的,随机近似理论

代码实现见: "codes/Robbins-Monro.ipynb"

其实这个公式和SGD是一模一样的,在随机梯度下降时,上面的w为待求解参数,$a_k$为学习率,$g(w_k)$为目标函数的导数

3. SGD

上面这个例子实际上目的是求w*,也就是求X的期望,这种情况就等同于mean estimation算法,所以说mean estimation算法是SGD的一种特殊情况。

由上述化简出的公式也可以看出,和mean estimation算法一模一样

SGD的性质:在距离最优点越远的时候,SGD的前进方向和GD越接近;在距离最优点越近的时候,SGD的前进方向和GD越不接近。因此SGD只会在收敛的时候会产生随机性,而在未收敛时,和GD一样,会有一个正确的前进方向。(证明课件略)

代码实现见: "codes/SGD-MBGD-BGD.ipynb"

4. MBGD、BGD

七. 时序差分算法

1. 引出

2. TD learning

$s_0, r_1, s_1, r_2......$代表的是在策略$\pi$下产生的一条episode

这里的$v_{t+?}(s_t)$代表的含义均是对$s_t$处的state value的估计,只不过是在这个episode上时,不同时刻对$s_t$处的state value的估计,比如,在t=3时刻,所在位置为$s_3$,利用公式那么对$s_3$的state value会有一次更新,它的state value值从$v_{3}(s_3)$变为$v_4(s_3)$,其余所有state处的state value均保持不变。

公式(2)的含义为,当使用TD learning算法更新state value时,只会更新当前所在state处的state value,其余所有的state value不会被更新

$v_t(s_t)$代表的含义为: 在已经选中一条episode后,当前时刻为t,当前所在state为$s_t$,当前对状态$s_t$的state value的估计值为$v_t(s_t)$

$v_{t+1}(s_t)$代表的含义为: 在这个episode上当前时刻为t+1,当前所在state为$s_{t+1}$,对上一时刻状态$s_t$的state value的估计值为$v_{t+1}(s_t)$

具体可以看Q-learning代码实现更直观

3. Sarsa

total reward为什么是趋近于0而不是大于0,因为这是使用了epsilon-greedy的方法,也就是对每个state,还是会有一定的概率选择非最优的action,所以还会引入负的reward

4. Expected Sarsa(不重要)

5. n-step Sarsa(不重要)

6. Q-learning

On-policy含义为:在生成一个episode的经验的过程中,改进当前策略

Off-policy含义为:先生成一个episode的经验,然后根据该经验改进当前策略

注意off-policy版本的这里的$\pi_b$和$\pi_T$是两个不同的策略,$\pi_b$用来生成数据(产生episode),$\pi_T$是待优化的目标策略

7. TD-learning系列算法总结

八. 值函数近似

1. 引出

这里的T代表转置的意思,一般,一个一维的向量默认为列向量

2. 通过值函数近似估计state value

如果是数据是均匀分布,那么这里的目标函数实际上就等同于深度学习里的MSE

而实际上在强化学习中,数据分布是不均匀的(比如网格世界中某些state会被频繁访问,而有些几乎不会被访问),所以目标函数实际上应该是一个带权重的MSE

3. 例子

4. 值函数近似Sarsa

5. 值函数近似Q-learning

6. Deep Q-learning

基本思想就是先初始化两个网络,参数相同,一个用来计算上图中的红色的action value,另一个用来计算上图中蓝色的action value;然后在训练过程中,先固定住红色网络的参数,更新蓝色网络参数,一定轮次后将蓝色网络的参数赋值给红色网络。如此循环往复

7. Deep Q-learning例子

从上图可以看出,在强化学习中,即使损失函数一直在下降,也不能代表所估计的策略是好的策略,因为在数据不充足的情况下,神经网络逼近的只是当前数据下的'最优'

九. 策略梯度方法

1. 基本思路

2. 目标函数

3. 目标函数的梯度

4. 梯度上升算法REINFORCE