0


李宏毅2022机器学习HW12解析

准备工作

作业十二是使用强化学习,完成Lunar Lander(月球着陆)任务,训练飞行器月球着陆,作业基于OpenAI的gym框架(只有linux系统可用)。作业过程需要助教代码,关注本公众号,可获得代码(包括解析代码,文末有方法)。

提交地址

https://ml.ee.ntu.edu.tw/hw12/,有想讨论沟通的同学可进QQ群:156013866。以下为作业解析。

Simple Baseline

方法:直接运行助教代码。助教代码使用的方法是Policy Gradient运行代码的时候,可能会出现版本不兼容的情况,下面代码为我遇到的情况(老代码被注释)和修改方式。代码运行后,最后得到total rewards为:**-71.65**

#torch.set_deterministic(True)
torch.use_deterministic_algorithms(True)

Medium Baseline

方法:Accumulate Reward。在simple baseline的基础上,将rewards改为累积的形式,代码如下。代码运行后,最后得到的total rewards为:8.49****。

rate = 0.99  
      ...... 
      while True:
            ......
            seq_rewards.append(reward)
            ......
            if done:
                final_rewards.append(reward)
                total_rewards.append(total_reward)
                # calculate accumulative rewards
                for i in range(2, len(seq_rewards)+1):
                    seq_rewards[-i] += rate * (seq_rewards[-i+1])
                rewards += seq_rewards

Strong Baseline

方法:使用Actor to Critic。相比于Policy Gradient,Actor to Critic的模型后端有两个分支,一个预测action,一个预测rewards,loss函数也需要加入了预测rewards的损失,详细信息见答案代码。代码运行后,得到了一个比较幸运的的total rewards为:106.57****。

**Boss Baseline **

方法:使用Advantage Actor to Critic(A2C)。Actor to Critic的损失函数是老师课堂上说的3.5版本,以Critic的输出结果为baseline,A2C则是4.0版本,也就是”平均减去平均“,这种方式更合理,但是损失函数比较复杂,模型难训练,需要做参数调试,详细改动见答案代码。代码运行后,最后得到的total rewards为:128.11****。这个rewards是5次登陆的平均结果,提升不是很多,不过只看单个的话,发现经常出现很好的rewards,只是浮动比较大,跟模型不容易收敛有关。

作业十二答案获得方式:

  1. 关注微信公众号 “机器学习手艺人**” **
  2. 后台回复关键词:202212

本文转载自: https://blog.csdn.net/weixin_42369818/article/details/126119360
版权归原作者 机器学习手艺人 所有, 如有侵权,请联系我们删除。

“李宏毅2022机器学习HW12解析”的评论:

还没有评论