【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构

简介: 【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构
  • 论文题目:Integrated architectures for learning, planning, and reacting based on approximating dynamic programming

所解决的问题?

  提出Dyna-PI结构和Dyna-Q结构。

背景

  Dyna结构是用机器学习的方法逼近动态规划算法,动态规划算法本身并不是一种学习算法,是一种居于模型的最优策略计算方法。它与state-space search算法非常像,但是与之不同的是动态规划是一种增量式的学习算法,并不考虑action sequences。正是这种增量式的学习算法,使得其更容易处理随机环境和非完美信息问题。对于learned world model问题,通常都是随机的和不确定的,因此动态规划算法就非常合适。Dyna框架就是learn a world model online,与此同时,用动态规划算法学习规划最优行为。

所采用的方法?

Dyna-PI:Dyna by Approximating Policy Iteration

  Dyna-PI中的PI表示的是Policy Iteration,其由四大组成部分:

  1. policy:接收一个当前状态,产生一个动作。
  2. world:接收一个动作,产生下一个状态和奖励信息。
  3. world model:与real model类似,接收状态动作,输出下一个状态
  4. evaluation function:评估状态的好坏。

  其结构如下所示:

  Evaluation Function和Policy可以用函数近似的方法来拟合:决策树、K-D tree,神经网络或者符号规则。

  算法流程

  但是当world model发生改变之后,算法需要很长一段时间才能去适应改变了的model。产生这类问题的原因在于,算法收敛之后,对于非最优策略下的action是很少去选择的,概率基本为0,因此当model改变之后,需要大量的采样才能知道新的最优策略。

Dyna-Q:Dyna by Q-Learning

  将Q-Learning算法融入进来,其实也就是max那一步引入进来,并且作者在选择动作的时候用的玻尔兹曼分布,并且在奖励函数上加噪声来增加探索。

总结

  算法分为两步:1. 使用当前策略与环境互动产生数据,并用这些数据学一个world model出来。2. 基于learned model产生的数据也用来做策略改进,进而减少与真实model的交互。

其它参考链接

相关文章
|
28天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
46 3
|
2月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
57 3
|
2天前
|
人工智能 自然语言处理
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
RWKV-7是RWKV系列的最新大模型架构版本,具有强大的上下文学习能力,超越了传统的attention和linear attention范式。本文详细介绍了RWKV-7的主要功能、技术原理及其在多语言处理、文本生成等领域的应用场景。
37 7
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
|
2月前
|
测试技术
软件质量保护与测试(第2版)学习总结第十三章 集成测试
本文是《软件质量保护与测试》(第2版)第十三章的学习总结,介绍了集成测试的概念、主要任务、测试层次与原则,以及集成测试的不同策略,包括非渐增式集成和渐增式集成(自顶向下和自底向上),并通过图示详细解释了集成测试的过程。
74 1
软件质量保护与测试(第2版)学习总结第十三章 集成测试
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
220 1
|
3月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
76 18
|
2月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
123 0
|
2月前
|
机器学习/深度学习 算法 前端开发
集成学习任务七和八、投票法与bagging学习
集成学习任务七和八、投票法与bagging学习
28 0
|
3月前
|
域名解析 弹性计算 云计算
【深度好文】中小企业上云,为什么做好网络架构规划很重要!
本文通过一位小微软件公司技术负责人的实际体验为始,引发了对大量小微企业上云架构实践的研究。 发现中小企业上云时,往往聚焦于业务测试和服务尽快上线,很难有精力投入在云上技术架构的规划和设计中。所以,大家云上的架构五花八门,很多架构缺乏长远规划,极可能给业务未来发展埋下隐患。 基于此,我们沉淀了一套《应用上云经典托管架构》,强调了上云架构规划对于业务的重要性,并带领大家理解了方案中的网络规划和架构设计全过程。 作为从事企业上云IT部门,或者初创事业的个人开发者们,都可以参考和了解。
|
2月前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习

热门文章

最新文章