(
Back to course page
)
Edit
作业总览
本次作业的目的是使用监督学习来模仿玩家进行游戏时的动作。
首先,下载本次作业程序包:
(点击下载ZIP)
在本次作业中,你需要收集游戏数据、提取特征、训练监督学习模型,并测试模型在游戏中的表现。
Edit
收集数据
在
play.py 中已经准备好了收集数据的运行入口。
运行
play.py 进行游戏时,程序将记录每一时刻的游戏画面以及玩家按下的按键(左、右、上)。
请注意,监督学习主要用于模仿训练数据中的行为。
如果采集数据时包含大量错误操作,模型通常也会学习这些错误行为。
得到的数据文件将保存在
logs 目录中。
Edit
训练模型
learn.py 是提取特征和训练模型的主要代码:
-
extract_features
函数负责提取特征。已有的简单实现会记录屏幕上各个位置的信息。
-
完成特征提取后,玩家按键信息将作为类别标签,与特征共同构成监督学习数据集。
-
训练完成的模型将保存在
logs 目录中。
可以修改特征提取方法以及训练数据的加载路径,然后运行
learn.py 训练模型。
作业框架默认使用
sklearn
中的
RandomForestClassifier
训练模型。你还需要尝试其他监督学习方法,并比较不同方法的性能。
Edit
测试模型
修改
test.py 中要加载的模型路径后运行程序。
程序将自动开始游戏并输出测试结果。
测试时应尽量采用一致的实验设置,并记录评价指标、运行结果和失败案例,以便公平比较不同模型及特征提取方法。
Edit
作业内容
-
使用现有的特征提取方法收集训练数据,尝试至少三种监督学习方法;
在报告中介绍这些学习方法,并比较它们的测试性能。
-
修改或重新设计特征提取方法,并通过对比实验分析新特征是否改善了模型表现。
Edit
作业报告
本次作业需要提交实验报告和源码。实验报告应至少包括以下内容:
- 训练数据的采集方式、数据规模以及数据质量分析;
- 至少三种监督学习方法的原理介绍、参数设置和性能比较;
- 对原有特征提取方法所做的修改及其设计理由;
- 模型测试方式、评价指标和实验结果;
- 模型的典型成功案例和失败案例分析;
- 最终采用的模型及选择该模型的理由。
使用
实验报告模板(点击下载)
撰写实验报告。
Edit
作业提交
请按照以下要求提交作业:
-
将实验报告保存为PDF文件,并以学号命名,例如:
231221001.pdf。
-
将实验报告和相应源码打包成ZIP文件,并以学号命名,例如:
231221001.zip。
-
ZIP文件中只需包含实验报告和必要源码。
请勿包含虚拟环境、依赖库、缓存目录、大型训练数据、训练模型或运行日志。
-
将ZIP文件作为邮件附件发送至:
lamda_introai@126.com
。
-
邮件主题必须使用以下格式:
[作业3] 学号 姓名
例如:
[作业3] 231221001 张三
系统收到作业后,将根据提交的实验报告和源码生成三个考核问题。
考核分为三轮,每轮围绕一个主问题进行:
- 请直接回复系统发送的问题邮件,不要新建邮件;
-
请保留邮件主题中的提交编号,例如:
IAI-XXXXXXXX;
- 系统可能针对当前问题继续追问;
- 当前问题考核结束后,系统会自动发送下一轮问题;
- 第三轮结束后,系统会发送本次作业考核完成通知。
如需修改已经提交的作业,请重新发送包含完整实验报告和源码的ZIP文件,
并在文件名后添加版本号,例如:
231221001-1.zip。
重新提交时请新建邮件,并继续使用规定的邮件主题格式。
不要将新版作业作为问答邮件的附件发送。
请确保邮件附件不超过20MB。
如果必要源码超过限制,请联系课程助教。
请勿通过邮件提交大型训练数据、训练模型、虚拟环境或第三方依赖库。
注意:作业严禁抄袭!