(
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文件,用学号命名,例如131221001.pdf,并与的源码打包为 学号命名的.zip文件,例如 131221001.zip
上传到
ftp://lamda.nju.edu.cn/AI/assignment3/
(用户名: ai16, 密码: ai16)
(注意:该ftp不能替换文件,上传一次后,如果需要修改,请在文件名后加上版本号再上传,例如131221001-1.zip)
注意:
作业严禁抄袭!