DestacadosInteligencia artificialUncategorized

Reconocimiento de formas mediante redes neuronales

Una de las aplicaciones más conocidas y más fácilmente comprensibles de los modelos computacionales basados en redes neuronales es la identificación de formas en una imagen o vídeo, haciendo posible no sólo que las máquinas sean capaces de ver, sino también de identificar los elementos presentes en lo que están viendo.

El modelo de redes neuronales basa su funcionamiento en el procesamiento paralelo y concurrente por parte de varias unidades independientes, que llamamos neuronas en analogía al modelo fisiológico en el que está basado este modelo, que evidentemente es el cerebro animal. En computación, las neuronas no dejan de ser pequeños programas informáticos admiten una información de entrada, realizan un procesamiento relativamente sencillo, y devuelven una salida, de la misma forma que suponemos que funcionan las neuronas humanas.

A diferencia del desarrollo de programas informáticos tradicionales, donde disponemos de programas monolíticos con capacidades de cálculo avanzadas, el modelo de redes neuronales divide la complejidad en un número virtualmente infinito, y cuanto menos extenso, de unidades neuronales. Así, cada neurona se encarga de una tarea diferente, y todas trabajan en conjunto. De forma que, según los datos de entrada, se activarán unas neuronas u otras. En base a las combinaciones de neuronas activadas, el resultado global será uno u otro.

Este es un concepto complejo en un principio, y que a todos los estudiantes de inteligencia artificial se les atraganta al principio, pero que tiene un gran sentido.

Redes neurales sencillas

Supongamos que tenemos, por simplificar mucho el cálculo, un sistema de cuatro neuronas. Ese sistema, como cualquier otro sistema neuronal, debe ser entrenado antes de ser puesto en funcionamiento. Esto quiere decir que, a diferencia de la programación clásica, nosotros no podemos (o no debemos) preprogramar a un sistema neuronal para reconocer, por ejemplo, un ojo. Lo que debemos hacer es mostrarle al sistema una cantidad grande de ojos.

Volviendo a nuestro sistema neural de 4 neuronas, supongamos que, tras enseñarle 100 ojos, siempre se activan las neuronas 1 y 3, permaneciendo las neuronas 2 y 4 desactivadas. De esta forma, el sistema aprende que, siempre que, al recibir un estímulo visual, se activan las neuronas 1 y 3 y no se activan las neuronas 2 y 4, es muy posible que lo que esté viendo sea un ojo.

Redes neurales profundas

Este modelo se puede ampliar para mejorar su eficiencia en un modelo mediante el cual las neuronas se agrupan por capas, en un esquema, una vez más simplificado, como el siguiente:

La información de entrada está en la capa amarilla. La información de salida, es decir el resultado, está en la capa roja. En el medio, pueden existir una serie de capas intermedias, llamadas ocultas ya que el resultado que arrojan no es de utilidad para el usuario de la aplicación, pero si que es de utilidad como información que alimenta a la capa siguiente.

Por ejemplo, supongamos que tomamos como entrada la siguiente imagen:

En lugar de procesar la imagen completa, buscando adivinar si dentro de la imagen existe una cara, podemos intentar dividir un reto tan grande, genérico y complejo en retos más pequeños y específicos, como por ejemplo buscar si en la imagen hay lineas rectas (horizontales, verticales y diagonales, por ejemplo), como estas:

Estas lineas se usan para compararlas contra la imagen original. El resultado de la primera capa de computación es numérica, pero podría ser representada de un modo parecido a este:

Reconocer si en la imagen se encuentra una cara podría ser complejo, aunque posible perfectamente en la teoría, mediante la comparación relativa del número de horizontales, verticales y diagonales.

Sin embargo, en un modelo de varias capas, esa información se pasa a la siguiente capa. En la siguiente capa solo se evalúa la posibilidad de que haya objetos un poco mas complejos que una línea recta, como un círculo o una forma de esquina (una «L»)

De esta forma, cada una de las capas va proporcionando información cada vez más compleja a la capa superior, de tal forma que unas pocas capas más adelante podemos encontrar conceptos más elevados como «ojo», «nariz», u «oreja», y por tanto en la última capa encontraríamos el concepto más elevado, que sería «cara» (si se disparan las neuronas correspondientes a «ojo» dos veces, «nariz» una vez, y «oreja» dos veces, es muy probable que la imagen contenga una cara.

Conclusión:

La solución de problemas computacionales mediante redes neuronales no es recomendable para todo tipo de problemas, pero sin embargo es una estrategia muy eficiente en aquellas situaciones en las que disponemos de unos datos de entrada complejos, como imágenes, y deseamos realizar tareas complejas como reconocimiento de formas.

 

Cómo profundizar más en el conocimiento de las redes neuronales

Actualmente estamos produciendo un curso para aprender a desarrollar aplicaciones de inteligencia artificial. Si quieres saber más, haz click aqui:

Curso de inteligencia artificial

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *