( 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

作业内容

  1. 阅读代码,阐述程序使用的强化学习方法和完整训练过程。
    1. 说明 main.py 中 lr、gamma 和 buffer_size 三个变量的作用, 并分析它们对学习过程的影响。
    2. 说明 agent.py 中 act 和 act_no_explore 两个函数的区别。 分析训练过程中始终使用 act_no_explore 可能产生的问题。
  2. 尝试修改强化学习参数以获得更好的学习性能, 并在报告中说明修改过程、实验设置和实验结果。
  3. 将 agent_name 修改为 ddqn,比较DQN与DDQN的算法差异和实验结果, 并分析产生差异的原因。

Edit

作业报告

本次作业只需要提交实验报告,不需要提交源码。 报告应详细介绍强化学习方法、代码理解以及所完成的实验尝试。

实验报告应至少包括以下内容:
  • DQN的训练流程以及Q值更新方法;
  • lr、gamma 和 buffer_size 的作用;
  • act 与 act_no_explore 的区别及探索策略的作用;
  • 参数修改方案、实验设置和结果对比;
  • DQN与DDQN的原理差异和性能差异;
  • 训练曲线、评价指标以及典型失败现象分析;
  • 最终采用的设置及选择理由。
使用 实验报告模板(点击下载) 撰写实验报告。

Edit

作业提交

请按照以下要求提交作业:
  1. 将实验报告保存为PDF文件,并以学号命名,例如: 231221001.pdf。
  2. 本次作业只需提交PDF报告,不需要提交源码或ZIP压缩包。
  3. 将PDF文件作为邮件附件发送至: lamda_introai@126.com 。
  4. 邮件主题必须使用以下格式:
    [作业4] 学号 姓名
    例如: [作业4] 231221001 张三
系统收到实验报告后,将根据报告内容生成三个考核问题。 考核分为三轮,每轮围绕一个主问题进行:
  • 请直接回复系统发送的问题邮件,不要新建邮件;
  • 请保留邮件主题中的提交编号,例如: IAI-XXXXXXXX;
  • 系统可能针对当前问题继续追问;
  • 当前问题考核结束后,系统会自动发送下一轮问题;
  • 第三轮结束后,系统会发送本次作业考核完成通知。
如需修改已经提交的实验报告,请重新发送完整的PDF文件, 并在文件名后添加版本号,例如: 231221001-1.pdf。

重新提交时请新建邮件,并继续使用规定的邮件主题格式。 不要将新版报告作为问答邮件的附件发送。

请确保邮件附件不超过20MB。 如果文件超过限制,请联系课程助教。

注意:作业严禁抄袭!

The end