一文简述多种强化学习算法,重要概念和术语一览

本文简要介绍了强化学习及其重要概念和术语,并着重介绍了Q-Learning算法、SARSA、DQN和DDPG算法。

1.强化学习入门

通常,强化学习的设置由两部分组成,一个是智能体(agent),另一个是环境(environment)。

强化学习图示

环境指的是智能体执行动作时所处的场景(例如雅达利游戏中的游戏本身),而智能体则表示强化学习算法。环境首先向智能体发送一个状态,然后智能体基于其知识采取动作来响应该状态。之后,环境发送下一个状态,并把奖励返回给智能体。智能体用环境所返回的奖励来更新其知识,对上一个动作进行评估。这个循环一直持续,直到环境发送终止状态来结束这个事件。

大多数强化学习算法遵循这一模式。下面我将简要介绍强化学习中的一些术语,以方便下一节的讨论。

定义

1.动作(A):智能体可以采取的所有可能的行动。

2.状态(S):环境返回的当前情况。

3.奖励(R):环境的即时返回值,以评估智能体的上一个动作。

4.策略(π):智能体根据当前状态决定下一步动作的策略。

5.价值(V):折扣(discount)下的长期期望返回,与R代表的短期返回相区分。Vπ(s)则被定义为策略π下当前状态**s**的期望长期返回值。

6.Q值或行动值(Q):Q值与价值相似,不同点在于它还多一个参数,也就是当前动作a。Qπ(s,a)指当前状态**s**在策略π下采取动作a的长期回报。

无模型(Model-free)vs.基于模型(Model-based)

这里的模型指的是环境的动态模拟,即模型学习从当前状态s0和动作a到下一个状态s1的转移概率T(s1|(s0,a))。如果成功地学习了转移概率,那么智能体将知道给定当前状态和动作时,进入特定状态的可能性。然而,当状态空间和动作空间增长(S×S×A,用于表格设置)时,基于模型的算法就变得不切实际了。

另一方面,无模型算法依赖试错来更新知识。因此,它不需要空间来存储所有状态和动作的组合。下一节讨论的所有算法都属于这一类。

在策略(on-policy)vs.离策略(off-policy)

在策略智能体基于当前动作a学习价值,而离策略智能体基于局部最优的贪心行为(greedyaction)a*学习价值。(我们将在Q-Learning和SARSA算法部分进一步讨论这个问题)

2.各种算法的说明

2.1Q-learning算法

Q-Learning是基于贝尔曼方程(BellmanEquation)的离策略、无模型强化学习算法:

贝尔曼方程

其中,E代表期望,是折扣因子(discountfactor)。我们可以将它重写成Q值的形式:

Q值形式的贝尔曼方程

最优的Q值Q*,可以表示为:

最优Q值

策略迭代法

策略迭代法交替使用策略评估和策略改进。

策略评估会评估从上次策略改进中获得的贪心策略的价值函数V。另一方面,策略改进通过使每个状态的V值最大化的动作来更新策略。更新方程以贝尔曼方程为基础。它不断迭代直到收敛。

策略迭代的伪代码

价值迭代

价值迭代只包含一个部分。它基于最优贝尔曼方程来更新值函数V。

最优贝尔曼方程

价值迭代的伪代码

在迭代收敛之后,通过对所有状态应用最大值函数直接导出最优策略。

注意,这两种方法都需要知道转移概率p,这表明它是一个基于模型的算法。但是,正如我前面提到的,基于模型的算法存在可扩展性问题。那么Q-learning如何解决这个问题呢?

Q-Learning更新方程

α指学习速率(即我们接近目标的速度)。Q-learning背后的思想高度依赖于价值迭代。然而,更新方程被上述公式所取代。因此,我们不再需要担心转移概率。

Q-learning的伪代码

注意,下一个动作a』的选择标准是要能够最大化下一个状态的Q值,而不是遵循当前的策略。因此,Q-Learning属于离策略算法。

2.2状态-动作-奖励-状态-动作(State-Action-Reward-State-Action,SARSA)

SARSA很像Q-learning。SARSA和Q-learning之间的关键区别是SARSA是一种在策略算法。这意味着SARSA根据当前策略执行的动作而不是贪心策略来学习Q值。

SARSA的更新方程

动作a_(t+1)是在当前策略下的下一个状态s_(t+1)执行的动作。

SARSA的伪代码

从上面的伪代码中,你可能会注意到执行了两个动作选择,它们始终遵循当前策略。相比之下,Q-learning对下一个动作没有约束,只要它能最大化下一个状态的Q值就行了。因此,SARSA是一种在策略算法。

