加载中...

「Gym 课程笔记 00」如何教 AI 玩游戏 ?(引子)


0x00 前言

我最早接触 AI 的时间可以追溯到 2017 年,那会我正在用 TensorFlow 为爬虫训练验证码识别模型。

可惜那个时候没有系统去学训练模型的基础理论,一度停滞,直到最近几年开始研究应用 AI

但随着我研究应用 AI 越深、我就越发现问题:

我的学习成功都是基于别人训练得到的模型基础之上的,充其量就是在基础模型上面、做迁移学习训练进行微调。

但是如今 AI 爆发式增长,很多资本转投 AI 产品,一天涌现一批,我不可能学得完的。

唯有掌握基本的原理,才能以不变应万变。所以我决心要转向理论 AI 的研究。

但是我非 AI 专业出身,如何去学、怎么系统地学,成为我当下的第一个门槛。

0x10 契机

早在 18 年训练验证码的时候,我就知道学习理论 AI 是一个很枯燥的事情 —— 因为结果是不可预知的,每次训练都只能等待漫长的时间后才可以看到结果。

学习一件新事物,兴趣和 ChatGPT 总是最好的老师。但学习理论 AI 的路上,我还需要一个契机 —— 一个让等待不再枯燥的契机。

直到某一天,我看到了有人开始训练 AI 玩游戏 …

0x11 AI 贪吃蛇

贪吃蛇应该是大部分人都玩过的一款益智游戏,但是玩贪吃蛇可以把整个屏幕填满通关,又有多少人试过?

去年 B 站有位大佬分享了用 AutoGPT 通过贪吃蛇的训练代码:

备用视频源:youtube

来源:【视频】【代码

我当时第一次看到这个视频,给我的感觉就是惊艳,简直打开了新世界的大门。

但不久之后,我又看到了另一个更震撼的视频 …

0x12 AI Pokemon

口袋妖怪相信是很多 90 后难忘的童年回忆,但你可曾想过、竟然有一天 AI 也沉迷玩口袋妖怪,还把里面隐藏的随机事件拿捏的死死的 …

Youtube 上有位大佬分享了 Pokemon 的训练代码,还从 AI 的各种奇怪行为聊到了人生意义:

备用视频源:youtube

来源:【视频】【代码

0x30 怎么教 AI 玩游戏 ?

类似的案例还有好多,它们都证明了教 AI 玩游戏是可行的。

但是如何去教呢?

通过查看这些案例的训练代码,它们都不约而同地指向了 OpenAI 的一个强化学习系列教程: Gym (新版已更名为 Gymnasium)

我发现,Gym 的课程提供了一堆小游戏的预设环境,训练的时候无需关心游戏的开发和交互接口。

这些小游戏由浅入深地从简单控制、到复杂任务进行设计,我们如果按顺序全部把每个小游戏用强化学习训练出模型,就能基本掌握一些常用的理论知识了,所谓寓教于乐也不外如此。

本篇只是抛砖引玉,系列的后续将会尽可能地记录我在学习 Gym 的过程中遇到一切事情,如果你和我一样也是初学者,希望能给到你一些参考价值。

0x40 附:训练课程大纲

Gym 官网左侧的导航栏中,可以看到在 ENVIRONMENTS 下面已经分门别类地列出了所有强化学习课程,往后的笔记会围绕这些问题一个个解决:

类型 问题 描述 演示
Classic Control Acrobot 杂技机器人
Classic Control Cart Pole 车杆
Classic Control Mountain Car Continuous 山地车(连续版本)
Classic Control Mountain Car 山地车(离散版本)
Classic Control Pendulum
Box2D Bipedal Walker 双足步行器
Box2D Car Racing 赛车
Box2D Lunar Lander 月球着陆器
Toy Text Blackjack 二十一点
Toy Text Taxi 出租车
Toy Text Cliff Walking 悬崖行走
Toy Text Frozen Lake 冰湖
MuJoCo Ant 蚂蚁
MuJoCo Half Cheetah 半猎豹
MuJoCo Hoppernt 漏斗
MuJoCo Humanoid 人偶
MuJoCo Humanoid Standup 站立人偶
MuJoCo Inverted Double Pendulum 倒立双摆
MuJoCo Inverted Pendulum 倒立摆
MuJoCo Pusher 推杆
MuJoCo Reacher 触手
MuJoCo Swimmer 游泳者
MuJoCo Walker2D 2D 步行者
Atari Adventure Atari 2600 游戏集合之一
(需要安装 ROM)
Atari
Atari Zaxxon Atari 2600 游戏集合之一
(需要安装 ROM)

文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
「Gym 课程笔记 01」环境搭建与基本概念 「Gym 课程笔记 01」环境搭建与基本概念
Gymnasium 是 OpenAI Gym 库的一个维护分支,它定义强化学习环境的标准 API,提供了一系列已经构建好的 RL 问题的标准环境,无需过多操心交互问题、只需要关注强化学习算法本身,故适合 RL 入门学习使用。
2023-12-04
下一篇 
「Openkore 笔记」入门篇 - 基础知识科普 「Openkore 笔记」入门篇 - 基础知识科普
针对 OpenKore 基础配置和使用进行详细说明:OpenKore 和传统的 Bot 还不太一样,它是纯命令行交互、没有 UI 界面,但这为训练强化学习模型提供了可能性。
2023-11-06
  目录