强化学习简介
强化学习(Reinforcement Learning,RL)是机器学习中的一个领域,是学习做什么(即如何把当前的情景映射成动作)才能使得数值化的收益最大化,学习者不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪些动作会产生最丰厚的收益
强化学习同机器学习领域中的有监督学习和无监督学习不同,有监督学习是从外部监督者提供的带标注训练集中进行学习(任务驱动型),无监督学习是一个典型的寻找未标注数据中隐含结构的过程(数据驱动型)
强化学习是与两者并列的第三种机器学习范式,强化学习带来了一个独有的挑战——探索与利用之间的折中权衡,智能体必须利用已有的经验来获取收益,同时也要进行探索,使得未来可以获得更好的动作选择空间(即从错误中学习)
核心概念
强化学习的主要角色是 智能体 和 环境,环境是智能体存在和互动的世界。智能体在每一步的交互中,都会获得对于所处环境状态的观察(有可能只是一部分),然后决定下一步要执行的动作。环境会因为智能体对它的动作而改变,也可能自己改变。
智能体也会从环境中感知到 奖励 信号,一个表明当前状态好坏的数字。智能体的目标是最大化累计奖励,也就是回报。强化学习就是智能体通过学习来完成目标的方法。
马尔可夫决策过程(MDP)
MDP 简单说就是一个智能体(Agent)采取行动(Action)从而改变自己的状态(State)获得奖励(Reward)与环境(Environment)发生交互的循环过程,MDP 的策略完全取决于当前状态(Only present matters),这也是它马尔可夫性质的体现
强化学习任务通常用马尔可夫决策过程 (Markov Decision Process, MDP)来描述,即
机器处于环境 $E$ 中, 状态空间为 $X,$ 其中每个状态 $x \in X$ 是机器感知到的环境的描述
机器能采取的动作构成了动作空间 $A$ ; 若某个动作 $a \in A$ 作用在当前状态 $x$ 上, 则潜在的转移函数 $P$ 将使得环境从当前状态按某种概率转移到另一个状态; 在转移到另一个状态的同时, 环境会根据潜在的“奖赏” (reward)函数 $R$ 反馈给机器一个奖赏
综合起来, 强化学习任务对应了四元组 $E=\langle X, A, P, R\rangle,$ 其中 $P: X \times A \times X \mapsto \mathbb{R}$ 指定了状态转移概率, $R: X \times A \times X \mapsto \mathbb{R}$ 指定了奖赏; 在有的应用中, 奖赏函数可能仅与状态转移有关, 即 $R: X \times X \mapsto \mathbb{R} .$
策略
机器要做的是通过在环境中不断地尝试而学得一个“策略” (policy) $\pi,$ 根据这个策略, 在状态 $x$ 下就能得知要执行的动作 $a=\pi(x)$
策略有两种表示方法:
一种是将策略表示为函数 $\pi: X \mapsto A,$ 确定性策略常用这种表示
另一种是概率表示 $\pi: X \times A \mapsto \mathbb{R},$ 随机性策略常用这种表示
$\pi(x, a)$ 为状态 $x$ 下选择动作 $a$ 的概率, 这里必须有 $\sum_{a} \pi(x, a)=1$
确定性策略
确定性策略,在相同的状态下,其输出的动作是确定的
优缺点
- 能够利用确定性梯度优化策略,所以不需要太多的采样数据,计算效率也很快
- 由于每次面对同一状态其输出的动作是唯一的,无法讨论一些其它动作的效果,不具有自学习的能力
随机性策略
对于随机策略,对于相同的状态,其输出的状态并不唯一,而是满足一定的概率分布,从而导致即使是处在相同的状态,也可能输出不同的动作
优缺点
- 随机策略将探索和改进集成到一个策略中
- 需要采样的数据量较大,学习比较慢
奖励
强化学习中,奖励函数$R$非常重要,它由当前状态、已经执行的行动和下一步的状态共同决定
$$ r_{t}=R\left(s_{t}, a_{t}, s_{t+1}\right) $$
长期累积奖励有多种计算方式
其中$T$步累计奖赏,指的是在一个固定窗口步数$T$内获得的累计奖励
$$R(\tau)=\sum_{t=0}^{T} r_{t}$$
另一种叫做$\gamma$折扣奖励,指的是智能体获得的全部奖励之和,但是奖励会因为获得的时间不同而衰减。这个公式包含衰减率$\gamma \in(0,1)$:
$$ R(\tau)=\sum_{t=0}^{\infty} \gamma^{t} r_{t} $$
这里为什么要加上一个衰减率呢?为什么不直接把所有的奖励加在一起?可以从两个角度来解释: 直观上讲,现在的奖励比外来的奖励要好,所以未来的奖励会衰减;数学角度上,无限多个奖励的和很可能 不收敛,有了衰减率和适当的约束条件,数值才会收敛
探索与利用
所谓探索:是指做你以前从来没有做过的事情,以期望获得更高的回报所谓利用:是指做你当前知道的能产生最大回报的事情
多臂赌博机问题
单步强化学习任务对应了一个理论模型, 即“ $K$ -摇臂赌博机” , $K$ -摇臂赌博机有 $K$ 个摇臂, 赌徒在投入一个硬币后可选择按下其中一个摇臂, 每个摇臂以一定的概率吐出硬币, 但这个概率赌徒并不知道。赌徒的目标是通过一定的策略最大化自己的奖赏, 即获得最多的硬币
仅探索(exploration only): 将所有的尝试机会平均分配给每个摇臂(即轮流按下每个摇臂),最后以每个摇臂各自的平均吐币概率作为其奖赏期望的近似估计
仅利用(exploitation-only): 按下目前最优的(即到目前为止平均奖赏最大的)的摇臂,若有多个摇臂同为最优, 则从中随机选取一个.
显然,“仅探索”法能很好地估计每个摇臂的奖赏, 却会失去很多选择最优摇臂的机会;“仅利用”法则相反, 它没有很好地估计摇臂期望奖赏, 很可能经常 选不到最优摇臂. 因此, 这两种方法都难以使最终的累积奖赏最大化.
事实上,探索和利用这两者是矛盾的, 因为尝试次数(即总投币数)有限, 加强了一方则会自然削弱另一方, 这就是强化学习所面临的“探索-利用困境” (Exploration Exploitation dilemma)
显然, 欲累积奖赏最大, 则必须在探索与利用之间达成较好的折中
$\epsilon$ -贪心法
$\epsilon$ -贪心法基于一个概率来对探索和利用进行折中: 每次尝试时, 以 $\epsilon$ 的概率进行探索, 即以均匀概率随机选取一个摇臂; 以 $1-\epsilon$ 的概率进行利用, 即选择当前平均奖赏最高的摇臂(若有多个, 则随机选取一个)
Softmax
Softmax 算法基于当前已知的摇臂平均奖赏来对探索和利用进行折中
若各摇臂的平均奖赏相当, 则选取各摇臂的概率也相当; 若某些摇臂的平均奖赏明显高于其他摇臂, 则它们被选取的概率也明显更高.
强化学习的分类
有模型学习
考虑多步强化学习任务, 暂且先假定任务对应的马尔可夫决策过程四元组 $E=\langle X, A, P, R\rangle$ 均为已知, 这样的情形称为“模型已知”,即机器已对环境进行了建模, 能在机器内部模拟出与环境相同或近似的状况。在已知模型的环境中学习称为“有模型学习” (model-based learning)
此时, 对于任意状态 $x, x^{\prime}$ 和动作 $a,$ 在 $x$ 状态下执行动作 $a$ 转移到 $x^{\prime}$ 状态的概率 $P_{x \rightarrow x^{\prime}}^{a}$ 是已知的, 该转移所带来的奖赏 $R_{x \rightarrow x^{\prime}}^{a}$ 也是已知的
优缺点
有模型学习最大的优势在于智能体能够 提前考虑来进行规划,走到每一步的时候,都提前尝试未来可能的选择,然后明确地从这些候选项中进行选择
最大的缺点就是智能体往往不能获得环境的真实模型。如果智能体想在一个场景下使用模型,那它必须完全从经验中学习,这会带来很多挑战。最大的挑战就是,智能体探索出来的模型和真实模型之间存在误差,而这种误差会导致智能体在学习到的模型中表现很好,但在真实的环境中表现得不好(甚至很差)
免模型学习
在现实的强化学习任务中, 环境的转移概率、奖赏函数往往很难得知, 甚至很难知道环境中一共有多少状态
若学习算法不依赖于环境建模,则称为免模型学习(model-free learning),这比有模型学习困难的多