强化学习的基础知识和6种基本算法解释智能体

强化学习的基础知识和概念简介(无模型、在线学习、离线强化学习等)

机器学习(ML)分为三个分支:监督学习、无监督学习和强化学习。

通俗地说,强化学习类似于婴儿学习和发现世界,如果有奖励(正强化),婴儿可能会执行一个行动,如果有惩罚(负强化),婴儿就不太可能执行这个行动。这也是来自监督学习和非监督学习的强化学习之间的主要区别,后者从静态数据集学习,而前者从探索中学习。

本文将涉及强化学习的术语和基本组成部分,以及不同类型的强化学习(无模型、基于模型、在线学习和离线学习)。本文最后用算法来说明不同类型的强化学习。

本文的公式基于StuartJ.Russell和PeterNorvig的教科书《ArtificialIntelligence:AModernApproach》(第四版),为了保持数学方程格式的一致性所以略有改动,。

强化学习

在深入研究不同类型的强化学习和算法之前,我们应该熟悉强化学习的组成部分。

在一个婴儿探索世界的例子中,婴儿(代理)在现实世界(环境)中,能够感到高兴或饥饿(状态)。因此,宝宝可以选择哭泣,吃或睡(动作),如果宝宝饿的时候吃了东西(奖励),宝宝就满足了(正奖励)。

强化学习涉及探索,强化学习的输出是一个最优策略。策略描述了在每个状态下要采取的行动;类似于说明书。比如,政策可以是宝宝饿了就吃,否则,宝宝就该睡觉。这也与监督学习形成了对比,监督学习的输出只是一个单一的决策或预测,比策略更简单。

强化学习的目标是通过优化所采取的行动来最大化总累积奖励。和婴儿一样,我们不都想从生活中获得最大的累积利益吗;)

马尔可夫决策过程(MDP)

由于强化学习涉及一系列最优行为,因此它被认为是一个连续的决策问题,可以使用马尔可夫决策过程建模。

这里的状态(用S表示)被建模为圆圈,动作(用A表示)允许代理在状态之间转换。在上图2中,还有一个转换概率(用T表示),T(S11,A1,S12)是在状态S11采取A1动作后转换到状态S12的概率。我们可以认为动作A1是向右的动作A2是向下的。为了简单起见,我们假设转移概率为1,这样采取行动A1将确保向右移动,而采取行动A2将确保向下移动。

综上所述,从状态S11开始执行动作A2-A1-A1,预期效用的数学公式如下:

上面的例子是一个简单的例子,一般情况下都会有一些变化,比如,

考虑到这些变化,确定给定状态下策略π的期望效用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.在线学习

离线学习和在线学习又称为被动学习和主动学习。

离线学习

在离线(被动)学习中,通过学习效用函数来解决该问题。给定一个具有未知转移和奖励函数的固定策略,代理试图通过使用该策略执行一系列试验来学习效用函数。

在线学习

在线(主动)学习中,通过学习规划或决策来解决问题。对于基于模型的在线强化学习,有探索和使用的阶段。在使用阶段,代理的行为类似于离线学习,采用固定的策略并学习效用函数。在探索阶段,代理执行值迭代或策略迭代以更新策略。

如果使用值迭代更新策略,则使用最大化效用/值的一步前瞻提取最佳行动。如果使用策略迭代更新策略,则可获得最优策略,并可按照建议执行操作。

在线强化学习的例子包括Exploration、Q-Learning和SARSA,这些将在后面几节中详细阐述。

当状态和动作太多以至于转换概率太多时,在线学习是首选。在线学习中探索和“边学边用”比在离线学习中一次学习所有内容更容易。但是由于探索中的试错法,在线学习也可能很耗时。

需要说明的是:在线学习和基于策略的学习(以及基于策略的离线学习)是有区别的,前者指的是学习(策略可以更改或固定),后者指的是策略(一系列试验来自一个策略还是多个策略)。在本文的最后两部分中,我们将使用算法来解释策略启动和策略关闭。

在理解了不同类型的强化学习之后,让我们深入研究一下算法!

1、直接效用估计DirectUtilityEstimation

无模型的离线学习

在直接效用估计中,代理使用固定策略执行一系列试验,并且状态的效用是从该状态开始的预期总奖励或预期奖励。

以一辆自动驾驶汽车为例,如果汽车在一次试验中从网格(1,1)开始时,未来的总奖励为+100。在同一次试验中,汽车重新访问该网格,从该点开始的未来总奖励是+300。在另一项试验中,汽车从该网格开始,未来的总奖励为+200。该网格的预期奖励将是所有试验和对该网格的所有访问的平均奖励,在本例中为(100+300+200)/3。

优点:给定无限次试验,奖励的样本平均值将收敛到真实的预期奖励。

