Richard S.Sutton 《强化学习》 学习笔记 第一章 第二章

根据Richard S.Sutton的《强化学习》第二版为主要学习资料,整理的学习笔记

目录

第1章 导论

1.7 历史

I 表格型求解方法

第二章 多臂赌博机

2.1 一个k臂赌博机问题

2.2 动作-价值方法

2.3 10臂测试平台

2.4 增量式实现

2.5 跟踪一个非平稳问题

2.6 乐观初始化

2.7 基于置信度上界的动作选择

2.8 梯度赌博机算法

2.9 关联搜索(上下文相关的赌博机)

2.10 本章小结


第1章 导论

1.7 历史

三条主线:

  1. 动物学习心理学试错法
  2. 最优控制问题以及使用价值函数和动态规划的解决方案
  3. 时序差分方法

最优控制:

  • 最优控制:最早用来描述控制器的问题,目标是使得动态系统随时间变化的某种量度最小化或最大化。(最优控制是指在给定的约束条件下,寻求一个控制,使给定的系统性能指标达到极大值(或极小值))
  • 20世纪,运用了动态系统状态和价值函数(最优回报函数),定义了一个方程(贝尔曼方程)。
  • 通过求解这个方程来解决最优控制问题的方法被称为动态规划(DP)
  • Bellman提出最优控制问题的离散随机版本,被称为马尔科夫决策过程(MDP)

时序差分:

  • 特点:由时序上连续地对同一个量的估计驱动的,如下赢井字棋的概率

补充:

  • 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表格式。
  • 贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现。(由下一个时刻的值更新上一个时刻的值)

   Richard S.Sutton 《强化学习》 学习笔记 第一章 第二章_第1张图片

B站视频:https://www.bilibili.com/video/BV1fN41197ES?from=search&seid=13760016408918511356

 

I 表格型求解方法

赌博机问题:只有一个状态

MDP:解决强化学习问题的一般框架

DP:具有严格清晰的教学基础且已经被深入研究,但需要完整、精确的环境模型

MC:不需要环境模型,容易理解,但是不适合一步一步增量式更新计算

TD:不需要环境模型,完全增量式,但过程复杂,难以分析。

 

第二章 多臂赌博机

2.1 一个k臂赌博机问题

  1. 强化学习:训练信号是用来评估给定动作的好坏的,而不是通过给出正确动作范例来进行直接的指导。因此反复实验很有必要。
  2. 机器学习:给出正确动作范例来进行直接的指导。
  • k臂赌博机:重复地在k个选项或动作中进行选择。每次做出选择之后,都会得到一定数值的收益,收益由你选择的动作决定的平稳概率分布产生。目标是在某一时间内最大化总收益的期望。
  • 价值:k个动作被选择时的收益的平均/期望q_*(a)(就是每个动作产生收益的平均值)。如果能知道这个值,就每次选择值最大的就好啦,但实际上你是不知道的,你只有一个估计值Q_t(a)
  • 选择Q_t(a)最高的称为开发(exploit),反之称为试探(explore)

2.2 动作-价值方法

  • 动作价值方法:使用这些价值的估计Q_t(a)来进行动作的选择;动作价值的真实值是选择这个动作时的期望收益q_*(a)
  • \varepsilon -greedy:大部分时间都表现地贪心,但偶尔(一个很小的概率\varepsilon)以独立于动作-价值估计值的方式从所有动作中等概率随机选择

2.3 10臂测试平台

  • 做了一个测试,k=10,评估贪心算法和\varepsilon-贪心算法;
  • 实验结果:贪心方法的平均收益最初增长地比较快,后面稳定在一个较低的水平;\varepsilon=0.1效果更好
  • 分析:收益的方差为0,贪心算法更好;方差大,\varepsilon-贪心算法更好

2.4 增量式实现

  • 讨论如何高效地计算收益均值,尤其是保持常数级的内存需求和常数级的单时刻计算量
  • 传统方法:需要维护所有收益的记录(因为是将所有收益加起来再除以次数)
  • 通过公式推导:Q_{n+1} = Q_n+\frac{1}{n}[R_n-Q_n]      新估计值<-旧估计值+步长*[目标-旧估计值] ;   [目标-旧估计值] 是估计值的误差 (第n次的收益 - 被选择n-1次后估计的动作价值.这里有点疑问,为什么要让这两者相似呢);步长常记作\alpha _t(a)

2.5 跟踪一个非平稳问题

  • 取平均方法对平稳的赌博机问题是合适的,即收益的概率分布不随着时间变化的赌博机问题。但如何赌博机的收益概率随着时间变化,就不合适了。
  • 方法:给近期收益赋予比过去很久的收益更高的权值,如使用固定步长;Q_{n+1}=(1-\alpha )Q_1+\sum_{i=1}^{n}\alpha(1-\alpha)^{n-i}R_i,赋予R_i的权值随着相隔次数的增加而递减

2.6 乐观初始化

  • 乐观初始价值:鼓励试探的技术
  • 即用一个大于0的数,替换掉原来的初始值0;会让系统进行大量的试探操作。(因为无论如何选择,都会比初始值低,导致选择另一个动作)

