Mam dwie tablice obiektów, które opisują strukturę sieci neuronowej, jak mogę je połączyć, aby wyprodukować potomstwo, które jest realistyczne? W „chromosomy” będzie wyglądać mniej więcej tak:Korzystając z algorytmu genetycznego, w jaki sposób mogę stworzyć potomstwo na podstawie dwóch struktur sieci neuronowych?
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],
];
Przykładowy węzeł:
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 for Neural Networks jest trudny z wielu powodów. Możesz zajrzeć do [NEAT] (http://www.cs.ucf.edu/~kstanley/neat.html), który wykorzystuje sprytny mechanizm (historyczne znaczniki), aby rozwiązać problem. Połączone artykuły (u dołu strony) zawierają więcej informacji o tym, jak/dlaczego to działa. – DataWraith
Przeczytaj oryginalny artykuł z 2005 roku, który jest świetnie napisany i odpowie na wszystkie twoje pytania. – mbatchkarov