当前位置: 首页 > news >正文

强化学习概览

强化学习的目标

智能体(Agent)通过与环境(Environment)交互,学习最大化累积奖励(Cumulative Reward)​的策略。

数学抽象 马尔科夫决策过程(MDP)

收益

由于马尔科夫决策过程是一个序列决策过程,每一时刻的动作不仅会影响当前状态,还会对后续的环境状态产生影响。也就是说,当前时刻能够获得较多奖励的动作从长远来看也许并不是最佳的,而短期来看不太好的动作却也许能在未来带给智能体更多的奖励。因此智能体在决策时不能单单考虑这一时刻的奖励,而应该考虑到动作对未来的长期影响。为此,我们需要在奖励的基础上定义另一个评价指标来度量智能体所能获得的长远利益。在强化学习中,这一评价指标被称为收益

折扣因子

我们需要对未来每一时刻的奖励乘上一个折扣因子,并且越往后,衰减越大。为什么要这样做呢?直觉上来看,时间上越远,存在的不确定越多,对当前时刻的贡献也就越小,因此需要用一个折扣因子来描述不同时刻奖励对当前时刻的贡献程度。

价值

价值实际上也就对应着强化学习中经常提到的Q值。

最终智能体的目标就是学习到一个最优策略,使得智能体在任意状态下的价值最优,定义最佳策略下的动作价值函数为最优价值函数,也就是最优Q值。很显然,当我们已知了最优Q值时,每一状态下对应Q值最大的动作就是最佳动作。

因此,我们可以得出这样一个结论:求解最优策略也就等价于求解最优Q值。

强化学习算法分类

基于价值估计的算法

基于价值估计的算法是对最优Q值进行估计

基于策略优化的强化学习算法

直接对最优策略进行估计

随机性策略:对状态到最优动作概率分布之间的映射进行估计,然后从该概率分布中进行采样得到输出动作。
确定性策略:直接对状态到最优动作之间的映射进行估计。定义一个策略的性能函数作为优化目标,在强化学习中,这个性能函数通常被定义为一定策略下的平均收益。然后我们只需要依据优化目标对策略函数进行梯度上升,最终就可以得到最优策略。策略优化算法的特点是,神经网络的输出即为最优动作,因此这里的动作空间既可以是离散的也可以是连续的。在优化过程中,这里的性能函数通常通过一定的估计方法得到。

策略梯度算法
TRPO(trust region policy optimization, 信任域策略优化))
PPO(proximal policy optimization,邻近策略优化)
算法的训练在 与环境交互采样数据 以及 利用随机梯度上升优化一个替代(surrogate)目标函数 之间交替进行。相较于标准梯度策略算法每次数据采样只能进行一次梯度更新,TRPO与PPO 所使用的目标函数能够利用同一批次数据进行多次梯度更新。PPO 比 TRPO(trust region policy optimization, 信任域策略优化)更为简单。

基于演员-评论家的强化学习算法

结合了价值估计方法与策略优化方法的特点,同时对最优Q值以及最优策略进行学习,最终策略网络的输出即为最优动作。

Actor网络就像是一个执行者,用来输出动作,而Critic网络则对Actor输出的动作进行评价,然后Actor再根据Critic的评价不断地修正自己的策略,Critic则通过贝尔曼方程对自身网络进行迭代更新,最终我们就可以得到一个较好的Actor网络作为智能体最终的策略。

多智能体

首先,之前我们提到马尔科夫决策过程最重要的特征就是环境下一时刻的状态只取决于当前时刻的状态和动作,也就是说环境的状态转移概率是一个确定的值,它保证了环境的平稳变化,使得智能体能够学习出环境的变化规律,从而推理出状态的变化过程。而在多智能体系统中,每个智能体所对应的环境包含了其他智能体的策略,此时智能体状态的改变不再只取决于自身的动作和状态,还会取决于其他智能体的策略,而这些策略在智能体学习的过程中会不断地发生变化,这也就导致了每个智能体的状态转移概率随着时间发生变化,使得环境非平稳变化,马尔科夫特性不再满足,给智能体策略的学习带来了困难。

而在更加实际的情况中,每个智能体只能观测到部分环境状态信息,进一步恶化智能体的学习性能。

一种最直接的解决环境非平稳性和局部可观性的方法就是对所有的智能体采取集中式学习的方法,将它们当做是一个智能体,直接学习所有智能体状态到所有智能体动作之间的映射,但是一方面这种方法需要一个集中式控制中心与智能体之间进行大量的信息交互,另一方面神经网络的输入输出维度会随智能体数目指数增大,难以收敛。

参考

https://zhuanlan.zhihu.com/p/439629465
https://www.zhihu.com/column/c_1440728531004870656
https://zhuanlan.zhihu.com/p/546276372
https://zhuanlan.zhihu.com/p/440451849

相关文章:

  • 江协科技/江科大-51单片机入门教程——P[1-3] 单片机及开发板介绍
  • Redis缓存淘汰算法——LRU
  • Vue3 中如何实现响应式系统中的依赖收集和更新队列的解耦?
  • Qt——使用QtConcurrent::run开启的线程,程序退出后仍在后台运行的解决方法(QFutureWatcher监视线程)
  • SQL笔记#复杂查询
  • 前端网页或者pwa如何实现只横屏显示,设备竖着的时候依然保持横屏
  • Linux系统之DHCP网络协议
  • 网络安全防御模型
  • Oracle23版本 创建用户 报 00959和65096错误解决办法
  • sass使用技巧与问题解决方案
  • Web Storage: LocalStorage 和 SessionStorage 深入解析
  • DeepSeek与Fluent仿真:开启流体力学学习新征程
  • ubuntu环境中安装latex并使用vscode
  • 六十天前端强化训练之第一天HTML5语义化标签深度解析与博客搭建实战
  • MySQL的Binlog解析
  • pycharm远程连接服务器运行pytorch
  • web理论总结
  • MQTT实现智能家居------5、交叉编译
  • 《从零到全栈:CSS3新增属性》
  • 【每日八股】MySQL篇(三):索引(上)
  • 前端做的比较好的网站/长春seo网站排名
  • b站 私人直播间/怎么制作seo搜索优化
  • 谁帮助汉字叔叔做网站/推广普通话手抄报简单
  • 开发网页系统一般多少钱/seo信息网
  • 做logo的著名网站/知名seo公司
  • 建设网站的功能及目的是什么意思/企业培训