Introducción a la red neuronal con implementación en python

Una red neuronal es un algoritmo cuyo diseño se inspiró en el funcionamiento del cerebro humano. Intenta emular las funciones básicas del cerebro.

Debido al diseño intencional de las ANN como modelo conceptual del cerebro humano, primero comprendamos cómo funcionan las neuronas biológicas. Posteriormente podemos extrapolar esa idea a modelos matemáticos.

El siguiente diagrama es un modelo de la neurona biológica.

neurona biológica

Consta de tres partes principales, a saber, las dendritas, el soma y el axón.

Las dendritas son el receptor de las señales para la neurona. Las dendritas recogen la señal y la pasan al soma, que es el cuerpo celular principal.

Axon es el transmisor de la señal para la neurona. Cuando una neurona dispara, transmite su estímulo a través del axón.

Las dendritas de una neurona están conectadas a los axones de otras neuronas. Las sinapsis son la unión de conexión entre los axones y las dendritas.

Una neurona usa dendritas para recopilar entradas de otras neuronas, suma todas las entradas y, si la suma resultante es mayor que un umbral, se dispara.

Una neurona por sí sola no sirve para nada. Sin embargo, cuando tenemos muchas neuronas conectadas, son más fuertes y pueden hacer magia. En nuestro cerebro hay miles de millones de conexiones así. para procesar y transmitir información.

En nuestro cerebro hay miles de millones de neuronas interconectadas que nos permiten sentir, pensar y actuar.

NEURONA ARTIFICIAL:

La neurona artificial se ilustra a continuación.

neurona artificial

Aquí las entradas son equivalentes a las dendritas de la neurona biológica, la función de activación es análoga al soma y la salida es análoga a los axones.

La neurona artificial tendrá entradas y cada una de las entradas tendrá pesos asociados. Por ahora solo sepa que los pesos se inicializan aleatoriamente.

Los pesos aquí denotan la importancia de un nodo en particular. Las entradas multiplicadas por los pesos (suma ponderada) se enviarán como entrada a la neurona.

suma ponderada

Aquí, i es el índice y metro es el número de entradas

Una vez calculada la suma ponderada, se le aplicará una función de activación. Una función de activación básicamente aplasta la entrada entre 0 y 1.

El resultado de la función de activación decide si disparar o no una neurona.

función de activación

φ es la función de activación.

He escrito un artículo que explica algunas de las funciones de activación más utilizadas. Puede leer mi artículo Introducción a las funciones de activación para obtener más información sobre ellas.

NEURONA DE McCULLOCH-PITTS:

Esta fue una de las primeras y extremadamente simples neuronas artificiales propuestas por McCulloch y Pitts en 1943.

La neurona de McCulloch-Pitts toma una entrada binaria y produce una salida binaria.

El peso de la neurona de McCulloch-Pitts se elige en base al análisis del problema. El peso puede ser excitatorio o inhibitorio. Si el peso es positivo, es decir, 1, entonces es excitatorio o si el peso es negativo, es decir, -1, entonces es inhibitorio.

Hay un umbral para cada neurona, si la entrada neta es mayor que el valor del umbral, entonces esa neurona se dispara.

Veamos un ejemplo de cómo implementar una puerta lógica AND usando MP neuron.

La siguiente es la tabla de verdad para la puerta AND lógica.

X1 X2 Y
0 0 0
0 1 0
1 0 0
1 1 1

Supongamos los pesos w1 = w2 = 1

neurona mp

Para las entradas,

(0,0), y = w1*x1 + w2*x2 = (1×0) + (1×0) = 0

(0,1), y = w1*x1 + w2*x2 = (1×0) + (1×1) = 1

(1,0), y = w1*x1 + w2*x2 = (1×1) + (1×0) = 1

(1,1), y = w1*x1 + w2*x2 = (1×1) + (1×1) = 2

Ahora, tenemos que establecer el valor umbral por el cual la neurona debe disparar. En base a estos valores de entrada netos calculados, se establece el umbral.

Para una puerta AND, la salida es verdadera solo si ambas entradas son verdaderas.

Entonces, si establecemos el valor de umbral en 2, la neurona se dispara solo si ambas entradas son verdaderas.

Ahora implementemos la neurona McCulloch-Pitts usando python


RESUMEN:

En esta publicación, analizamos brevemente una de las primeras neuronas artificiales llamada neurona de McCulloch-Pitts. Discutimos el funcionamiento de la neurona MP y también vemos cómo es análoga al cerebro humano.

El problema con la neurona MP es que no implica un aprendizaje real. Obtenemos el peso y el valor umbral manualmente realizando el análisis del problema. Esto contrasta completamente con la idea de aprender de la experiencia.

En la siguiente parte, veremos el algoritmo del perceptrón, que es una mejora de la neurona MP, que puede aprender los pesos con el tiempo.

Para obtener el código completo visita este Repositorio de Github.

Fuente del artículo

Deja un comentario