(
Back to
course page)
Edit
作业总览
本次作业目的是使用监督学习来模仿人玩游戏的动作。
首先,下载本次作业程序包
(点击下载ZIP)
程序包解释:
- src 是源代码目录
- sprites 和 examples 目录是运行需要的资源
- weka.jar 是开源机器学习包
- model.model 是我训练的一个模型
在本次作业中,你需要收集数据,并训练学习模型。
Edit
收集数据
在Train.java中已经为大家准备好了收集数据的运行入口。运行Train.java,将会记录每一时刻游戏画面的特征和你按下的按键(左、右、空格)。
tools.recorder.java
是提取特征和保存数据文件的代码:
- featureExtract 函数提取特征,这里我已经写了简单的特征提取方法,就是记录屏幕上每个位置的信息,以及4个游戏状态信息
- datasetHeader 函数是准备数据集的格式信息(需与提取的特征保持一致)
- invoke 函数记录特征和按键,按键信息将被视为类别
- 数据将保存在 AliensRecorder.arff 文件中
你可以修改特征提取的方法,然后运行 Train.java 玩出一场漂亮的游戏(注意,监督学习只能模拟你的行为,如果你的行为有错误,不能纠正你的错误),得到数据文件。
Edit
训练模型
Weka.jar 是优秀的开源机器学习包。Weka可以使用图形界面操作,但鼓励大家阅读weka的源代码(多一些积累,多一点能力)。
双击weka.jar(或从命令行运行 java
weka.jar )启动图形界面,选择 Explorer,出现 Explorer 界面:

首先,点击
Openfile,打开 AliensRecorder.arff,然后点击 Classify 进入分类页面:

选择分类器和参数,点击
Start 训练模型,观察训练结果,然后保存模型为 model.model
Edit
测试模型
运行 Test.java ,将读入 model.model 中保存的模型,自动开始游戏。
Edit
作业内容
- 对于现有的特征提取方法,收集训练数据,尝试三种以上的学习方法,撰写学习方法的介绍,报告性能对比
- 尝试修改特征提取方法,得到更好的学习性能
Edit
作业报告
本次作业只需要提交报告。报告需详细介绍学习方法和进行的实验尝试。
使用
这个文档模版(点击下载)
撰写实验报告。
Edit
作业提交
将
作业报告 存储为PDF文件,用学号命名,例如151221001.pdf
上传到ftp
ftp://www.lamda.nju.edu.cn/introAI19_HW/assignment3/
(用户名: introAI19, 密码: introAI2019)
(注意:该ftp不能替换文件,上传一次后,如果需要修改,请在文件名后加上版本号再上传,例如151221001-1.pdf)
注意:
作业严禁抄袭!