(
Back to course page
)
Edit
作业总览
本次作业的目的是使用强化学习方法自主完成 CartPole 游戏。
首先,下载本次作业程序包:
(点击下载ZIP)
程序包包含以下主要文件:
-
main.py:程序入口,运行该文件可以启动训练或测试。
-
agent.py:强化学习智能体的主要实现。
-
q_network.py:策略网络或Q网络的结构实现。
在本次作业中,你需要阅读并理解程序中的强化学习算法,
尝试修改算法参数或实现,以提高智能体的学习性能。
Edit
代码介绍
在每一步决策时,智能体根据当前状态估计不同动作的Q值,
并依据Q值及探索策略选择动作。
main.py 是本次作业的程序入口。
执行该程序后,将启动CartPole游戏的训练或测试过程。
智能体相关代码主要包括:
-
agent.py:智能体封装、动作选择、经验回放及网络更新。
-
q_network.py:Q网络结构及相关计算。
-
DQN和DDQN:用于比较不同目标值估计方法对学习性能的影响。
Edit
作业内容
-
阅读代码,阐述程序使用的强化学习方法和完整训练过程。
-
说明
main.py 中
lr、gamma 和
buffer_size 三个变量的作用,
并分析它们对学习过程的影响。
-
说明
agent.py 中
act 和
act_no_explore
两个函数的区别。
分析训练过程中始终使用
act_no_explore
可能产生的问题。
-
尝试修改强化学习参数以获得更好的学习性能,
并在报告中说明修改过程、实验设置和实验结果。
-
将
agent_name 修改为
ddqn,比较DQN与DDQN的算法差异和实验结果,
并分析产生差异的原因。
Edit
作业报告
本次作业只需要提交实验报告,不需要提交源码。
报告应详细介绍强化学习方法、代码理解以及所完成的实验尝试。
实验报告应至少包括以下内容:
- DQN的训练流程以及Q值更新方法;
-
lr、gamma 和
buffer_size 的作用;
-
act 与
act_no_explore 的区别及探索策略的作用;
- 参数修改方案、实验设置和结果对比;
- DQN与DDQN的原理差异和性能差异;
- 训练曲线、评价指标以及典型失败现象分析;
- 最终采用的设置及选择理由。
使用
实验报告模板(点击下载)
撰写实验报告。
Edit
作业提交
请按照以下要求提交作业:
-
将实验报告保存为PDF文件,并以学号命名,例如:
231221001.pdf。
-
本次作业只需提交PDF报告,不需要提交源码或ZIP压缩包。
-
将PDF文件作为邮件附件发送至:
lamda_introai@126.com
。
-
邮件主题必须使用以下格式:
[作业4] 学号 姓名
例如:
[作业4] 231221001 张三
系统收到实验报告后,将根据报告内容生成三个考核问题。
考核分为三轮,每轮围绕一个主问题进行:
- 请直接回复系统发送的问题邮件,不要新建邮件;
-
请保留邮件主题中的提交编号,例如:
IAI-XXXXXXXX;
- 系统可能针对当前问题继续追问;
-
当前问题考核结束后,系统会自动发送下一轮问题;
-
第三轮结束后,系统会发送本次作业考核完成通知。
如需修改已经提交的实验报告,请重新发送完整的PDF文件,
并在文件名后添加版本号,例如:
231221001-1.pdf。
重新提交时请新建邮件,并继续使用规定的邮件主题格式。
不要将新版报告作为问答邮件的附件发送。
请确保邮件附件不超过20MB。
如果文件超过限制,请联系课程助教。
注意:作业严禁抄袭!