| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 游戏开发 -> [Unity3D]ml-agent入门案例 -> 正文阅读 |
|
|
[游戏开发][Unity3D]ml-agent入门案例 |
|
ml-agent是unity中用于将机器学习算法嵌入到gameobject的一个插件。在我的游戏项目中,我想尝试将机器学习和深度学习算法带入到游戏中,让游戏角色能够利用我们给出的数据自动通关,因此想到尝试使用这个插件。写下这个帖子供也用到mlagent的入门同学进行学习参考。ml-agent的详细内容可以参照官方文档,里面也有详细的英文介绍和入门教程(中文版的维护的并不太好,所以学习主要以英文为主)。 环境搭建环境搭建主要是安装配置unity以及anaconda,这些教程网络很多,这里不赘述。 ml-agent包下载下载ml-agents插件和安装所需要的包
下载完成后开始安装所需要的包。
训练最简单的例子3DBall 打开uinty,插件的项目在Project里,在场景中找到3DBall就可以进入到该场景中。 之后在命令行把目录切换到根目录下,切记,否则可能出现找不到文件,因为他会去config下找trainer_config.yaml文件,如果在其他目录下会找不到。然后在命令行输入
如果没有报错,那么命令行会提醒你在unity中点击开始按钮就会开始训练了。 训练这个是训练前的情况,可以看到小球很容易就掉到盒子下方了。(中间的卡顿是训练周期结束重置造成的)。
这个经历了20000次左右训练之后的,盒子基本可以控制住小球不掉落,越多的训练小球能够保持得更稳。
代码分析游戏中的机器学习主要分为几个步骤:接口抽离、算法选取、设计环境、参数调整。环境已经又unity调整好了,所以这里不多说,参数调整也不是这里的重点,主要聊聊接口抽离和算法的选取。 接口抽离
算法选取这里使用的是PPO(Proximal Policy Optimization)算法,是一种新型的Policy Gradient算法。Policy?Gradient不通过误差反向传播,它通过观测信息选出一个行为直接进行反向传播,当然出人意料的是他并没有误差,而是利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。 拓展通过这个入门案例可以将思路拓展到更多的游戏。这种强化学习的思想是让计算机在不断尝试中,以获得最优学习结果的前提下,找到每个状态下的最优行为,也称作马尔可夫学习过程。ml-agent官方也提供了很多应用场景,可以在包中自行尝试。 ? |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/13 5:30:47- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |