0 Reference:
Reinforcement Learning:An Introduction(second edition)
数学标记:
这套标记系统强调了随机变量与其实例的区别:
- 其中前者(随机变量)标记为大写字母
- 后者(随机变量的具体值或标量函数)标记为小写字母
此外: - 小写、粗体的字母用于实数向量 (即使是随机变量).
- 大写的粗体字母用于矩阵.
1:简介
我们所探讨的方法被称为强化学习 (Reinforcement Learning), 其相比于其他的机器学习方法,更加关注于目标导向的从交互中学习.
1.1强化学习的理解
强化学习是关于做什么——怎样构建从状态到动作的映射——来最大化一个数字型的奖赏信号的学习.
- 学习器没有被告知什么动作应该被做, 而是通过尝试来发现什么样的动作可以产生最大的奖赏
- 动作不仅会影响立即的奖赏, 而且会影响下一状态, 并通过这影响后续的奖赏
特性:
- 1.试错性的搜索
- 2.延迟的奖赏
强化学习不同于监督学习:
- 监督学习通过训练集进行学习, 训练集中的样本都由外部的有相关知识的监督者进行了标记.
- 这类学习的目标是对系统的响应进行推算或泛化, 使其能在没有于训练集中出现过的情形下做出正确的响应
- 而强化学习是需要与环境不断地交互,从自己的经历中获得正确的响应
强化学习不同于无监督学习:
- 强化学习试图最大化奖赏信号而非发现隐藏的结构. 对于强化学习来说发现代理经历中的结构当然是有用的, 但其本身没有解决最大化奖赏信号这一强化
学习问题 - 因此除监督学习与无监督学习以及可能的其他范式之外, 我们认为强化学习是第三种机器学习范式
强化学习独特的挑战——探索与利用间的权衡:
-
利用 exploit是用已有的经验来获得奖赏
-
探索 explore以便能在将来做出更好的动作选择
-
权衡困境:
- 只追求探索或只追求利用都不能完全任务.
- 代理必须尝试各种动作, 然后逐渐偏向于看上去最好的那个
1.2 强化学习的组成要素
除上述的 agent and the environment,强化学习系统又四个子要素:
- 策略policy
- 奖赏信号reward signal
- 值函数value function
- 可选的环境模型model
a.策略:
定义了代理在一给定时间的决策方式
- 粗略讲,策略就是从感知到的环境的状态,选择应该采取的动作的映射
- 一般而言, 策略是概率性的, 指定了执行每一动作的概率.
b.奖赏信号:
定义了强化学习问题的目标(最大化其长期的累积奖赏)
- 在每一个time step中,环境向强化学习代理发送一个奖赏reward的实数值
- 一般而言, 奖赏信号是环境的状态与代理采取的动作的概率性函数.
c.值函数
奖赏信号只能显示眼下的优劣, 值函数才能指明长期的优劣.
- 一个状态的值 是从当前状态起, 代理未来所有奖赏的累积和的期望值.
当评估并作出决定时, 值是我们最为关心的. 对动作的选择基于对值的评估. 我们寻求的动作应带来有最高值的状态, 而非带来最高奖赏.
tip:
- 奖赏是由环境直接给出的;
- 而值必须在其整个生命周期中, 根据代理观察到的序列不停地评估与再评估
d. 环境模型
模型用于模仿环境的反应,模型是用于计划 planning 的,
- 计划的含义是在通过在实际经历前考虑将来可能的情形, 来决定行为方式.
使用模型与计划的强化学习方法被称为有模型 model-based 方法; 与之相反的是更简单的使用试错的免模型 model-free 方法, 试错可以视为计划的反面.
1.3 示例:井字棋
井字棋 两个玩家轮流在 3 × 3 的棋盘上下棋. 两个玩家轮流下 X 与 O, 直到一个玩家在水平方向上、垂直方向上或对角线方向上放置了一排的三枚棋子以赢得游戏,
-
如果棋盘填满了而没有任何一名玩家放置出一排三枚棋子, 那么该局比赛就是平局.
-
我们暂时假设平局和输掉比赛一样糟糕. 我们该怎样构建一个能发现对手的缺陷并最大化获胜概率的下棋程序呢?
利用值函数来处理:
- ①首先我们为每一个可能的状态建立一张数值表
- 表中每一个数值都是从该状态起获胜的概率的最新估计值
- ② 假设我们一直执 X, 那么对所有有一排三枚 X 棋子的状态其获胜概率为 1, 因为在这样的情况下我们已经赢了;类似的, 对于所有有一排三枚 O 棋子的状态或平局, 其获胜概率为 0,因为已经不可能赢了;我们将所有其他状态的初始值设为 0.5, 表示我们猜测从这些状态起有 50% 的概率获胜.
- ③然后我们同对手玩许多盘棋. 为了选择下一步棋, 我们检查下了一步棋之后所有可能的状态 (将当前棋盘上任一空填上后各对应一个状态), 然后在表中查找各个状态当前的估计值
- ④我们贪心 greedy 地选择下一步棋, 选择能导向拥有最高值的状态的那
步棋, 即选择胜率估计值最高那步棋.- 然而, 我们偶尔随机地探索 exploratory下一步棋,这让我们探索原先根本无法经历的状态
- ⑤为了做到做出对获胜率更为准确的估计, 我们将做出贪心选择后的状态值逆流 back up 至做出贪心选择前的状态.
- V (S t ) ← V (S t ) + α[V (S t+1 ) − V (S t )]
- 用 S t 表示做出贪心选择前的状态
- S t+1 表示贪心选择后的状态
- α 为称为步长 step-size的参数
如果步长参数能随时间以合适的速率递减,那么对于任何给定的对手, 收敛后所下的每一步 (除去探索步) 事实上都是针对这一 (非完美) 对手的最优下法.
- V (S t ) ← V (S t ) + α[V (S t+1 ) − V (S t )]
进化方法与使用值函数的方法的区别:
a.评估一个策略, 进化方法使该策略固定
- 同对手下许多盘棋或使用对手的模型模拟下许多盘棋. 获胜的频率给出了该
策略获胜概率的无偏估计, 该频率可以用于指导下一步的策略选择
b.只有每局游戏的最终结果被利用了,发生在游戏过程中的一切都被忽视了.
- 而使用值函数的方法, 与之相反, 允许对各个状态分开进行评估
c.从结果上而言, 进化方法与值函数方法都搜索了策略空间, 但对值函数的学习利用了游戏过程中的信息.
1.4 总结:
强化学习是理解并自动化目标导向的学习与决策的计算性方法,与别的计算性方法的不同之处在于:
- 其强调从代理与环境的直接交互中学习
- 而不需要示范性的训练集或环境的完整模型
强化学习使用马尔科夫决策过程这一框架, 依据状态、动作与奖赏来定义学习代理与环境之间的交互.
值与值函数的概念是书中介绍的多数强化学习方法(在策略空间中的高效搜索)的关键.
-
值函数的使用将强化学习方法同进化方法区别开来,
- 进化方法是通过对整个策略的评估来在策略空间中进行直接搜索.