神经网络和遗传算法

时间:2019-02-25 11:14:40

标签: algorithm genetic

我正在尝试使用神经网络和遗传算法,但是我遇到了问题。

因此任务非常简单: 我有运动的圈子,如果他们在图片中停留的时间比其他人更长,那么他们的身体状况就会比其他人好。

我的方法是:

  1. 获得前三名得分手
  2. 创建一个包含100个项目的数组,一个计分员获得的金额取决于前三名的适应度百分比
  3. 选择一个随机发电池,然后与另一个随机池(前3个)交叉
  4. 静音

所有交叉和突变只会改变神经元和给定输入的权重。

现在的问题是:

有没有机会,使用这些方法我会得到任何好的结果?

即使我只复制最好的一个来替换所有20名新球员,他们也会变得越来越糟(中间有一些小的“超人”)

我什至可以用这种方式解决这个问题,还是不应该混合使用这两种方法?

编辑:这是我的交叉方法,基本上是生成一个随机数,以选择从一个神经元复制的权重数量,直到切换到另一神经元为止。

def crossover(gen_1, gen_2, neuron):
    new_genes = dict()
    limit = random.randint(0, len(Definitions.array_index)-1)
    for x in range(0, limit):
        new_genes[Definitions.array_index[x]] = gen_1.neuron[neuron].weights[Definitions.array_index[x]]
    for x in range(limit, len(Definitions.array_index)):
        new_genes[Definitions.array_index[x]] = gen_2.neuron[neuron].weights[Definitions.array_index[x]]
    return new_genes

0 个答案:

没有答案