2.3深度Q网络(DeepQNetwork,DQN)

Q-learning是一种非常强大的算法,但它的主要缺点是缺乏通用性。如果你将Q-learning理解为在二维数组(动作空间×状态空间)中更新数字,那么它实际上类似于动态规划。这表明Q-learning智能体不知道要对未见过的状态采取什么动作。换句话说,Q-learning智能体没有能力对未见过的状态进行估值。为了解决这个问题,DQN引入神经网络来摆脱二维数组。

DQN利用神经网络来估计Q值函数。网络的输入是当前的动作,而输出是每个动作对应的Q值。

用DQN玩雅达利游戏

2013年,DeepMind将DQN应用于雅达利游戏,如上图所示。输入是当前游戏场景的原始图像,经过包括卷积层和全连接层的多个层,输出智能体可执行的每个动作的Q值。

问题归结为:我们如何训练网络?

答案是基于Q-learning更新方程来训练网络。回想一下Q-learning的目标Q值是:

目标Q值

相当于状态s,代表神经网络里的参数。因此,网络的损失函数可定义为目标Q值与网络Q值输出之间的平方误差。

DQN的伪代码

另外两种技术对于训练DQN也很重要:

2.分离目标网络(SeparateTargetNetwork):目标Q网络与用来估值的网络结构相同。根据上面的伪代码,在每个C步骤,目标网络都被重置为另一个。因此,波动变得不那么严重,带来了更稳定的训练。

2.4深度确定性策略梯度(DeepDeterministicPolicyGradient,DDPG)

虽然DQN在高维问题上取得了巨大的成功,例如雅达利游戏,但动作空间仍然是离散的。然而,许多有趣的任务,特别是物理控制任务,动作空间是连续的。而如果你把动作空间分离得太细来趋近连续空间,你的动作空间就太大了。例如,假设自由随机系统的自由度为10。对于每一个自由度,你把空间分成4个部分,你最终就会有有4=1,048,576个动作。对于这么大的动作空间来说,收敛也是极其困难的。

策略函数

在这里,小写的v表示行动者已经确定的策略。看起来很熟悉对吗?看着像Q-learning的更新方程!TD学习是一种学习如何根据给定状态的未来值来预测价值的方法。Q-learning是TD学习的一种特殊类型,用于学习Q值。

DDPG还从DQN借鉴了经验回放和分离目标网络的思想。DDPG的另一个问题是它很少对动作进行探索。一个解决方案是在参数空间或动作空间中添加噪声。

动作噪声(左),参数噪声(右)

OpenAI这篇博客认为在参数空间上添加噪声比在动作空间上添加要好得多。一个常用的噪声是Ornstein-Uhlenbeck随机过程。

