我的项目是使用遗传算法和神经网络在Python中进行AI玩2048。 我正在使用神经网络作为结构来计算什么是最好的动作,从而给出当前的网格和遗传算法来调整权重和偏差。因此,我不使用反向传播。
目前,最高分数仅为512,仅略高于完全随机的游戏产品(平均随机得分达到128,而最幸运的得分为256)。
在很多关于人工智能的教程中,他们说找到正确的调整是经验问题。因为这是我在该领域的第一个项目,所以我没有这样的经验。 我的问题是,在下面提供所有信息,可以进行哪些调整以改善结果? 粗体数字是我认为必须调整的参数。
我正在遵循遗传算法的主要步骤:
世代:
我正在生成 600 个网络。 网络的结构为:
评估
我通过让他们进行2048次完整游戏(当然这是非图形模拟)并收集他们的得分和最大图块的值来测试所有人群。 (我使用多处理并行执行多个运行) 我通过 score +(maxTileValue)²
选择
我只是对它们进行排序并杀死一半最不适合的人
繁殖
对于我需要重新创建的每个网络,我选择一个幸存者,并为每个权重添加一个随机值,该值介于-0.5和0.5乘以100 /(平均代适应性)
>我要重复 200 代。
我没有使用Tensorflow或任何库。 完整代码在github(https://github.com/Nonoreve/2048Solver/tree/master/solver/AIsolver)
上(我是一名法国学生,所以对语法和语法深表歉意)。