缺点:预期的奖励在每次试验结束时更新,这意味着代理在试验结束前什么都没有学到,导致直接效用估计收敛非常慢。

2、自适应动态规划(ADP)

基于模型的离线学习

在自适应动态规划(ADP)中,代理尝试通过经验学习转换和奖励函数。转换函数是通过计算从当前状态转换到下一个状态的次数来学习的,而奖励函数是在进入该状态时学习的。给定学习到的转换和奖励函数,我们可以解决MDP。

以自动驾驶汽车为例,在给定状态下尝试向前移动10次,如果汽车最终向前移动8次并向左移动2次,我们了解到转换概率为T(当前状态,向前,前状态)=0.8和T(当前状态,向前,左状态)=0.2。

优点:由于环境是完全可观察的,因此很容易通过简单的计数来学习转换模型。

缺点:性能受到代理学习转换模型的能力的限制。这将导致这个问题对于大状态空间来说是很麻烦的,因为学习转换模型需要太多的试验,并且在MDP中有太多的方程和未知数需要求解。

与直接效用估计在每次尝试后进行学习相比,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

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网络(DeepQNetwork,DQN)、深度确定性策略梯度(DeepDeterministicPolicyGradient,DDPG)等算法,具有更实际的应用。

我一直觉得强化学习很有趣,因为它阐明了人类如何学习以及我们如何将这些知识传授给机器人(当然也包括其他应用,如自动驾驶汽车、国际象棋和AlphaGo等)。希望本文能够让你对强化学习有了更多的了解,并且知道了强化学习的不同类型,以及说明每种类型的强化学习的算法。

