Llevo unos días programando redes neuronales en Python. ¿Qué es a fin de cuentas una red neuronal cuando la diseccionas? Pues bastante pocas cosas: una relación de patrones de entrada y salida (patrones de entrada y patrones tutores) que pueden formar parte o no del código, una matriz que especifica los valores de las conexiones entre cada capa de nodos, un valor de activación asociado a cada nodo de cada capa, una función de activación de los nodos y una regla de aprendizaje.
Ahora mismo estoy trabajando en una red de dos capas (un perceptrón: la red más sencilla posible), de dimensiones arbitrarias. Aún no he subido el código, pero lo haré en breve. Para manejar matrices es imprescindible tener la biblioteca Numarray. Hay que puntualizar que las matrices se manejan con facilidad, almacenan los valores que uno quiera y realizan las operaciones típicas de las matrices.
Cosas que tengo hechas:
- Matriz de conexiones entre las capas.
- La matriz de pesos comienza con conexiones aleatorizadas.
- Patrones de entrenamiento en forma de matrices.
- Valores de las unidades de salida especificados como un vector (una matriz con una sola fila).
- La función que calcula la activación de las unidades de salida. Esto es, se multiplica la activación de las unidades de entrada conectadas a esta unidad por el peso de la conexión. Después, se suman todas estas activaciones.
Faltan:
- El algoritmo de aprendizaje. Éste compara la activación de las unidades de salida con los valores del patrón tutor. Las conexiones que han producido la discrepancia entre estas dos medidas modifican sus pesos para reducir el error futuro.
- La función de activación. De momento la activación de las unidades de salida es lineal; esto es, simplemente suman lo que llega de las unidades de entrada.
Hola que tal, estoy comenzando a programar,y me gustaria saber como se programa una red neuronal artificial en phyton, tu me podrías guiar?. De antemano, te lo agradezco.