¿Hay una buena manera de agregar/eliminar una neurona y sus conexiones asociadas en/desde una red PyBrain completamente conectada? Digamos que empezar con:PyBrain neuron manipulation
from pybrain.tools.shortcuts import buildNetwork
net = buildNetwork(2,3,1)
¿cómo iba a ir sobre lo que es una (2,4,1) o una (2,2,1) de la red mientras que mantiene todos los viejos pesos (e inicializar ninguno nuevo a ser al azar como se hace al inicializar la red)? La razón por la que quiero hacer esto es porque estoy intentando usar una estrategia de aprendizaje evolutivo para determinar la mejor arquitectura y el paso de "mutación" implica agregar/eliminar nodos con alguna probabilidad. (Los módulos de entrada y salida siempre deben permanecer igual.)
editar: Encontré NeuronDecomposableNetwork que debería facilitar esto, pero todavía parece que tengo que hacer un seguimiento de las neuronas y las conexiones por separado.
Impresionante, esto me ayuda muchísimo, ¡gracias! Realmente me gusta la primera idea. Nunca habría pensado en usar capas como neuronas individuales. Y sí, después de intentarlo durante unos tres días, no recomendaría la administración manual tampoco lol (la otra publicación de stackoverflow fue de hecho de la que surgió la idea). Regresaré después de experimentar un poco (e investigar NEAT, ya que es el primero que descubrí al respecto, aunque sea casi exactamente lo que quería) y actualizar mi publicación con los resultados. – ubomb