THE END
1.解析人工智能三大算法机器学习深度学习与强化学习的核心之旅解析人工智能三大算法:机器学习、深度学习与强化学习的核心之旅 人工智能三大算法是现代计算机科学领域中的重要组成部分,它们分别是机器学习、深度学习和强化学习。每种算法都有其独特的特点和应用场景,共同推动了人工智能技术的发展。 机器学习:数据驱动的革命 机器学https://www.fmovhaqkz.com/shou-ji/530948.html
2.增强学习原理与代码实例讲解增强学习详解摘要: 本文章全面介绍了增强学习的基本概念、原理及算法,并通过具体的代码实例深入讲解了如何应用增强学习解决实际问题。文章结构清晰,理论与实践相结合,适合对增强学习感兴趣的读者阅读和学习。 增强学习(Reinforcement Learning,简称RL)是机器学习的一个分支,旨在通过奖励机制使智能体学习如何在环境中采取行动,从而实现特https://blog.csdn.net/universsky2015/article/details/143087363
3.强化学习详解:理论基础与核心算法解析本文详细介绍了强化学习的基础知识和基本算法,包括动态规划、蒙特卡洛方法和时序差分学习,解析了其核心概念、算法步骤及实现细节。 关注作者,复旦AI博士,分享AI领域全维度知识与研究。拥有10+年AI领域研究经验、复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,上亿营收AI产品研发负责人。https://www.jianshu.com/p/09c44358b4a6
4.一文带你了解算法背后的基本原理推荐收藏三、算法背后的基本原理是怎样的? 1.监督学习的基本原理 监督学习的基础是三类模型:线性模型、决策树模型、神经网络模型。掌握这三类模型就掌握了监督学习的主干,利用监督学习来解决的问题,占所有机器学习或者人工智能任务的绝大多数。这些监督学习模型又可以细分为主要处理两类问题:分类问题和回归问题。 分类问题的核https://baijiahao.baidu.com/s?id=1703903777603543299&wfr=spider&for=pc
5.深度强化学习在自动驾驶系统中的优化与应用深度强化学习的基本原理和算法 深度强化学习结合了深度学习和强化学习的方法,用于解决复杂的强化学习任务。 深度Q网络(Deep Q-Network, DQN):DQN是一种基于深度学习的强化学习算法,通过使用神经网络来近似Q值函数。它使用经验回放和固定目标网络来提高训练的稳定性。 https://www.dongchedi.com/article/7240011407876571648
6.SLAM:从传统算法到深度学习北斗产业资讯平台SLAM:从传统算法到深度学习 SLAM(Simultaneous Localization and Mapping)是一种集成定位和建图的技术,已经在自主导航、虚拟现实、增强现实等领域发挥着重要的作用。本文将详细介绍SLAM的发展历程、基本原理和应用领域。 1. SLAM的起源与发展 SLAM的概念最早出现在20世纪80年代。传统的SLAM算法主要基于激光雷达、相机和惯https://www.qxwz.com/zixun/127374539
7.科学课教学案例分析范文算法的基本思想是指按照确定的步骤,一步一步去解决某个问题的程序化思想。在数学中,完成每一件工作。例如,计算一个函数值,求解一个方程,证明一个结果,等等,我们都需要有一个清晰的思路,一系列的步骤,一步一步地去完成,这就是算法的思想,即程序化的思想。 https://www.gwyoo.com/haowen/211046.html
8.大数据:分类算法深度解析大数据分类算法深度解析 在大数据时代,处理海量数据并从中提取有用信息变得至关重要。分类算法是机器学习领域的核心,它们在大数据分析、模式识别和决策支持等方面发挥着关键作用。本文将深度解析大数据分类算法,包括其基本原理、常见算法、应用场景以及未来发展方向。 http://www.360doc.com/content/24/0112/20/78411425_1110858832.shtml
9.白话机器学习算法理论+实战之Xgboost算法这个系列已经基本包含了上面这些算法的原理和基本使用。但是,如果仅仅是会用这些算法可是不够的, 我们也得跟着时代的步伐前进,近几年,有很多大佬又在上面的某些算法上加以改进,发明了更加厉害的算法,而这些算法才是当今时代解决问题的主流,所以我们学习的一个方式就是掌握传统,而又得紧跟时代。 https://cloud.tencent.com/developer/article/1632864
10.恭喜您!您孩子参加的机器人等级考试的证书或将对升学有作用了!常见电器、交通工具、运行原理和科技知识,各种齿轮、杠杆、机械机构、机械臂、支点、摩擦力、太阳能、气动力等各种原理和知识机器人的运行原理和编程控制、基本算法和逻辑等 关于我们: 2015年3月,嘉祥乐高机器人冠亚店成立。 乐高机器人教育进入嘉祥,受到社会各界的好评,被济宁市教育局授予济宁市创客教育联盟企业。乐高https://www.meipian.cn/299ssjnc
11.基于深度学习的变电设备缺陷检测因此,本文提出将去雾算法和深度学习算法相结合的方式来进行缺陷监测,使用暗通道去雾算法改善图片质量,然后使用YOLOV4对设备缺陷进行检测。 1 基于暗通道去雾算法的图像优化 1.1 暗通道去雾算法基本原理 1.1.1 暗通道先验理论 基于暗通道先验的去雾算法实际上是一种统计意义上的算法,何恺明博士总结了大量的室外无雾图像,https://www.fx361.com/page/2022/0118/12234063.shtml
12.焦李成院士:下一代深度学习的思考与若干问题1986年,DE Rumelhart, GE Hinton, JL McClellandt把深度学习中的反向传播误差的算法用于学习表征,从而对深度学习的算法进行了再次的改进。1980年,Kunihiko Fukushima提出了卷积神经网络,将神经原理用于工程的开创性质研究中,因此获得了2021鲍尔奖。Lecun在对Kunihiko Fukushima工作的评价当中说:福岛邦彦教授1980年的卷积https://ipiu.xidian.edu.cn/info/1097/2576.htm
13.下一代人工智能方法重大研究计划项目指南发布政策资讯(一)深度学习的基本原理 深入挖掘深度学习模型对超参数的依赖关系,理解深度学习背后的工作原理,建立深度学习方法的逼近理论、泛化误差分析理论和优化算法的收敛性理论。 (二)可解释、可通用的下一代人工智能方法 通过规则与学习结合的方式,建立高精度、可解释、可通用且不依赖大量标注数据的人工智能新方法。开发下一代https://mall.ggdzhj.com/kjcs/policy/detail?id=e2a381ec9c794749a7ce4fae14fed41d
14.关于发布可解释可通用的下一代人工智能方法重大研究计划2022(一)深度学习的基本原理 深入挖掘深度学习模型对超参数的依赖关系,理解深度学习背后的工作原理,建立深度学习方法的逼近理论、泛化误差分析理论和优化算法的收敛性理论。 (二)可解释、可通用的下一代人工智能方法 通过规则与学习结合的方式,建立高精度、可解释、可通用且不依赖大量标注数据的人工智能新方法。开发下一代https://www.ncsti.gov.cn/kcfw/xmsb/202205/t20220518_79110.html
15.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置在匹配鲲鹏多核能力方面,鲲鹏BoostKit通过设计并行优化方案,消除通信瓶颈,提高计算并行度,实现RF(Random Forest,随机森林)、GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法等机器学习算法性能最高提升2.5倍。 算法共性原理创新 分布式优化求解 线性代数运算 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
16.深度增强学习PPO(ProximalPolicyOptimization)算法本文主要走读其中的PPO(Proximal Policy Optimization)算法的源码实现。PPO是2017年由OpenAI提出的一种DRL算法,它不仅有很好的performance(尤其是对于连续控制问题),同时相较于之前的TRPO方法更加易于实现。之前写过一篇杂文《深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法》对其历史、原理及相关方法做了简单介绍,http://www.fpga7.com/ziyuan.asp?id=41