Tengo dos matrices de objetos que describen la estructura de una red neuronal, ¿cómo puedo combinarlos para producir una descendencia que sea realista? Los "cromosomas" se vería algo como esto:Usando un algoritmo genético, ¿cómo puedo crear descendencia a partir de dos estructuras de redes neuronales?
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],
];
Un nodo ejemplo:
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
}
Crossover para redes neuronales es difícil por varias razones. Es posible que desee consultar [NEAT] (http://www.cs.ucf.edu/~kstanley/neat.html), que utiliza un mecanismo inteligente (marcadores históricos) para resolver el problema. Los documentos vinculados (parte inferior de la página) contienen más información sobre cómo/por qué funciona. – DataWraith
Lea el documento original de 2005 (creo), está escrito brillantemente y responderá todas sus preguntas. – mbatchkarov