调整遗传算法的参数

时间:2018-06-23 15:59:41

标签: neural-network genetic-algorithm

我的项目是使用遗传算法和神经网络在Python中进行AI玩2048。 我正在使用神经网络作为结构来计算什么是最好的动作,从而给出当前的网格和遗传算法来调整权重和偏差。因此,我不使用反向传播。

目前,最高分数仅为512,仅略高于完全随机的游戏产品(平均随机得分达到128,而最幸运的得分为256)。

在很多关于人工智能的教程中,他们说找到正确的调整是经验问题。因为这是我在该领域的第一个项目,所以我没有这样的经验。 我的问题是,在下面提供所有信息,可以进行哪些调整以改善结果? 粗体数字是我认为必须调整的参数。

我正在遵循遗传算法的主要步骤:

  1. 世代:

    我正在生成 600 个网络。 网络的结构为:

      输入层的
    • 16 个神经元(每个网格正方形一个)
    • 3 个隐藏层,每个隐藏层具有 10 个神经元
    • 4 个神经元输出
  2. 评估

    我通过让他们进行2048次完整游戏(当然这是非图形模拟)并收集他们的得分和最大图块的值来测试所有人群。 (我使用多处理并行执行多个运行) 我通过 score +(maxTileValue)²

  3. 计算适应度
  4. 选择

    我只是对它们进行排序并杀死一半最不适合的人

  5. 繁殖

    对于我需要重新创建的每个网络,我选择一个幸存者,并为每个权重添加一个随机值,该值介于-0.5和0.5乘以100 /(平均代适应性)

    >

我要重复 200 代。

我没有使用Tensorflow或任何库。 完整代码在github(https://github.com/Nonoreve/2048Solver/tree/master/solver/AIsolver

(我是一名法国学生,所以对语法和语法深表歉意)

0 个答案:

没有答案