Ir al contenido principal

Perceptron Simple: Explicación y Aplicación

Hoy vengo a re-comentarles un tema muy interesante que son el uso de las redes neuronales y perceptrones, un método informático que se puede emplear y ramificar en muchas cosas, con mas entendimiento del tema voy a tratar de facilitarles la explicación básica a base de ejemplos para los no entendidos de esta rama que hoy en la actualidad se esta aplicando cada dia mas en lo que es reconocimiento facial,óptico,de texto,voz,etc.

¿Que son las redes neuronales? (wikipedia)

Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN"1 ) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona elsistema nervioso de los animales. Se trata de unsistema de interconexión de neuronas que colaboran entre sí para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.


Durante esta etapa me voy a tratar de enfocar en explicar desde lo mas básico del tema que es el uso del simple perceptron.

¿Que es un perceptron?

El perceptron es un modelo básico de red neuronal lineal, es el ejemplo matemático mas simple a la hora de teorizar una neurona verdadera a una virtual.

Una neurona orgánica:

El modelo matemático:



La idea principal del perceptron es imitar a la organica, teniendo canales de entradas,un cuerpo y el axón por donde se va a producir el producto final.

Su funcionamiento consiste en que el algoritmo capture las entradas (X1,X2 en el caso de la imagen) , se multiplique cada entrada con la parte del patrón correspondiente ya introducido previamente en la neurona  y luego estos se sumen en un numero (X1 x w1) + (X2 x w2) y que este valor se aplaste con una tangente hiperbolica (formula que aplasta a un valor en >1 o >0) y se obtenga un estado de activación binario,es decir, 1 o 0 que va a ratificar el valor final de la neurona.
Por si no entendieron,las siguientes imágenes para su fácil comprensión:


 1 o 0, es lo quie va a definir la neurona, su deteccion de valido o falso,va a depender del código que lo maneje.

Aplicando un perceptron sobre imágenes


Como verán, el perceptron necesita una fase de entrenamiento para que el resultado ante lo puesto sea un factor de activación 1, este proceso puede ser asistido,o generado aleatoriamente, esto se puede manejar de diferentes formas dependiendo el lenguaje de programación que usen.
El sistema que toma los valores de entrada y los codifica de cierta forma a una matriz,depende también de diversos factores,por ejemplo en el uso de reconocimiento facial se usan softwares que detectan bordes,y a base de este se genera una especie de mapa poligonal que se traduce matemáticamente a lo que se puede crear una matriz, una imagen que hice de ejemplo:


La cara de emma watson

El software de escaneo óptico conforma una matriz que es transportada para representar un patrón geométrico.

De este modo, con varias imágenes se puede alimentar el valor de la neurona para así asimilar lo que se interponga.


Adaptación y ejemplo de perceptron simple en python:

Código de neurona:El código en python es el siguiente: http://pastebin.com/wqj56GQi
Código programa de ejemplo:http://pastebin.com/WfTrMq0s
Vídeo demostrativo:

El reconocimiento de letras es uno de los ejemplos mas conocidos dentro de lo que es rna. 
El programa (programado por mi en python) usa un perceptron de 25 entradas donde se introduce el patrón (que para la interfaz significa visualmente una letra) que se conforma en 1 y -1 y se los compara con patrones que se pueden enseñar en el programa, básicamente se le enseñan letras al programa y luego este las va a poder reconocer de cualquier forma (Una g torcida,va a ser una g).
El peso universal del programa fue ajustado manualmente y es uno,al ser 1 y -1 era muy básico el reconocimiento.


Saludos,luego añadire mas ejemplos de scripts que actualmente estoy trabajando.