根据Richard S.Sutton的《强化学习》第二版为主要学习资料,整理的学习笔记
目录
第1章 导论
1.7 历史
三条主线:
- 动物学习心理学试错法
- 最优控制问题以及使用价值函数和动态规划的解决方案
- 时序差分方法
最优控制:
- 最优控制:最早用来描述控制器的问题,目标是使得动态系统随时间变化的某种量度最小化或最大化。(最优控制是指在给定的约束条件下,寻求一个控制,使给定的系统性能指标达到极大值(或极小值))
- 20世纪,运用了动态系统状态和价值函数(最优回报函数),定义了一个方程(贝尔曼方程)。
- 通过求解这个方程来解决最优控制问题的方法被称为动态规划(DP)
- Bellman提出最优控制问题的离散随机版本,被称为马尔科夫决策过程(MDP)
时序差分:
- 特点:由时序上连续地对同一个量的估计驱动的,如下赢井字棋的概率
补充:
- 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表格式。
- 贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查·贝尔曼(Richard Bellman)发现。(由下一个时刻的值更新上一个时刻的值)


B站视频:https://www.bilibili.com/video/BV1fN41197ES?from=search&seid=13760016408918511356
I 表格型求解方法
赌博机问题:只有一个状态
MDP:解决强化学习问题的一般框架
DP:具有严格清晰的教学基础且已经被深入研究,但需要完整、精确的环境模型
MC:不需要环境模型,容易理解,但是不适合一步一步增量式更新计算
TD:不需要环境模型,完全增量式,但过程复杂,难以分析。
第二章 多臂赌博机
2.1 一个k臂赌博机问题
- 强化学习:训练信号是用来评估给定动作的好坏的,而不是通过给出正确动作范例来进行直接的指导。因此反复实验很有必要。
- 机器学习:给出正确动作范例来进行直接的指导。
- k臂赌博机:重复地在k个选项或动作中进行选择。每次做出选择之后,都会得到一定数值的收益,收益由你选择的动作决定的平稳概率分布产生。目标是在某一时间内最大化总收益的期望。
- 价值:k个动作被选择时的收益的平均/期望
(就是每个动作产生收益的平均值)。如果能知道这个值,就每次选择值最大的就好啦,但实际上你是不知道的,你只有一个估计值
。
- 选择
最高的称为开发(exploit),反之称为试探(explore)
2.2 动作-价值方法
- 动作价值方法:使用这些价值的估计
来进行动作的选择;动作价值的真实值是选择这个动作时的期望收益
:大部分时间都表现地贪心,但偶尔(一个很小的概率
)以独立于动作-价值估计值的方式从所有动作中等概率随机选择
2.3 10臂测试平台
- 做了一个测试,k=10,评估贪心算法和
-贪心算法;
- 实验结果:贪心方法的平均收益最初增长地比较快,后面稳定在一个较低的水平;
=0.1效果更好
- 分析:收益的方差为0,贪心算法更好;方差大,
-贪心算法更好
2.4 增量式实现
- 讨论如何高效地计算收益均值,尤其是保持常数级的内存需求和常数级的单时刻计算量
- 传统方法:需要维护所有收益的记录(因为是将所有收益加起来再除以次数)
- 通过公式推导:
新估计值<-旧估计值+步长*[目标-旧估计值] ; [目标-旧估计值] 是估计值的误差 (第n次的收益 - 被选择n-1次后估计的动作价值.这里有点疑问,为什么要让这两者相似呢);步长常记作
2.5 跟踪一个非平稳问题
- 取平均方法对平稳的赌博机问题是合适的,即收益的概率分布不随着时间变化的赌博机问题。但如何赌博机的收益概率随着时间变化,就不合适了。
- 方法:给近期收益赋予比过去很久的收益更高的权值,如使用固定步长;
,赋予
的权值随着相隔次数的增加而递减
2.6 乐观初始化
- 乐观初始价值:鼓励试探的技术
- 即用一个大于0的数,替换掉原来的初始值0;会让系统进行大量的试探操作。(因为无论如何选择,都会比初始值低,导致选择另一个动作)
2.7 基于置信度上界的动作选择
-贪心算法会尝试选择非贪心的动作,但是这是一种盲目选择的方法。在非贪心动作中,最好是根据他们的潜力来选择可能事实上是最优的动作,需要考虑到他们的估计有多接近最大值,以及这些估计的不确定性。
- UCB(upper confidence bound 置信度上界):
其中
表示在时刻t之前动作a被选择的次数。c是一个正数,控制试探的程度。
- 平方根项是对a动作值估计的不确定性或方差的度量。
- 每次选a时,不确定性会减小
- 每次选择了除了a以外的动作,不确定性增加。(分母不变,分子变大)
- 问题:处理非平稳问题;处理大的状态空间,复杂。
2.8 梯度赌博机算法
- 针对每个动作a考虑学习一个数值化偏好函数
。偏好函数越大,越频繁地被选择。
- 偏好函数并不是从“收益”的意义上提出的。只有一个动作对另一个动作的相对偏好才是重要的。
- 如果给每一个动作的偏好函数都加上1000,对于右边softmax分布确定的动作概率不受到影响:
(这里不是很明白)
- 基于随机梯度上升的思想,提出了自然学习算法。即偏好函数更新方式,公式这里就不写了。
2.9 关联搜索(上下文相关的赌博机)
- 前文只考虑了非关联的任务:
- 当任务是平稳的时候,学习期会试图寻找一个最佳的动作。
- 当任务是非平稳的时候,最佳动作随着时间变化。
- 实际上,往往有不止一种情境,它们的目标是学习一种策略:一个从特定情境到最优动作的映射。
- 例子:有一系列不同的k臂赌博机任务,每一步都随机面对其中的一个。 => 学习一些策略,如用看见的颜色作为信号,把每个任务和该任务下最优的动作直接关联起来。如,出现红色就选择1号臂。
2.10 本章小结
- 几种试探和开发的简单方法:
:以小概率选择随机的动作
- UCB:采用确定的动作选择,在每个时刻对那些具有较少样本的动作进行优先选择。
- 梯度赌博机:不估计动作价值,而是利用偏好函数,使用softmax分布来以一种分级的、概率式的方式选择更优的方法。
- 将收益的初值进行乐观的设置。
- 贝叶斯方法:假定已知动作价值的初始分布,然后在每步之后更新分布。之后根据动作价值的后验概率,在每一步中选择最优的动作。
- Thompson采样/后验采样:每个臂根据
分布产生随机数,按随机数排序选最大结果(把
分布的 a 参数看成是推荐后用户点击的次数,把分布的 b 参数看成是推荐后用户未点击的次数)
相当于有一个先验概率给出一个可能的分布,随后根据真实结果去更新这个概率分布,使其接近真实情况。
- Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式和图像如下

