我有两个对象数组,它们描述了神经网络的结构,我该如何组合它们以产生一个真实的后代?”染色体”看起来像这样:
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] // 这些数字标识了从前一层中哪个节点收集输出,基于它们的索引号 weights = [0.34, 0.33, 0.76, -0.56] // 这些是应用于上述节点的相应权重}
回答:
我认为一个更好的方法是为每个节点的权重向量实现遗传算法搜索——如果你非要使用GA的话。
对于每个节点,都有一组向量,并且每次迭代都会有一个节点改变其权重向量。在我看来,这比两个完整网络之间的交叉是一个更合理的方法。