Artificial intelligence 使用遗传算法,我如何根据两个神经网络结构创建后代?

Artificial intelligence 使用遗传算法,我如何根据两个神经网络结构创建后代?,artificial-intelligence,neural-network,genetic-algorithm,Artificial Intelligence,Neural Network,Genetic Algorithm,我有两个描述神经网络结构的对象阵列,如何将它们组合起来产生真实的后代?“染色体”看起来像这样: chromosome = [ [Node, Node, Node], [Node, Node, Node, Node, Node], [Node, Node, Node, Node], [Node, Node, Node, Node, Node], [Node, Node, Node, Node, Node, Node, Node], [Node, No

我有两个描述神经网络结构的对象阵列,如何将它们组合起来产生真实的后代?“染色体”看起来像这样:

chromosome = [
    [Node, Node, Node],
    [Node, Node, Node, Node, Node],
    [Node, Node, Node, Node],
    [Node, Node, Node, Node, Node],
    [Node, Node, Node, Node, Node, Node, Node],
    [Node, Node, Node],
];
示例节点:

Node {
    nodesThatThisIsConnectedTo = [0, 2, 3, 5] // These numbers identify which nodes to collect output from in the preceding layer from based on their index number
    weights = [0.34, 0.33, 0.76, -0.56] // These are the corresponding weights applied to the mentioned nodes
}

我认为更好的方法是对每个节点的权重向量进行遗传算法搜索——如果你一直使用遗传算法的话


对于每个节点,都有一组向量,每个迭代一个节点改变其权重向量。在我看来,这似乎是一种更合理的方法,然后在两个完整的网络之间进行交叉。

神经网络的交叉很困难,原因有很多。您可能想看看,它使用了一种聪明的机制(历史标记)来解决这个问题。链接文件(页面底部)包含了更多关于如何/为什么这样做的信息。阅读2005年(我认为)的原始文件,它写得很好,可以回答你所有的问题。