什么是强化学习?
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
与其他机器学习方法的区别
监督学习是机器学习领域研究最多的方法,已经十分成熟,在监督学习的训练集中,每一个样本都含有一个标签,在理想情况下,这个标签通常指代正确的结果。监督学习的任务即是让系统在训练集上按照每个样本所对应的标签推断出应有的反馈机制,进而在未知标签的样本上能够计算出一个尽可能正确的结果,例如我们熟悉的分类与回归问题。在强化学习中的交互问题中却并不存在这样一个普适正确的“标签”,智能体只能从自身的经验中去学习。
但是强化学习与同样没有标签的无监督学习也不太一样,无监督学习是从无标签的数据集中发现隐藏的结构,典型的例子就是聚类问题。但是强化学习的目标是最大化奖励而非寻找隐藏的数据集结构,尽管用无监督学习的方法寻找数据内在结构可以对强化学习任务起到帮助,但并未从根本上解决最大化奖励的问题。
当然还有让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能的半监督学习,它与强化学习也有着本质的差别。
因此,强化学习是除了监督学习和无监督学习之外的第三种机器学习范式。
强化学习的特点
1、没有监督者,只有一个奖励信号
2、反馈是延迟而非即时
3、具有时间序列性质
4、智能体的行为会影响后续的数据
目标
1、获取更多的累计奖励
2、获得更可靠的估计
强化学习的要素与架构
四个基本要素
强化学习系统一般包括四个要素:策略(policy),奖励(reward),价值(value)以及环境或者说是模型(model)。接下来我们对这四个要素分别进行介绍。
策略(Policy)
策略定义了智能体对于给定状态所做出的行为,换句话说,就是一个从状态到行为的映射,事实上状态包括了环境状态和智能体状态,这里我们是从智能体出发的,也就是指智能体所感知到的状态。因此我们可以知道策略是强化学习系统的核心,因为我们完全可以通过策略来确定每个状态下的行为。我们将策略的特点总结为以下三点:
1.策略定义智能体的行为
2.它是从状态到行为的映射
3.策略本身可以是具体的映射也可以是随机的分布
奖励(Reward)
奖励信号定义了强化学习问题的目标,在每个时间步骤内,环境向强化学习发出的标量值即为奖励,它能定义智能体表现好坏,类似人类感受到快乐或是痛苦。因此我们可以体会到奖励信号是影响策略的主要因素。我们将奖励的特点总结为以下三点:
1.奖励是一个标量的反馈信号
2.它能表征在某一步智能体的表现如何
3.智能体的任务就是使得一个时段内积累的总奖励值最大
价值(Value)
接下来说说价值,或者说价值函数,这是强化学习中非常重要的概念,与奖励的即时性不同,价值函数是对长期收益的衡量。我们常常会说“既要脚踏实地,也要仰望星空”,对价值函数的评估就是“仰望星空”,从一个长期的角度来评判当前行为的收益,而不仅仅盯着眼前的奖励。结合强化学习的目的,我们能很明确地体会到价值函数的重要性,事实上在很长的一段时间内,强化学习的研究就是集中在对价值的估计。我们将价值函数的特点总结为以下三点:
1.价值函数是对未来奖励的预测
2.它可以评估状态的好坏
3.价值函数的计算需要对状态之间的转移进行分析
环境(模型)
最后说说外界环境,也就是模型(Model),它是对环境的模拟,举个例子来理解,当给出了状态与行为后,有了模型我们就可以预测接下来的状态和对应的奖励。但我们要注意的一点是并非所有的强化学习系统都需要有一个模型,因此会有基于模型(Model-based)、不基于模型(Model-free)两种不同的方法,不基于模型的方法主要是通过对策略和价值函数分析进行学习。我们将模型的特点总结为以下两点:
1.模型可以预测环境下一步的表现
2.表现具体可由预测的状态和奖励来反映
强化学习的架构
我们用这样一幅图来理解一下强化学习的基本架构,大脑指代智能体agent,地球指代环境environment,从当前状态出发,在做出一个行为之后,对环境产生了一些影响,它首先给agent反馈了一个奖励信号,接下来agent可以从中发现一些信息,进而进入下一个状态,再做出新的行为,形成一个循环。
强化学习求解方法
1.动态规划方法
动态规划方法通常用于求解马尔可夫决策过程(Markov Decision Process,简称MDP)的最优策略。具体来说,动态规划方法可以通过反复迭代更新每个状态的价值函数或Q函数,从而得到最优的策略。动态规划方法通常有以下两种形式:
值迭代(Value Iteration):值迭代算法通过反复迭代更新每个状态的价值函数,直到收敛为止。具体来说,每次迭代都将每个状态的价值函数更新为其可能的后继状态的最大值加上当前状态的即时奖励。
策略迭代(Policy Iteration):策略迭代算法首先通过随机初始化一个策略,然后反复迭代更新策略和价值函数,直到收敛为止。具体来说,每次迭代都先根据当前策略计算每个状态的价值函数,然后根据价值函数更新策略。
动态规划方法的优点是可以保证得到全局最优解,而且收敛速度较快。但是,动态规划方法的缺点是需要完整的环境模型,即需要知道每个状态的转移概率和即时奖励,这在实际问题中往往是难以满足的。
2.蒙特卡洛方法
上面的动态规划方法,是一种较为理想的状态,即所有的参数都提前知道,比如状态转移概率,及奖励等等。然而显示情况是未知的,这时候有一种手段是采用蒙特卡洛采样,基于大数定律,基于统计计算出转移概率值;比如当你抛硬币的次数足够多,那么正面和反面的概率将会越来越接近真实情况。
蒙特卡洛方法是一种基于随机采样的数值计算方法,常用于求解复杂的数学问题。蒙特卡洛方法的基本思想是通过随机采样的方式来估计一个函数的值或求解一个概率分布的特征。
在强化学习中,蒙特卡洛方法通常用于评估一个策略的质量,即在给定策略下,智能体能够获得的期望累积奖励。具体来说,蒙特卡洛方法会通过与环境的交互来生成一条轨迹,然后根据轨迹中的奖励值来估计该策略的价值。重复进行多次采样后,可以得到该策略的平均累积奖励,从而评估该策略的质量。
蒙特卡洛方法的优点是可以处理高维、复杂的问题,而且不需要对问题的结构和特点做出太多的假设。但是,蒙特卡洛方法的缺点是随机性较强,需要进行大量的采样才能得到准确的结果,计算效率较低
3.时间差分方法
基于动态规划和蒙特卡洛
时间差分(Temporal Difference,简称TD)方法是一种基于样本的强化学习方法,它可以在不需要完整的环境模型的情况下学习最优策略。
时间差分方法的基本思想是通过不断更新每个状态的价值函数或Q函数,从而逼近最优策略的价值函数或Q函数。具体来说,时间差分方法会在每个时间步根据当前状态、采取的动作、获得的即时奖励和下一个状态的估计价值函数或Q函数来更新当前状态的价值函数或Q函数,这个估计值就是时间差分误差(Temporal Difference Error,简称TDE)
时间差分方法的优点是可以处理高维、复杂的问题,而且不需要完整的环境模型。此外,时间差分方法可以在线更新价值函数或Q函数,即在每个时间步都可以进行更新,可以更好地适应动态环境。时间差分方法的缺点是容易受到初始值和采样噪声的影响,需要进行调参和采样优化。
强化学习算法分类
分类一
基于理不理解所处环境来进行分类:
Model-free:环境给了我们什么就是什么. 我们就把这种方法叫做 model-free, 这里的 model 就是用模型来表示环境
Model-based:那理解了环境也就是学会了用一个模型来代表环境, 所以这种就是 model-based 方法
分类二
一类是直接输出各个动作概率,另一个是输出每个动作的价值;前者适用于连续动作情况,后者无法表示连续动作的价值。
分类三
强化学习还能用另外一种方式分类, 回合更新和单步更新, 想象强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样我们就能边玩边学习了。
分类四
判断on-policy和off-policy的关键在于,你所估计的policy或者value-function和你生成样本时所采用的policy是不是一样。如果一样,那就是on-policy的,否则是off-policy的。