play.py 图形化2048游玩 运行后按下H开始游戏 PPO.py PPO模型
Main_net.py 网络定义
rl_utils.py 包含计算优势函数的定义
Train.py 训练 具体超参数定义 Train_on_policy.py 在线训练
环境要求 pytorch tqdm
ppo 搜索树
在采取动作之前,优先过滤掉无效的操作,相比于惩罚无效操作,过滤是更好的方法。
30w epcoch震荡。
100局 百分之五十达到512 百分之10达到1024
每轮正奖励:得分/100+空格/16
每局终止状态奖励:-50*(10-log2(每局的最高砖块))
改进方法:使用搜索树方法。效果比PPO更好
深度为5,穷举出接下来五个step的动作,采取最终效果最好的动作。
随着训练的加深,策略网络已经变为确定性策略,近乎完全失去了探索能力,最终成绩在512~1024震荡。ppo的探索问题如何解决?sac中添加的熵正则可能会更加适合2048这个环境。可能时因为奖励过于密集,后续将会尝试降低奖励的密集程度