¿Qué es una red neuronal?
El propósito de este texto es el de realizar una muy simplificada introducción al mundo de las redes neuronales, con el objeto de facilitar la comprensión de textos más elaborados.
Si tras leer este texto un lector neófito en el tema sale con la sensación de que entiende los mecanismos que hay detrás de los procesos generales que rigen las redes neuronales: ¿qué son?, ¿cómo funcionan?, ¿qué es el aprendizaje o entrenamiento?, etc., entonces el texto habrá cumplido su propósito.
Según la Wikipedia: Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN") son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema 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.
Más coloquialmente, una red neuronal artificial pretende replicar mediante software o hardware, los mecanismos que rigen la toma de decisiones y el aprendizaje de los cerebros de los organismos vivos.
Los ordenadores tienen una enorme capacidad de cálculo, alcanzan velocidades que nuestro cerebro sería incapaz de emular. Pero sin embargo, tienen grandes dificultades para realizar tareas que nosotros hacemos sin esfuerzo, como es reconocer patrones, o caras, imágenes, etc.
Es dentro de este ámbito, el de las actividades que no se les da bien a los ordenadores, donde está indicado el empleo de las redes neuronales artificiales, las cuales, al replicar la operativa de un cerebro, son capaces de realizar dichas actividades de manera análoga a un cerebro biológico.
¿Cómo funciona una red neuronal?
Simplificando mucho, un cerebro está compuesto de varias “capas” de neuronas, conectadas entre sí formando una tupida maya. Con esta distribución a cada neurona le llegan una serie de entradas (a través de las dendritas), y acaba conectada con las siguientes “capas” de neuronas mediante una serie de salidas (conectadas a su vez a las dendritas de las neuronas posteriores). Dicha conexión se realiza mediante un tipo de enlace bioquímico capaz de transmitir impulsos eléctricos, llamado sinapsis.
A efectos prácticos, cuando a nuestro cerebro le llega un estímulo de entrada, (por ejemplo el carácter “C”), y lo procesa, es capaz de devolvernos como salida el fonema asociado a dicho carácter (“C” = “ce”). Esta asociación símbolo-fonema, es fruto del aprendizaje que hemos tenido, el cual ha quedado registrado en nuestro cerebro en forma de conexiones entre neuronas, definiendo caminos para el impulso nervioso. Dichos caminos “guían” el flujo del impulso hacia una salida, de forma que el flujo que ha seguido el impulso tiene asociado el fonema correcto.
Con este ejemplo en mente, si imaginamos un cerebro, como una serie de neuronas conectadas entre sí, formando una red en distintas capas, con sus conexiones ya definidas, la respuesta que proporcionaría dicho cerebro ante una determinada entrada, se correspondería con la salida dependiente del camino que siguiera el impulso nervioso.
Dicho camino dependería a su vez de la resistencia eléctrica ofrecida al impulso eléctrico de la sinapsis. Caminos con menor resistencia proporcionarían antes una respuesta.
Cuando un cerebro esta “limpio“, la resistencia eléctrica de todos los caminos es similar, por lo que la salida que proporcionaría un cerebro “limpia” ante un determinado estímulo sería arbitraria.
Es mediante el proceso de aprendizaje que se fijan las resistencias a los estímulos eléctricos que dirigen los flujos hacia salidas correctas.
A muy alto nivel, el proceso de aprendizaje de un cerebro funcionaría de la siguiente manera:
Si se proporcionase como entrada un estímulo que se correspondiese con el carácter “C”, dicho cerebro debe aprender que esa representación gráfica se corresponde con el fonema “ce”, modificando a menores las resistencias eléctricas que aproximen la salida hacía el fonema “ce” y/o incrementando las resistencias de aquellos caminos que alejen la salida de dicho fonema.
La ventaja de este mecanismo es que, como todas las entradas proporcionan una salida, siempre habrá una respuesta ante un estímulo, aunque este no sea conocido. La salida de dicha respuesta, circulara por los caminos que más se parezcan a los conocimientos que tenga dicho cerebro, lo que permitirá que un cerebro infiera resultados en función de los conocimientos que ya tuviera almacenados
En base a esto, cuanto mayor sea el aprendizaje y mayor el número de casos que conozca un cerebro, (más símbolos y más fonemas), más fiables serán los resultados que proporcione como salida ante estímulos similares (“ C parecido a c parecido a < ”), lo cual le permitirá responder con fiabilidad ante estímulos desconocidos.
Es decir, un cerebro con el conocimiento necesario es capaz de distinguir la “C” de la “O”, pese a su similitud gráfica y de identificar correctamente los caracteres “c” o “<” como “otros tipos” de “C”.
Una vez comprendido cómo funciona el proceso de reconocimiento de patrones en un cerebro, es posible replicar este comportamiento mediante un modelo de software.
Redes Neuronales Artificiales
Para replicar este funcionamiento (reconocimiento de patrones) a nivel lógico, necesitaremos disponer de una neurona artificial, que acepte varias entradas, que sea capaz de simular la resistencia al impulso eléctrico como lo hace una neurona de verdad y que sea capaz de proporcionar una salida. La salida puede ser conectada a una o varias de las entradas de otra u otras neuronas artificiales para formar una red.
Hay varios tipos de redes artificiales, el modelo más sencillo se denomina “perceptrón”.
Inventado en 1957 (Frank Rosenblatt), el perceptrón es la más simple de las redes neuronales posibles. Representa a una única neurona. Un perceptrón se compone de una o más entradas, un procesador, y una única salida.
Ilustración 1: Esquema Perceptrón
El objeto del perceptrón es el de emular el funcionamiento de una neurona, como tal por sí mismo, carece de sentido o aplicación, pero en conjunto con otros perceptrones, configurados en forma de red, y tras el entrenamiento necesario (aprendizaje), es posible emular el procesamiento de patrones de manera similar a la que realizaría un cerebro.
Ilustración 2: Modelo básico de Perceptrón
El modelo del “perceptrón” parte de una serie de entradas (X), que ven modificado su valor por una serie de pesos (W). Mediante estos pesos se simula las resistencias sinápticas neuronales, sólo que en vez de aumentar o disminuir la resistencia al impulso inicial, se amplifica o disminuye su valor, en función de la afinidad con el conocimiento de la red.
Todos estos valores (las entradas con sus pesos correspondientes) se integran en un único valor.
Se emplea una función de activación (que procesa los valores para mantenerlos dentro de los límites fijados, normalizándolos), y como resultado se produce una salida, la cual puede emplearse como entrada para otro u otros perceptrones de la red neuronal.
Este proceso repetido a lo largo de toda la red, produce una única salida, cuyo valor ha ido transformándose a medida que ha ido fluyendo por los distintos caminos
El proceso de aprendizaje (llamado entrenamiento) es el que define y fija los pesos sinápticos (W), de todas las entradas de los perceptrones de la red. De forma que es mediante el entrenamiento, como se almacena el conocimiento en la red.
Como ejemplo:
Imaginemos que queremos diseñar una red neuronal que nos ayude a predecir el precio aproximado que tendrá la gasolina.
Imaginemos así mismo, que conocemos el histórico de la evolución semanal de los precios de la gasolina:
Lunes
|
Martes
|
Miércoles
|
Jueves
|
Viernes
|
Sábado
|
Domingo
|
0.98
|
0.99
|
0.97
|
1.02
|
1.03
|
1.00
|
1.02
|
1.09
|
1.02
|
0.97
|
1.03
|
1.01
|
0,99
|
1.01
|
0.98
|
0.99
|
1.02
|
1.02
|
1.01
|
1.02
|
1.05
|
..
|
0.98
|
0.99
|
1.02
|
0,97
|
1.03
|
1.00
|
1.03
|
Podríamos diseñar la red neuronal como una red de neuronas artificiales, con 6 entradas y una salida.
De esta forma, podríamos proporcionarle la evolución semanal del precio de la gasolina de lunes a sábado (un valor por cada entrada), y obtener como salida el precio esperado para el domingo (la salida).
Para ello, deberíamos entrenar nuestra red, proporcionándole series de 6 datos de precios (de lunes a sábado) y comparar la salida con el precio conocido del domingo, ajustando los pesos ponderados en función de lo lejos o cerca que se fueran quedando los resultados proporcionados por la red.
Tras el entrenamiento necesario, la red sería capaz de proporcionar valores que siguen el “patrón” oculto en la evolución de los precios y “predecir” un valor para los precios de los domingos.
Ilustración 3: Red neuronal artificial “perceptrón” multicapa con n neuronas de entrada, m neuronas en su capa oculta y una neurona de salida
Habitualmente, las redes neuronales, están formadas por varias capas. Suelen disponer de una capa de entrada, que recoge los distintos inputs de la red, una o varias capas ocultas, donde se procesa la información, y una capa de salida, para devolver un resultado.
El éxito de una red, se ve claramente influenciado por su entrenamiento (cantidad y calidad), pero también por su arquitectura: número de entradas, número de capas, número de neuronas por capa, funciones de activación, de normalización, etc.
Con esta introducción, hemos llegado al nivel básico de conocimiento sobre lo que es una Red Neuronal Artificial; si os ha parecido interesante, se puede profundizar mucho en el tema con un poco de investigación por vuestra cuenta.
Bibliografia: Podcast Cienciaes.com
Wikipedia (redes
neuronales, perceptron)
Varias lecturas RNA
Autor: Andrés Lapique