2.7 基于置信度上界的动作选择

  • \varepsilon-贪心算法会尝试选择非贪心的动作,但是这是一种盲目选择的方法。在非贪心动作中,最好是根据他们的潜力来选择可能事实上是最优的动作,需要考虑到他们的估计有多接近最大值,以及这些估计的不确定性。
  • UCB(upper confidence bound 置信度上界):A_t = \operatorname*{argmax}\limits_{a}[Q_t(a)+c\sqrt{\frac{lnt}{N_t(a)}}]   其中N_t(a)表示在时刻t之前动作a被选择的次数。c是一个正数,控制试探的程度。
  1. 平方根项是对a动作值估计的不确定性或方差的度量。
  2. 每次选a时,不确定性会减小
  3. 每次选择了除了a以外的动作,不确定性增加。(分母不变,分子变大)
  4. 问题:处理非平稳问题;处理大的状态空间,复杂。

2.8 梯度赌博机算法

  • 针对每个动作a考虑学习一个数值化偏好函数H_t(a)。偏好函数越大,越频繁地被选择。
  • 偏好函数并不是从“收益”的意义上提出的。只有一个动作对另一个动作的相对偏好才是重要的。
  • 如果给每一个动作的偏好函数都加上1000,对于右边softmax分布确定的动作概率不受到影响:Pr{\left \{ A_t = a\right \}} = \frac{e^{H_t(a)}}{\sum_{b=1}^{k}{e^{H_t(a)}}  (这里不是很明白)
  • 基于随机梯度上升的思想,提出了自然学习算法。即偏好函数更新方式,公式这里就不写了。

2.9 关联搜索(上下文相关的赌博机)

  • 前文只考虑了非关联的任务:
  1. 当任务是平稳的时候,学习期会试图寻找一个最佳的动作。
  2. 当任务是非平稳的时候,最佳动作随着时间变化。
  • 实际上,往往有不止一种情境,它们的目标是学习一种策略:一个从特定情境到最优动作的映射。
  • 例子:有一系列不同的k臂赌博机任务,每一步都随机面对其中的一个。 => 学习一些策略,如用看见的颜色作为信号,把每个任务和该任务下最优的动作直接关联起来。如,出现红色就选择1号臂。

2.10 本章小结

  • 几种试探和开发的简单方法:
  1. \varepsilon -greedy:以小概率选择随机的动作
  2. UCB:采用确定的动作选择,在每个时刻对那些具有较少样本的动作进行优先选择。
  3. 梯度赌博机:不估计动作价值,而是利用偏好函数,使用softmax分布来以一种分级的、概率式的方式选择更优的方法。
  4. 将收益的初值进行乐观的设置。
  • 贝叶斯方法:假定已知动作价值的初始分布,然后在每步之后更新分布。之后根据动作价值的后验概率,在每一步中选择最优的动作。
  • Thompson采样/后验采样:每个臂根据\beta分布产生随机数,按随机数排序选最大结果(把\beta分布的 a 参数看成是推荐后用户点击的次数,把分布的 b 参数看成是推荐后用户未点击的次数)

相当于有一个先验概率给出一个可能的分布,随后根据真实结果去更新这个概率分布,使其接近真实情况。

  • Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式和图像如下

                                           \begin{aligned} f(x ; \alpha, \beta) &=\text { constant } \cdot x^{\alpha-1}(1-x)^{\beta-1} \\ &=\frac{x^{\alpha-1}(1-x)^{\beta-1}}{\int_{0}^{1} u^{\alpha-1}(1-u)^{\beta-1} d u} \\ &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1} \\ &=\frac{1}{\mathrm{~B}(\alpha, \beta)} x^{\alpha-1}(1-x)^{\beta-1} \end{aligned}                      Richard S.Sutton 《强化学习》 学习笔记 第一章 第二章_第2张图片

  • 从Beta分布的概率密度函数的图形我们可以看出,Beta分布有很多种形状,但都是在0-1区间内,因此Beta分布可以描述各种0-1区间内的形状。因此,它特别适合为某件事发生或者成功的概率建模。同时,当α=1,β=1的时候,它就是一个均匀分布。
  • 贝塔分布主要有 α和 β两个参数,这两个参数决定了分布的形状,从上图及其均值和方差的公式可以看出:
  1. α/(α+β)也就是均值,其越大(蓝色),概率密度分布的中心位置越靠近1,依据此概率分布产生的随机数也多说都靠近1,反之则都靠近0。

  2. α+β越大,则分布越窄(黄色),这样产生的随机数更接近中心位置,从方差公式上也能看出来。

  • 有效的原因:
  1. 如果一个候选被选中的次数很多,也就是 a+b 很大了,它的分布会很窄,换句话说这个候选的收益已经非常确定了,就是说不管分布中心接近0还是1都几乎比较确定了。用它产生随机数,基本上就在中心位置附近,接近平均收益。
  2. 如果一个候选不但 a+b 很大,即分布很窄,而且 a/(a+b) 也很大,接接近1,那就确定这是个好的候选项,平均收益很好,每次选择很占优势,就进入利用阶段。反之则有可能平均分布比较接近与0,几乎再无出头之日。
  3. 如果一个候选的 a+b 很小,分布很宽,也就是没有被选择太多次,说明这个候选是好是坏还不太确定,那么分布就是跳跃的,这次可能好,下次就可能坏,也就是还有机会存在,没有完全抛弃。那么用它产生随机数就有可能得到一个较大的随机数,在排序时被优先输出,这就起到了前面说的探索作用

第三章链接

 

你可能感兴趣的:(强化学习,强化学习,人工智能,机器学习,算法)