- 从Beta分布的概率密度函数的图形我们可以看出,Beta分布有很多种形状,但都是在0-1区间内,因此Beta分布可以描述各种0-1区间内的形状。因此,它特别适合为某件事发生或者成功的概率建模。同时,当α=1,β=1的时候,它就是一个均匀分布。
- 贝塔分布主要有 α和 β两个参数,这两个参数决定了分布的形状,从上图及其均值和方差的公式可以看出:
-
α/(α+β)也就是均值,其越大(蓝色),概率密度分布的中心位置越靠近1,依据此概率分布产生的随机数也多说都靠近1,反之则都靠近0。
-
α+β越大,则分布越窄(黄色),这样产生的随机数更接近中心位置,从方差公式上也能看出来。
- 有效的原因:
- 如果一个候选被选中的次数很多,也就是 a+b 很大了,它的分布会很窄,换句话说这个候选的收益已经非常确定了,就是说不管分布中心接近0还是1都几乎比较确定了。用它产生随机数,基本上就在中心位置附近,接近平均收益。
- 如果一个候选不但 a+b 很大,即分布很窄,而且 a/(a+b) 也很大,接接近1,那就确定这是个好的候选项,平均收益很好,每次选择很占优势,就进入利用阶段。反之则有可能平均分布比较接近与0,几乎再无出头之日。
- 如果一个候选的 a+b 很小,分布很宽,也就是没有被选择太多次,说明这个候选是好是坏还不太确定,那么分布就是跳跃的,这次可能好,下次就可能坏,也就是还有机会存在,没有完全抛弃。那么用它产生随机数就有可能得到一个较大的随机数,在排序时被优先输出,这就起到了前面说的探索作用
1222

被折叠的 条评论
为什么被折叠?