THE END
1.mem0大模型选用mob6454cc7042a2的技术博客MindSpore支持保存两种类型的数据:训练参数和网络模型(模型中包含参数信息)。 训练参数指的是Checkpoint格式文件。 网络模型包括MindIR、AIR和ONNX三种格式文件。 下面介绍一下这几种格式的基本概念及其应用场景。 Checkpoint 采用了Protocol Buffers格式,存储了网络中所有的参数值。 https://blog.51cto.com/u_16099269/12858044
2.一文入门个性化联邦推荐系统腾讯云开发者社区论文试图解决什么问题 论文试图解决的问题是设计一个新的联邦学习框架来解决社交推荐任务中的挑战。具体而言,论文关注的问题包括异构性、个性化和隐私保护。异构性指的是联邦推荐系统需要同时存储并融合用户-用户和用户-物品之间的交互关系。个性化指的是每个客户端具有特定的物品兴趣和社交连接,导致本地数据的非独立同分布https://cloud.tencent.com/developer/article/2477846
3.强化学习中onpolicy和offpolicy的区别深度理解在线策略(On-Policy)方法和离线策略(Off-Policy)方法依据策略学习的方式对强化学习算法进行划分。在线策略方法试图评估并提升和环境交互生成数据的策略,而离线策略方法评估和提升的策略与生成数据的策略是不同的。这表明在线策略方法要求智能体与环境交互的策略和要提升的策略必须是相同的。而离线策略方法不需要遵循这个约https://blog.csdn.net/weixin_39490300/article/details/123246512
4.强化学习蒙特卡罗之离线策略在线策略和离线策略,也是观测到 greedy 产生的策略有一定的随机性,不适合做最优策略。策略评估和策略改进能否用两种策略呢?根据答案从而产生了 on-policy 和off-policy 两种方案。 On-policy (在线策略)是指两个过程中使用的是同一个策略。 离线策略 off policy https://www.jianshu.com/p/20feefe77239
5.一文读懂,onpolicy和offpolicy相比之下,on-policy的优点在于它始终遵循当前策略进行学习和更新,因此更有可能找到最优解。但缺点是,它只能利用自身产生的经验进行学习,这在某些情况下可能限制了学习效率。 off-policy之所以能够利用其他策略的经验进行学习,是因为它可以从一个数据缓冲区中随机抽取历史经验。这些经验可能来源于不同的策略,但都可以用于https://www.yoojia.com/ask/17-14253386071930521291.html
6.onpolicy与offpolicy;确定性策略与随机策略1 on-policy与off-policy 之前一直搞不清楚on-policy和off-policy是什么区别,在查阅了各种公众号和博客、论坛之后,决定总结一下on-policy和off-policy的区别。 首先,如下图所示,on-policy和off-policy都是on-line强化学习策略更新中的一种。on-line和off-line最明显的区别就是,在一次policy.learn()之 https://www.pianshen.com/article/49572712478/
7.人工智能算法的分类与应用策略梯度算法:如自动驾驶决策。 蒙特卡罗树搜索 (MCTS):如围棋AI、象棋AI。 A3C、PPO 等深度强化学习算法:用于复杂决策场景,如无人机导航。 五、深度学习 特点: 使用深层神经网络模拟复杂的非线性关系,适合大规模数据处理。 常用算法: 卷积神经网络 (CNN):用于图像处理,如人https://mp.weixin.qq.com/s?__biz=MzI3MzQ1NjMwOA==&mid=2247549220&idx=4&sn=25aa18da4b1e2824371e552b0ca3c8e6&chksm=eb214cffdc56c5e9303367ae4087102996613151dfa3c11fafe88950b683dbc8dadedd63bcaa&scene=27
8.同策略/异策略机器之心off-policy learner学习最优策略的值,不论 agent采取的行动action。on-policy learner学习策略的值并伴随着agent的改变,包括探索的步数(exploration steps)。 也可以理解为区别就是在进行iteration的时候,是不是需要根据新的policy产生新的样本。off-policy 用的都是已经存好的数据。on-policy 在边学习的时候边产生新https://www.jiqizhixin.com/graph/technologies/1e3d73c9-10e9-4bbb-9171-551068dafcbe
9.PPO强调AC如何输出连续型动作区分OnPolicy与OffPolicy所以DQN是一个离线策略。 但为什么PG和AC中的Actor更新,就不能像DQN一样,把数据存起来,更新多次呢? 答案是在一定条件下,能,PPO做的工作就是这个。在了解在什么条件下可以的时候,我们需要先了解一下,为什么不能。假设,我们已知在同一个环境下,有两个动作可以选择。现在两个策略,分别是P和B:https://www.sxt.cn/wiki/12492.html
10.Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)b) 通过浏览器查看(关闭防火墙 /etc/init.d/iptables stop【重启系统时会启动】)防火墙开机不自启命令 chkconfig iptables off(on自启) 3、进入Node02节点的系统目录/etc/yum.repos.d中,创建文件夹old。将目录中的所有.repo文件移动到old中。【系统自动到/etc/yum.repos.d找.repo文件】 https://developer.aliyun.com/article/1403772
11.科学网—一种基于Off输出数据反馈策略迭代在线学习算法转化为无模型输入输出数据反馈Off-policy学习算法.该算法利用历史输入输出数据实现最优输出反馈策略的学习,同时克服了On-policy算法需要频繁与实际环境进行交互这一缺点.除此之外,与On-policy算法相比, Off-policy学习算法具有克服学习噪声的影响,使学习结果收敛于理论最优值这一优点.最终https://blog.sciencenet.cn/blog-3291369-1348607.html
12.安全开机指南安全专家三招教你防御WannaCry勒索病毒雷峰网大家可能常听On/Off Policy策略这个词。 在蒙特卡洛采样中使用了πε策略来采样,学的并不是π,是带探索的πε。因为用来评估的数据,是从带探索的策略产出来的,而不是从我们想要学的策略上产生出来的。这个区别会导致把探索也作为策略的一部。这种采样与更新的策略是一样的算法叫做On Policy。 https://www.leiphone.com/category/industrynews/2PRAGhfWEZ3oxGnW.html
13.强化学习中onpolicy与offpolicy有什么区别?The definitions of onpolicy and off policy On-policy方法尝试评估或改进用于决策的策略,而Off-policyhttps://www.zhihu.com/question/57159315/answer/3301894198