Unity拥抱AI:用机器学习训练NPC、机器人、模拟自动驾驶

2024-03-13 23:30

本文主要是介绍Unity拥抱AI:用机器学习训练NPC、机器人、模拟自动驾驶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在李世石和柯洁战败后,人类在棋类竞技场已经难与AI争锋。很多人会说,作为非职业棋类选手,不在乎下不下的赢棋。想一想,要是以后打游戏也赢不了AI了……

这件事情已经发生了,且还在加速。雷锋网曾报道,2017年9月,Open AI的DotA 2游戏人工智能在1V1中击败了人类玩家。

同年9月,全球最大的3D游戏引擎Unity宣布发布Unity Machine Learning Agents(ML-Agents),一款提供给游戏开发者的开源AI工具包。Unity这一开源工具包是Unity将机器学习应用在游戏的成果,AI已经附能各行各业,那么在游戏行业,会带来哪些有趣的成果?

Unity拥抱AI:用机器学习训练NPC、机器人、模拟自动驾驶

5月11-13日,Unite Beijing 2018在国家会议中心召开。Unity AI与机器学习副总裁Danny Lange分享了ML-Agents的新进展,雷锋网也来到了现场。

ML-Agents助力游戏开发

Lange介绍到,机器学习对于游戏开发来说很重要,能够让游戏开发过程更加简单,让游戏变得更加有吸引力,开发者可以不用每一个方案都编程,游戏与玩家的互动变化可以让系统自己学习。就像人从环境当中感知,并作出反应一样。ML-Agents可以以相同的方式来训练这些系统。

Lange给大家演示了一个Demo,未来主义的赛车游戏,Demo中左边是人类,然后右边是机器学习的Agent。一开始的时候,Agent转弯不好,容易装车,但是它慢慢学习人类的操作,大概25分钟的训练之后,你可以看到可能还是有点不稳,但是不会再撞车了。经过不断的训练,Agent能编程非常好的选手。

那么,具体游戏场景中,可以有以下应用:机器学习可以应用在几个方面。第一个是创建NPC,有多种行为的NPC, NPC已经学习了很多人类行为,这会让与人类的交互更为自然。第二个是游戏本身。AI能够为优化玩家的乐趣进行学习,而不是为开发者的乐趣而进行优化。对于玩家来说,会有更多个性化和定制化的东西。第三个是一个完全不同的领域,就是我们用机器学习在游戏发布前测试游戏。确保使用agent代替人类玩家进行游戏时,你能够了解游戏是否能顺利进行。

此外,在游戏中如果人类玩家数量很少,就可以用agent代替人类玩家。最后一个方面是match making。使用机器学习可以将合适的玩家找出来,匹配在一起玩游戏。可以让机器学习系统了解如何优化游戏时间、为玩家配对以及如何最大化利用游戏时间。

Unity拥抱AI:用机器学习训练NPC、机器人、模拟自动驾驶

(由Unity创建的一个网球游戏RL/ML模拟训练环境示例)

ML-Agents训练自动驾驶、机器人

从两年多前,Unity就开始酝酿转型,从一家纯引擎提供商转向互联网+云增值服务。Danny Lange是Unity发力AI领域的背后推手,在加入Unity之前,Lange曾担任Uber机器学习负责人,在更早之前,Lange还负责过亚马逊和微软的机器学习产品研发。

除了游戏以外,ML-Agents在自动驾驶和机器人领域还有很多应用场景。Lange介绍到,自动驾驶是ML-Agents很大的应用领域,因为这样就不需要像Uber那样在真实的路上驾驶,用机器学习模拟就可以避免在真实道路测试带来的事故。另外一个领域是机器人,用增强型学习,你可以在虚拟环境去训练机器人,可以很快地完成几十万或者几百万次训练。训练好的模型可以放到真实的机器人上面应用。

此外,ML-Agents也可以应用在建筑设计中,比如要如何合理设计通道、人流,用机器学习的方式去模拟建筑内的路线图。


原文发布时间为:2018-05-22

本文作者:李诗

本文来自云栖社区合作伙伴“雷锋网”,了解相关信息可以关注“雷锋网”。

这篇关于Unity拥抱AI:用机器学习训练NPC、机器人、模拟自动驾驶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.