强化学习的基础知识和概念简介(无模型、在线学习、离线强化学习等)
机器学习 (ML) 分为三个分支: 监督学习、无监督学习和强化学习。
- 监督学习(SL): 关注在给定标记训练数据的状况下取得正确的输入
- 无监督学习(UL): 关注在没有事后存在的标签的状况下发现数据中的模式
- 强化学习(RL): 关注智能体在环境中如何采取行动以最大化累积处分
艰深地说,强化学习相似于婴儿学习和发现世界,如果有处分(正强化),婴儿可能会执行一个口头,如果有惩办(负强化),婴儿就不太可能执行这个口头。这也是来自监督学习和非监督学习的强化学习之间的次要区别,后者从静态数据集学习,而前者从摸索中学习。
本文将波及强化学习的术语和根本组成部分,以及不同类型的强化学习(无模型、基于模型、在线学习和离线学习)。本文最初用算法来阐明不同类型的强化学习。
本文的公式基于 Stuart J. Russell 和 Peter Norvig 的教科书《Artificial Intelligence: A Modern Approach》(第四版),为了放弃数学方程格局的一致性所以略有改变,。
强化学习
在深入研究不同类型的强化学习和算法之前,咱们应该相熟强化学习的组成部分。
- Agent: 从环境中接管感知并执行操作的程序,被翻译成为智能体,然而我个人感觉代理更加失当,因为它就是作为咱们人在强化学习环境下的操作者,所以称为代理或者代理人更失当
- Environment: 代理所在的实在或虚拟环境
- State (S): 代理以后在环境中所处的状态
- Action (A): 代理在给定状态下能够采取的动作
- Reward (R): 采取行动的处分(依赖于口头),处于状态的处分(依赖于状态),或在给定状态下采取行动的处分(依赖于口头和状态)
在一个婴儿摸索世界的例子中,婴儿 (代理) 在事实世界 (环境) 中,可能感到高兴或饥饿(状态)。因而,宝宝能够抉择哭泣,吃或睡(动作),如果宝宝饿的时候吃了货色(处分),宝宝就满足了(正处分)。
强化学习波及摸索,强化学习的输入是一个最优策略。策略形容了在每个状态下要采取的口头; 相似于说明书。比方,政策能够是宝宝饿了就吃,否则,宝宝就该睡觉。这也与监督学习造成了比照,监督学习的输入只是一个繁多的决策或预测,比策略更简略。
强化学习的指标是通过优化所采取的口头来最大化总累积处分。和婴儿一样,咱们不都想从生存中取得最大的累积利益吗?;)
马尔可夫决策过程(MDP)
因为强化学习波及一系列最优行为,因而它被认为是一个间断的决策问题,能够应用马尔可夫决策过程建模。
这里的状态 (用 S 示意) 被建模为圆圈,动作 (用 A 示意) 容许代理在状态之间转换。在上图 2 中,还有一个转换概率 (用 T 示意),T(S11, A1, S12) 是在状态 S11 采取 A1 动作后转换到状态 S12 的概率。咱们能够认为动作 A1 是向右的动作 A2 是向下的。为了简略起见,咱们假如转移概率为 1,这样采取行动 A1 将确保向右挪动,而采取行动 A2 将确保向下挪动。
参照图 2,设指标为从状态 S11 开始,完结于状态 S23,黄色状态为好(处分 +1),红色状态为坏(处分 -1),紫色为指标状态(处分 +100)。咱们心愿智能体理解到最佳的口头或路线是通过采取行动 A2-A1-A1 来走向下 - 右 - 右,并取得 +1+1+1+100 的总处分。再进一步,利用金钱的工夫价值,咱们在处分上利用折扣因子 gamma,因为当初的处分比当前的处分更好。
综上所述,从状态 S11 开始执行动作 A2-A1-A1,预期效用的数学公式如下:
下面的例子是一个简略的例子,个别状况下都会有一些变动,比方,
- 转移概率不可能是 1,因为须要在口头中思考不确定性因素,例如采取某些口头可能并不总是保障胜利地向右或向下挪动。因而,咱们须要在这个不确定性上取一个期望值
- 最优动作可能还不晓得,因而个别的示意形式是将动作示意为来自状态的策略,用 π(S)示意。
- 处分可能不是基于黄色 / 红色 / 紫色状态,而是基于前一个状态、口头和下一个状态的组合,用 R(S1,π(S1),S2)示意。
- 问题可能不须要 4 步就能解决,它可能须要有限多的步骤能力达到目标状态
思考到这些变动,确定给定状态下策略 π 的冀望效用 U(s)的更个别的方程是这样的:
用上图 4 的话来说,状态的预期效用是折现处分的预期总和。
所以一个状态的效用与其相邻状态的效用相干; 假如抉择了最优口头,状态的效用是转移的预期处分加上下一个状态的折扣效用。这就是递归。在数学上应用上面的方程示意
上图 5 是驰名的 Bellman 方程,它求解最大效用并推导出最优策略。最优策略是在思考转移概率的状况下,对所有可能的下一个状态进行求和,使以后状态的最大效用加上下一个状态的折现效用。
回到 MDP 问题中,图 2 的最优策略是,如果代理处于状态 S11, S12 或 S13,代理应该通过采取动作 A2 向下挪动,如果代理处于状态 S21 或 S22,则代理应该通过采取动作 A1 向右挪动。这里的最优策略是通过求解 Bellman 方程来执行取得最大以后和折现将来处分的口头。
MDP 个别用 (S, A, T, R) 示意,它们别离示意一组状态,动作,转移函数和处分函数。MDP 假如环境是齐全可察看的,如果代理不晓得它以后处于什么状态,咱们将应用局部可察看的 MDP (POMDP) 图 5 中的 Bellman 方程,能够应用值迭代或策略迭代来求解最优策略,这是一种将效用值从将来状态传递到以后状态的迭代办法。
强化学习相似于求解 MDP,但当初转移概率和处分函数是未知的,代理必须在训练期间执行动作来学习
无模型与基于模型的强化学习
下面提到的 MDP 示例是基于模型的强化学习。基于模型的强化学习具备转移概率 T(s1, a, s2)和处分函数 R(s1, a, s2),它们是未知的,他们示意要解决的问题。
基于模型的办法对仿真很有用。基于模型的强化学习的例子包含值迭代和策略迭代,因为它应用具备转移概率和处分函数的 MDP。
无模型办法不须要晓得或学习转移概率来解决问题。咱们的代理间接学习策略。
无模型办法对于解决事实问题很有用。无模型强化学习的例子包含 Q -learning 和策略搜寻,因为它间接学习策略。
离线学习 vs. 在线学习
离线学习和在线学习又称为被动学习和被动学习。
离线学习
在离线 (被动) 学习中,通过学习效用函数来解决该问题。给定一个具备未知转移和处分函数的固定策略,代理试图通过应用该策略执行一系列试验来学习效用函数。
例如,在一辆主动驾驶汽车中,给定一张地图和一个要遵循的大抵方向 (固定策略),但管制出错(未知的转移概率 - 向前挪动可能导致汽车略微左转或右转) 和未知的行驶工夫(处分函数未知 - 假如更快达到目的地会带来更多处分),汽车能够反复运行以理解均匀总行驶工夫是多少(效用函数)。
离线强化学习的例子包含值迭代和策略迭代,因为它应用应用效用函数的 Bellman 方程 (图 5)。其余的一些例子包含间接效用预计、自适应动静布局(Adaptive Dynamic Programming, ADP) 和工夫差分学习(Temporal-Difference Learning, TD),这些将在前面具体论述。
在线学习
在线 (被动) 学习中,通过学习布局或决策来解决问题。对于基于模型的在线强化学习,有摸索和应用的阶段。在应用阶段,代理的行为相似于离线学习,采纳固定的策略并学习效用函数。在摸索阶段,代理执行值迭代或策略迭代以更新策略。
如果应用值迭代更新策略,则应用最大化效用 / 值的一步前瞻提取最佳口头。如果应用策略迭代更新策略,则可取得最优策略,并可依照倡议执行操作。
以主动驾驶汽车为例,在摸索阶段,汽车可能会理解到在高速公路上行驶所破费的总工夫更快,并抉择向高速公路行驶,而不是简略地沿着大方向行驶 (策略迭代)。在应用阶段,汽车依照更新的策略以更少的均匀总工夫(更高的效用) 行驶。
在线强化学习的例子包含 Exploration、Q-Learning 和 SARSA,这些将在前面几节中具体论述。
当状态和动作太多以至于转换概率太多时,在线学习是首选。在线学习中摸索和“边学边用”比在离线学习中一次学习所有内容更容易。然而因为摸索中的试错法,在线学习也可能很耗时。
须要阐明的是: 在线学习和基于策略的学习 (以及基于策略的离线学习) 是有区别的,前者指的是学习(策略能够更改或固定),后者指的是策略(一系列试验来自一个策略还是多个策略)。在本文的最初两局部中,咱们将应用算法来解释策略启动和策略敞开。
在了解了不同类型的强化学习之后,让咱们深入研究一下算法!
1、间接效用预计 Direct Utility Estimation
无模型的离线学习
在间接效用预计中,代理应用固定策略执行一系列试验,并且状态的效用是从该状态开始的预期总处分或预期处分。
以一辆主动驾驶汽车为例,如果汽车在一次试验中从网格 (1, 1) 开始时,将来的总处分为 +100。在同一次试验中,汽车从新拜访该网格,从该点开始的将来总处分是 +300。在另一项试验中,汽车从该网格开始,将来的总处分为 +200。该网格的预期处分将是所有试验和对该网格的所有拜访的均匀处分,在本例中为 (100 + 300 + 200) / 3。
长处:给定有限次试验,处分的样本平均值将收敛到实在的预期处分。
毛病:预期的处分在每次试验完结时更新,这意味着代理在试验完结前什么都没有学到,导致间接效用预计收敛十分慢。
2、自适应动静布局 (ADP)
基于模型的离线学习
在自适应动静布局 (ADP) 中,代理尝试通过教训学习转换和处分函数。转换函数是通过计算从以后状态转换到下一个状态的次数来学习的,而处分函数是在进入该状态时学习的。给定学习到的转换和处分函数,咱们能够解决 MDP。
以主动驾驶汽车为例,在给定状态下尝试向前挪动 10 次,如果汽车最终向前挪动 8 次并向左挪动 2 次,咱们理解到转换概率为 T(以后状态,向前,前状态)= 0.8 和 T(以后状态,向前,左状态)= 0.2。
长处:因为环境是齐全可察看的,因而很容易通过简略的计数来学习转换模型。
毛病:性能受到代理学习转换模型的能力的限度。这将导致这个问题对于大状态空间来说是很麻烦的,因为学习转换模型须要太多的试验,并且在 MDP 中有太多的方程和未知数须要求解。
3、工夫差分学习(TD Learning)
无模型的离线学习
在工夫差分学习中,代理学习效用函数并在每次转换后以学习率更新该函数。
这里的工夫差分(temporal difference)是指间断状态之间的效用差别,并依据此误差信号更新效用函数,由学习率缩放,如上图 6 所示。学习率能够是一个固定的参数,也能够是对一个状态访问量减少的递加函数,这有助于效用函数的收敛。
与间接效用预计在每次尝试后进行学习相比,TD 学习在每次转换后进行学习,具备更高的效率。
与 ADP 相比,TD 学习不须要学习转换函数和处分函数,使其计算效率更高,但也须要更长的收敛工夫。
ADP 和 TD 学习是离线强化学习算法,但在线强化学习算法中也存在被动 ADP 和被动 TD 学习!
4、Exploration
基于模型的在线学习,被动 ADP
Exploration 算法是一种被动 ADP 算法。与被动 ADP 算法相似,代理试图通过教训学习转换和处分函数,但被动 ADP 算法将学习所有动作的后果,而不仅仅是固定的策略。
它还有一个额定的函数,确定代理在现有策略之外采取行动的“好奇水平”。这个函数随着效用的减少而减少,随着教训的缩小而缩小。
如果状态具备高效用,则摸索函数偏向于更频繁地拜访该状态。摸索性能随着效用的减少而减少。如果状态之前没有被拜访过或拜访过足够屡次,摸索函数偏向于抉择现有策略之外的动作。如果屡次拜访状态,则摸索函数就不那么“好奇”了。因为好奇水平的升高,摸索性能随着教训的减少而升高。
长处: 摸索策略会疾速收敛到零策略损失(最优策略)。
毛病: 效用预计的收敛速度不如策略预计的快,因为代理不会频繁地呈现低效用状态,因而不晓得这些状态的确切效用。
5、Q-Learning
无模型的在线学习,被动 TD 学习
Q-Learning 是一种被动的 TD 学习算法。图 6 中的更新规定放弃不变,但当初状态的效用示意为应用 Q 函数的状态 - 动作对的效用,因而得名 Q-Learning。被动 TD 学习与被动 TD 学习的更新规定差别如下图 7 所示。
这种差别是因为被动 RL 都是用固定的策略,因而每个状态只会执行固定的操作,效用仅取决于状态。而在被动 RL 中,策略会被更新并且效用当初取决于状态 - 动作对,因为每个状态可能会依据不同的策略执行不同的动作。
Q-Learning 是 Off-Policy(无既定策略),这意味着指标或下一个状态的效用是使 Q 函数最大化(而不是下一个状态中可能的操作),咱们就不须要下一个状态下的理论动作。
长处:能够利用于简单畛域,因为它是无模型的,代理不须要学习或利用转换模型。
毛病:它不看到将来的状况,所以当处分稀少时可能会遇到困难。与 ADP 相比,它学习策略的速度较慢,因为本地更新不能确保 Q 值的一致性。
6、SARSA
无模型的在线学习,被动 TD 学习
SARSA 是一种被动 TD 学习算法。算法名称 SARSA 源自算法的组件,即状态 S、动作 A、处分 R、(下一个)状态 S 和 (下一个) 动作 A。这意味着 SARSA 算法在更新 Q 函数之前,要期待下一个状态下执行下一个动作。相比之下,Q-Learning 是一种“SARS”算法,因为它不思考下一个状态的动作。
SARSA 算法晓得在下一个状态下采取的动作,并且不须要在下一个状态下的所有可能动作上最大化 Q 函数。Q-Learning 与 SARSA 的更新规定差别显示在上面的图 8 中。
SARSA 以“策略”或者以后正在运行的策略的下一个状态的效用的 q 函数为指标,这样就可能取得下一个状态下的理论动作。
也就是说如果 Q -Learning 不摸索其余操作并在下一个状态下遵循以后策略,则它与 SARSA 雷同。
长处:如果整个策略由另一个代理或程序控制,则适宜应用策略,这样代理就不会脱离策略并尝试其余操作。
毛病:SARSA 不如 Q -Learning 灵便,因为它不会脱离策略来进行摸索。与 ADP 相比,它学习策略的速度较慢,因为本地更新无奈确保与 Q 值的一致性。
总结
在本文中咱们介绍了强化学习的基本概念,并且探讨了 6 种算法,并将其分为不同类型的强化学习。
这 6 种算法是帮忙造成对强化学习的根本了解的根本算法。还有更无效的强化学习算法,如深度 Q 网络 (Deep Q Network, DQN)、深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG) 等算法,具备更理论的利用。
我始终感觉强化学习很乏味,因为它说明了人类如何学习以及咱们如何将这些常识传授给机器人(当然也包含其余利用,如主动驾驶汽车、国际象棋和 Alpha Go 等)。心愿本文可能让你对强化学习有了更多的理解,并且晓得了强化学习的不同类型,以及阐明每种类型的强化学习的算法。
https://avoid.overfit.cn/post/ddd23fcbbd9b4c1aa1ecbfd10ed0e083