DeepMind 机器人学习打乒乓球,朝着「专业运动员水平的速度和性能」发展

本文主要是介绍DeepMind 机器人学习打乒乓球,朝着「专业运动员水平的速度和性能」发展,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这几天全球各界最火热的话题非奥运会莫属,而其中乒乓球比赛更是引起了互联网的讨论热潮,无论是欢呼也好、争议也罢,在现实世界人类的乒乓球大赛风生水起的同时,AI已经偷偷在乒乓球上“出师”了——
——DeepMind近日发布一项新工作,展示了第一个能够在乒乓球竞技比赛中达到业余人类选手的机器人,这一工作的成功标志着机器人任务朝着「实现人类水平的速度和性能」这一目标迈出了一步。
在这里插入图片描述

乒乓球是一项对速度、精确度和策略都有极高要求的体育项目,人类运动员需要经过多年的训练才能精通。而本研究通过分层和模块化策略架构、迭代定义任务分布、模拟到模拟适配层、域随机化、实时适应未知对手和硬件部署等技巧,在多次与人类进行竞赛训练后,证明了该机器人在模拟复杂人类技能和实时决策方面的潜力。
本文的主要贡献为:
1)分层和模块化策略:研究人员设计了一个由多个低层次技能策略组成的系统,这些策略包括不同的击球方式,如正手、反手、发球等。这些技能策略是模块化的,可以独立训练和优化。
2)零样本模拟到现实(Sim-to-Real):机器人直接从模拟环境中学习,然后无需在真实世界中进行微调即可应用所学技能。这通过迭代的方式实现,即在模拟中训练,然后在真实世界中测试,并将测试结果反馈到模拟训练中。
3)实时适应对手:机器人能够实时分析对手的打球风格和技能水平,并根据这些信息调整自己的策略,以更好地应对不同的对手。
——分层和模块化策略——
详细来讲,分层和模块化策略架构是通过构建一个具有层次结构的控制架构来实现的,这个架构包含两个主要部分:低层次技能策略(Low Level Controllers, LLCs)和高层次控制器(High Level Controller, HLC)。其具体实现方式为:
在这里插入图片描述

▲图|LLC 训练库©️【深蓝AI】编译
A」低层次技能策略(LLCs):
LLCs是针对特定乒乓球技能(如正手击球、反手击球、发球等)的训练策略。每个LLC专注于一项特定的技能,并被训练以产生关节速度命令。例如,一个LLC可能专门用于以正手风格击球并打向球场的对角线,而另一个LLC可能专注于保守地使用反手击球。这些技能策略是独立训练的,并且可以针对不同的比赛情况和对手进行优化。
B」高层次控制器(HLC):
●HLC的作用是在选择时刻决定使用哪个LLC。它不是以固定频率控制,而是在对手每次击球后触发,根据当前的比赛统计数据、技能描述符和对手的能力来选择最佳技能。

●HLC内部有多个组件,包括风格选择策略、旋转分类器、技能描述符、比赛统计、策略和LLC偏好(H值)等,这些组件结合起来产生最终的LLC选择。
C」技能描述符:
为了帮助HLC做出决策,每个LLC都有一个技能描述符,这些描述符提供了关于LLC在特定来球情况下的性能指标,如预计的回球率、击球速度和落点位置。

——零样本模拟到现实——
此外,本文所实现的零样本模拟到现实的技术,包括一种迭代方法来定义基于现实世界的任务分布,并定义自动课程,具体来说:
▲图|模拟中的样本训练与零样本迁移到硬件的过程并排显示©️【深蓝AI】编译
在这里插入图片描述

A」模拟训练(Simulation Training):机器人首先在模拟环境中进行训练。这个环境能够模拟乒乓球的运动和机器人的行动,但是是在虚拟空间中进行。
B」模拟到现实(Sim-to-Real Transfer):研究人员采用了一系列的技术来减少模拟环境和现实世界之间的差异,这被称为“sim-to-real gap”。这些技术包括系统识别(system identification),动力学随机化(dynamics randomization),以及模拟延迟和重置策略。
C」适配层(Adapter Layers):为了进一步缩小sim-to-real gap,研究人员开发了适配层,如FiLM(Feature-wise Linear Modulation)层,这些层能够学习如何将模拟中的行为调整为适合现实世界的行为。
D」迭代真实世界数据收集(Iterative Real-World Data Collection):机器人在现实世界中与人类玩家进行比赛,收集关于其性能和对手行为的数据。这些数据被用来进一步训练和改进模拟环境中的策略。
E」自动课程设计(Automatic Curriculum Design):通过迭代的训练和评估周期,机器人的技能库不断扩展和改进,自动适应真实世界的任务分布。
通过这些步骤,机器人能够在没有在现实世界中接受大量训练的情况下,展示出与人类玩家竞技的能力。

——实时适应未知对手——
在这里插入图片描述

▲图|分组比赛的实验对比数据©️【深蓝AI】编译
对于未知对手的实时适应,研究者们通过29场机器人与人类之间的比赛评估了策略性能,其中机器人赢得了45%(13/29)。所有参赛者都是未见过的玩家,他们的技能水平从初学者到锦标赛水平不等。虽然机器人在与最先进玩家的所有比赛中都“惨败”,但它赢得了与初学者的100%比赛和与中级玩家的55%比赛,充分展示了其拥有的乒乓球业余选手技能。
机器人在比赛中实时更新其对不同低级技能策略(LLCs)的偏好,这些偏好是基于当前比赛统计数据和对手的行为模式;
机器人通过实时追踪比赛统计数据,来评估自身和对手的强项和弱项。这些数据这包括击球速度、落点、旋转等信息;
在比赛中,机器人系统还会使用一些预定义的启发式策略来从技能库中快速筛选出可能有效的技能。机器人通过与不同技能水平的人类玩家比赛,学习并改进其决策过程,从而提高对各种对手的适应性和鲁棒性。

——讨论——

总的来说,该项工作展示了在复杂物理任务中,机器人能够通过学习达到与人类竞争者相媲美的水平;这项研究不仅在机器人领域有重要意义,其方法和技术也可以应用于其他需要快速反应和策略决策的领域,比如康复医疗、教育等领域。
当然,作者在论文中也指出了一些局限性,例如由于系统延迟、数据不足或重置动作之间的时间限制,机器人在反应极快的球时存在困难;机器人无法处理高于某个阈值(例如大约6英尺或更高)的球,因为这超出了摄像头的视野范围;且由于内置的碰撞避免协议,机器人在处理非常低的球时存在问题,这些协议虽然对保护机器人的拍子至关重要,但也限制了机器人处理靠近桌面的球的能力;景观机器人在一定程度上改变了球的落点,但其可预测性仍有改进空间;在泛化能力方面,机器人的表现依旧有限。

这篇关于DeepMind 机器人学习打乒乓球,朝着「专业运动员水平的速度和性能」发展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126796

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss