英文原文:

https://towardsdatascience.com/robotic-control-with-graph-networks-f1b8d22b8c86


强化学习算法是不是另一种形式的AI4Science?

强化学习是一种时序决策算法,比较经典的应用场景就是机器人控制,但是实际上机器人控制是有两种主流的控制算法的:一类是把机器人控制问题看作是自动控制问题,结合物理规则进行数学建模,这时候的机器人控制问题就被转换为一种类似Scince问题的形式,对机器人下个时序的决策就是在根据建立好的数学模型进行方程式的求解,该种方式最大的优势就是可以获得较为精确的解,但其缺点就是计算复杂并且难以自动化建模,从而难以有较好的适用范围,需要较大的人力投入和较长的周期,对于复杂场景难以应付;另一类则是使用AI方法,也就是机器学习方法中的强化学习算法,这时候不需要对机器人的动力学(dynamic)进行建模,而是采用trial-and-error 的方法通过对环境的不断交互来采集数据并用这些数据训练强化学习算法,该种方法的优点就是不需要人力去对机器人的动力学建模,自动化求解程度高,适用的场景更广,可以解决更复杂的问题,求解周期更短,其缺点就是依赖数据,往往需要较大的数据量,并且有sim2real的问题,并且在real的时候难免要用到真实机器人进行较长时间的真实场景下的数据采样,对真实机器人造成一定损害甚至是损坏,并且求解的往往是近似解,在简单场景下往往自动控制算法的解要优于强化学习算法。

可以看到,如果单纯的只从机器人控制问题出发按照传统自动控制的角度来看,机器人控制其实也可以被视作一种Science问题,而强化学习算法也是在一定程度上起到了对自动控制算法的替代,在如此问题背景的限制下强化学习算法也可以被看做是一种AI4Science算法。

本文主要的讨论是:

https://towardsdatascience.com/robotic-control-with-graph-networks-f1b8d22b8c86

这篇blog中最开始讨论强化学习算法是一种融合进环境动力学(dynamic)的决策方法,解决机器人控制的深度强化学习算法可以看作是一种显示/隐式的拟合环境动力学(dynamic)后的决策算法,而深度强化学习算法所使用的神经网络可以看作是对这个动力学(dynamic)的近似器(approximator)。

既然深度强化学习算法可以被看作是一种基于动力学(dynamic)近似器(approximator),那么就必然存在使用那个类型的神经网络作为近似器(approximator)可以有更好的性能表现(performance)。

由于不同的模型,不同类型的神经网络有着不同bias,因此不同的神经网络对不同的问题有着不同的表现能力,比如:线性分类问题如果使用非线性模型进行拟合是没有使用线性模型拟合的性能表现好的;对于图像分类问题,使用全连接网络是没有使用CNN网络性能表现好的;正如同这些cases一样,对于机器人控制问题如果使用深度强化学习算法的话,使用图神经网络可以提高算法的performance。

给出一个机器人控制的示意图:

可以看到,在关节型的机器人控制问题上,图网络可以更好的表现机器人关节间的拓扑关系,并且由于图网络更关注的是关节点之间的拓扑关系而不是关节点之间的距离关系,因此机器人的躯干和四肢的长短并不会影响图网络的拓扑关系,因而使用图网络来对关节型机器人的深度强化学习算法做拟合会有更好的泛化性,取得更高的performance。

PS. 要注意,这里之所以可以使用图网络来作为强化学习算法的拟合函数,其原因在于关节型机器人的各关节之间的拓扑关系具有不变性。可以说,用图网络提高机器人控制算法性能是用于在关节型的机器人中的,如果是非关节型的机器人那么也很难适用这里提到的图神经网络的。

相关论文:

Relational inductive biases, deep learning, and graph networks

Graph Networks as Learnable Physics Engines for Inference and Control

机器人控制与图网络( 利用关系归纳偏置改善泛化和控制)—— Robotic Control with Graph Networks——Exploiting relational inductive bias to improve generalization and control的更多相关文章

  1. UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

    在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Compositi ...

  2. [UML][转]UML类图符号 各种关系说明以及举例

    修改自:http://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.html UML中描述类和类之间相互关系的方式包括:依赖(Dependency ...

  3. [转发]UML类图符号 各种关系说明以及举例

    UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalizati ...

  4. UML类图符号 各种关系说明以及举例(转载)

    文章出处:http://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.html UML中描述对象和类之间相互关系的方式包括:依赖(Dependen ...

  5. 对Inductive Bias(归纳偏置)的理解

    参考资料: https://en.wikipedia.org/wiki/Inductive_bias http://blog.sina.com.cn/s/blog_616684a90100emkd.h ...

  6. 设计模式之UML类图的常见关系

    设计模式之UML类图的常见关系 本文来自转载 烧点饭博客 本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association), ...

  7. 转 UML类图几种关系的总结

    UML类图几种关系的总结   在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregati ...

  8. UML类图几种关系的总结(转)

    原文:http://gjhappyyy.iteye.com/blog/1422515 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), ...

  9. UML类图的常见关系1

    设计模式之UML类图的常见关系(一)   本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association),聚合(Aggre ...

  10. UML类图几种关系的总结(网摘)

    Source link:http://www.open-open.com/lib/view/open1328059700311.html UML类图几种关系的总结 原文出处:[深度开源] 在UML类图 ...

随机推荐

  1. kettle从入门到精通 第十四课 kettle kafka 生产者和消费者

    1.本节课讲解kafka生产者和消费者两个步骤.这两个组件可以实现数据实时同步(后续课程会讲解). 2.kafka producer 步骤 1)step name:自定义名称 2)connection ...

  2. MySQL数据库开发(2)

    单表查询 单表查询即对单个表进行查询. 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY fie ...

  3. 590. N 叉树的后序遍历 | Javascript 递归实现

    题目 题目链接:590. N 叉树的后序遍历 解题思路 递归后续遍历,正常的思路 然后有一个要注意的地方就是如果js定义了全局变量来存储结果,每次调用函数之前一定要记得清空,否则答案会带上之前的结果. ...

  4. PI规划会,研发团队价值聚焦的一剂良方

    随着数字化建设如火如荼地推进,中大型企业的数字化建设团队规模也越来越大,团队规模的扩大一方面带来了更多产能与可能性,另一方面,不同的角色在不同的业务场景也带来了一些现实问题,例如: 作为CIO 或产品 ...

  5. SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?

    本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...

  6. Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南

    Kotlin 数据类型 在 Kotlin 中,变量的类型由其值决定: 示例 val myNum = 5 // Int val myDoubleNum = 5.99 // Double val myLe ...

  7. ClickHouse的物化视图及MySQL表引擎

    MySQL表引擎可以与MySQL数据库中的数据表简历映射,并通过SQL向其发起远程查询. MySQL表引擎可以与物化视图结合,来同步更新MySQL数据库中的数据. 语法: CREATE TABLE [ ...

  8. 超大容量 | 瑞芯微RK3588J工业核心板新增16GB DDR + 128GB eMMC配置!

    作为瑞芯微的金牌合作伙伴,创龙科技在2023年9月即推出搭载瑞芯微旗舰级处理器RK3588J的全国产工业核心板--SOM-TL3588. SOM-TL3588工业核心板是基于瑞芯微RK3588J/RK ...

  9. 嵌入式知识分享——GDB程序调试方法说明

    前  言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu 18.04.4 64bit 虚拟机:VM ...

  10. 【经验分享】Docker容器部署方法说明

    前  言 本案例适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu 18.04.4 64bit 虚拟机:VMwa ...