0x00 前言
我最早接触 AI 的时间可以追溯到 2017 年,那会我正在用 TensorFlow 为爬虫训练验证码识别模型。
可惜那个时候没有系统去学训练模型的基础理论,一度停滞,直到最近几年开始研究应用 AI :
- 2021 年,OpenPose,《视觉 AI 游戏辅助》
- 2022 年,Mediapipe,《AI 人脸识别》
- 2023 年,Stable-Diffusion,《SD 绘画》
但随着我研究应用 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) |