Skip to content

czf456789/2048-with-ReinforcementLearning

Repository files navigation

2048

使用说明

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的动作,采取最终效果最好的动作。

产生的问题

1.ppo的探索问题

​ 随着训练的加深,策略网络已经变为确定性策略,近乎完全失去了探索能力,最终成绩在512~1024震荡。ppo的探索问题如何解决?sac中添加的熵正则可能会更加适合2048这个环境。可能时因为奖励过于密集,后续将会尝试降低奖励的密集程度

About

用强化学习玩2048

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages