Dijiste que ya estás familiarizado con las redes neuronales, pero dado que hay muchos tipos diferentes de redes neuronales de diferente complejidad (convolucionales, hebbian, kohonen, etc.), repasaremos un simple feed-forward red neuronal nuevamente, solo para asegurarnos de que estamos en la misma página.
Una red neuronal básico consta de las siguientes cosas
- neuronas
- neurona de entrada (s)
- Ocultos Las neuronas (opcional)
- salida de la neurona (s)
- Enlaces entre neuronas (a veces llamadas sinapsis en analogía a la biología)
- una función de activación
Las neuronas tienen un valor activación. Cuando evalúa una red, la activación de los nodos de entrada se establece en la entrada real.Los enlaces de los nodos de entrada conducen a nodos más cercanos a la salida, generalmente a una o más capas de nodos ocultos. En cada neurona, la activación de entrada se procesa utilizando una función de activación . Se pueden usar diferentes funciones de activación, y algunas veces incluso varían dentro de las neuronas de una sola red.
La función de activación procesa la activación de la neurona en su salida. Los primeros experimentos usualmente usaban una función de umbral simple (es decir, activación> 0,5? 1: 0), hoy en día se usa a menudo un Sigmoid function.
La salida de la función de activación se propaga a través de los enlaces a los siguientes nodos. Cada enlace tiene un peso asociado que se aplica a su entrada.
Finalmente, la salida de la red se extrae de la activación de la (s) neurona (s) de salida.
He creado un ejemplo muy simple (y muy detallado ...) here. Está escrito en Ruby y computa Y, que es casi tan simple como se pone.
Una pregunta mucho más complicada es cómo crear realmente una red que hace algo útil. La red trivial del ejemplo se creó manualmente, pero eso no es factible con problemas más complejos. Hay dos enfoques que conozco, siendo el más común el backpropagation. Menos utilizado es neuroevolution, donde los pesos de los enlaces se determinan usando un algoritmo genético.
En qué idioma? –
Yo diría etiquetarlo con lenguaje independiente. –
Posible duplicado de [Aclaración en una red neuronal que reproduce Snake] (http://stackoverflow.com/questions/42099814/clarification-on-a-neural-net-that-plays-snake) – devinbost