概述
强化学习也火了好久,最近才有空来充充电。老实说,最开始强化学习的知识点还挺多的,看了好久也没太弄清楚几个算法的关系,所以本着实践出真知的想法,找个案例做下。2048小游戏感觉本身复杂度还可以,又是个model-base的模型,检查起来比较方便,并且可以简化到2x2,3x3,所以感觉是个很不错的demo案例。顺便学习下传统的DP那一套东西,所以也做了一些很简单的实验来巩固下知识。本文还是会参杂很多个人想法,很多想法来自一些实验测试结果。关于理论的东西网上讲的已经很多了。因为查阅资料的时候,看到很多人在尝试DQN on 2048的时候遇到了不少问题,所以和大家进行下分享。
最终效果
大概率能玩出2048
最高可以玩3w多分
均值1w多分
仍有上升空间(可能有啥bug,跑久了容易挂,就没继续跑了)
网上能查到的比较厉害的差不多到4096(AI),比例也比较小。
实验过程
随机测试:
定义:
max_tile:4x4格子中最大方块数
max_score:n局下来最大总分数(n in 50-100)
avg_score:n局平均分数(n in 50-100)
4x4的游戏中随机算法评测:
max_tile:256
avg_score:700+
max_score:2k+
这里大概评估下随机水平,方便后面评估。
DQN初探:
按照自己的想法构建了一个最初版本的DQN
net:4*4直接reshape(-1,16)