La ciencia se ha inspirado de la naturaleza en una gran variedad de entornos. Podemos observar por ejemplo como las aeronaves utilizan principios de aerodinámica tomados de la forma en que las aves se mantienen en el aire, las aletas de rana utilizadas por los buzos para mejorar el desplazamiento en el agua se inspiran en dicho animal, el funcionamiento de las cámaras se ha ido perfeccionado a través de la imitación de los ojos, entre otros ejemplos.
La naturaleza provee una potente herramienta para aprender de sus errores a través de la selección natural y llega a diseños que generan gran eficiencia y adaptación a su entorno y esa característica hace que muchos de ellos se vuelvan grandes ideas tecnológicamente hablando.
En el campo de la inteligencia artificial tenemos ejemplos de como se han adaptado modelos naturales para crear algoritmos que permitan aprender de sus errores y volverse más eficientes en su tarea. Estos algoritmos son particularmente útiles para resolver tareas en las que no es posible hallar una solución matemáticamente pura. Un ejemplo de lo anterior son las redes neuronales artificiales.
Las redes neuronales artificiales, son algoritmos de software cuyo fundamento se inspira en el comportamiento de las neuronas del cerebro humano. En nuestro cerebro ocurren millones de reacciones químicas que comunican nuestras células cerebrales, o neuronas, unas con otras mediante estructuras especializadas.
Las neuronas se conectan entre sí por medio de conexiones llamadas sinapsis las cuales son intercambios eléctricos entre el botón sináptico de una neurona (emisora o presináptica) y el botón dendrítico de otra (receptora o pos sináptica). Dichas conexiones permiten que una neurona mande descargas eléctricas a las células con las cuales se encuentra conectada. La descarga eléctrica viaja desde el cuerpo o soma de una neurona hasta el Axón el cual hace la función de un cañón eléctrico a través de los neurotransmisores.
Cuando una neurona recibe un estímulo su electroquímica se altera, acumulando energía. Cuando esa energía se acumula en cierta cantidad la neurona la descarga por medio del Axón hacia las neuronas vecinas formando una conexión sináptica con ellas.
Inspirados en este mecanismo biológico McCulloch & Pitts crearon un modelo artificial de una neurona en 1943. Más tarde esta idea fue retomada por Rosenblatt quien creó una estructura llamada perceptrón. El perceptrón es una estructura la cual posee una o varias entradas, una función de activación y una salida.
Las entradas del perceptrón actúan como las dendritas o señales de entrada hacia la neurona. La función de activación realiza el papel del soma que decide en que momento disparar esa señal eléctrica y la salida modela al axón que al activarse envía información hacia las neuronas con las cuales se encuentra conectada.
Las redes neuronales se construyen a partir de la agregación de perceptrones de distintos tipos en estructuras complejas. La estructura más sencilla se conforma de tres capas, una capa de entrada, una capa intermedia u oculta y una capa de salida.
Para que la red neuronal “aprenda” se utilizan técnicas de Machine Learning, las cuales pueden ser de variada naturaleza, sin embargo las más comunes son las de aprendizaje supervisado, en las cuales se le brinda como entrada al algoritmo datos previamente etiquetados, es decir un humano “supervisa” el entrenamiento al decirle al algoritmo como se debe interpretar la información.
Por ejemplo, supongamos que estamos tratando de construir una red neuronal capaz de clasificar si una fruta es una naranja o un plátano a partir de su descripción. Cada una de las entradas representa una característica del objeto. Podemos diseñar la red para que la entrada uno se active si la fruta tiene color amarillo y la entrada dos se active cuando la fruta sea redonda. Nuestra intención es que cuando se describa un plátano la entrada uno se active y la entrada dos no lo haga, y cuando describa una naranja ocurra el proceso inverso. Así que para que la red aprenda a diferenciar una naranja y un plátano, le daremos ejemplos al algoritmo en los cuales cuando se active la primera entrada y no la segunda la respuesta correcta sea plátano y cuando ocurra el proceso inverso la respuesta sea naranja.
Este proceso se automatiza por medio de algoritmos de propagación del error comparando el valor de salida arrojado por la red neuronal con el valor de salida de los datos etiquetados, calculando la diferencia y considerándola como un error. A continuación se distribuye el peso de ese error para que las neuronas “ajusten” sus conexiones hasta tener los resultados deseados. Así que el proceso de aprendizaje en las redes neuronales, se trata esencialmente de encontrar los pesos adecuados para cada uno de los enlaces de las neuronas. Matemáticamente hablando lo que ocurre conforme la información pasa de una capa hacia la otra, es una composición de funciones, la cual puede llegar a ser sumamente compleja, por lo cual describir que está pasando en cada una de las capas es un reto interesante, sin embargo, se tienen nociones de que cada capa va “extrayendo” características de un nivel cada vez más alto, hasta llegar a su clasificación o respuesta final.
Detrás de esta estructura simplificada de neurona, se han propuesto una serie de mecanismos cada vez más complejos que han logrado realizar tareas sorprendentes incluso teniendo mejor desempeño que los humanos en diferentes tareas, como por ejemplo jugar al Go.
El mundo de las redes neuronales se ha vuelto cada vez más complejo y extenso (para muestra en la Fig. 4 se muestra un catálogo de diferentes redes neuronales elaborado Fjodor Van Venn del Instituto Asimov), pero la inspiración directa de estos algoritmos viene a partir del modelo neuronal biológico. Hoy en día hay un intercambio interesante entre las neurociencias y las ciencias de la computación las cuales están aprendiendo mutuamente de sí y han traído una nueva era muy emocionante en cuanto a los algoritmos de aprendizaje automático, en la cual las máquinas pueden aprender gracias a la imitación de nuestro cerebro y tal vez la manera en que las máquinas aprendan nos puedan ayudar a desentrañar cosas que aún desconocemos de nuestra biología.
(Ilustraciones: Pepe Rodríguez)
Originally published at medium.com on February 13, 2018.