Antes de iniciar esta charla, conviene hacer una pregunta: ¿podemos replicar el funcionamiento del cerebro humano en una máquina? Este es el interrogante que responde la ciencia con el Aprendizaje Profundo o Deep Learning, por su traducción literal al inglés.

Y la respuesta es Sí. El Aprendizaje Profundo intenta imitar el funcionamiento del cerebro humano, aunque sin lograr igualar su capacidad por el momento, pero si logrando que un sistema informático agrupe datos y haga predicciones con un nivel de precisión sorprendente.

¿Es entonces lo que conocemos como Inteligencia Artificial? No. Inteligencia Artificial es un concepto mucho más amplio que engloba todo. Aprendizaje Profundo se deriva del Aprendizaje Automático, que a su vez, tiene su origen en la Inteligencia Artificial. Estamos hablando de un tercer nivel de evolución. Pero ¿Qué es exactamente, en que se diferencia uno de otros y cuál es su aplicación práctica?

Son las preguntas que respondemos hoy, en esta primera de una serie de entregas en las que abordaremos desde diferentes tópicos, todo lo relacionado con Aprendizaje Profundo o Deep Learning, Redes Neuronales Artificiales, Big Data, Data Science, y otra serie de conceptos que sin duda hoy marcan la evolución de la ciencia, la informática y la automatización.

Aprendizaje Profundo – ¿Qué es?



Red cuyos nodos son cubos

Empecemos con el inicio. Inteligencia Artificial, que es el punto de partida del Aprendizaje Profundo, Deep Learning y el Aprendizaje Automático, no es un concepto tan nuevo como podemos pensar.

El primero en acuñar el término, y por ello se considera padre de la Inteligencia Artificial, fue Alan Turing en la década de los treinta, del siglo pasado. Es en un artículo publicado por Turing en la revista Mind, donde por primera vez se formula la pregunta, dentro de un contexto de investigación científica serio: ¿pueden las máquinas pensar?

El siguiente paso lo dan los investigadores John McCarty, Marvin Misky y Claude Sahannon en 1956, cuando hablan de la posibilidad real de construir máquinas inteligentes, con base en las investigaciones de Turing.

Ya en el siglo que hoy recorremos, Yoshua Bengio se destaca como uno de los investigadores más importantes en el campo de la Inteligencia Artificial y el Aprendizaje Automático, al exponer sus teorías en un muy relevante artículo titulado “Aprendizaje Profundo” publicado en la revista Scientific American, con el que de paso bautiza este nivel avanzado de automatización en máquinas.

Pero, ¿qué es exactamente Deep Learning o Aprendizaje Profundo?: podríamos definirlo como un conjunto de técnicas y modelos que permiten a una máquina, ordenador o similar, imitar la forma con la que trabaja el cerebro humano.

Es, por supuesto, una evolución del Aprendizaje Automático, disciplina del campo de la Inteligencia Artificial que, utilizando algoritmos, provee a ordenadores y sistemas informáticos de la capacidad para identificar patrones en grandes cantidades de datos – Big Data -, y elaborar así predicciones con sorprendentes niveles de precisión.

Es, por supuesto, una evolución del Aprendizaje Automático, disciplina del campo de la Inteligencia Artificial que, utilizando algoritmos, provee a ordenadores y sistemas informáticos de la capacidad para identificar patrones en grandes cantidades de datos – Big Data -, y elaborar así predicciones con sorprendentes niveles de precisión.

Es, en otras palabras, enseñar a una máquina a hacer lo que para el cerebro humano es natural: aprender con el ejemplo. Es con base en modelos de Deep Learning que se desarrollan tecnologías clave detrás de los automóviles sin conductor, que permiten entre otras funcionalidades, reconocer una señal de tránsito y proceder en concordancia con lo que ella indica.

Es también el Aprendizaje Profundo la base para aplicaciones de control de voz utilizadas en smartphones, tabletas, y altavoces de manos libres. Pero ¿cómo lo hace?: los algoritmos utilizados en Deep Learning, obtienen conclusiones similares a las que llegaría el cerebro humano, analizando datos en forma continua con una estructura lógica determinada.

Aprendizaje Profundo utiliza para ello una estructura de algoritmos de varias capas conocida como Redes Neuronales. De la misma forma en que utilizamos nuestro cerebro para identificar patrones y clasificar diferentes tipos de información, las Redes Neuronales pueden aprender a realizar las mismas tareas con un conjunto de datos.

Básicamente encontramos tres tipos de Redes Neuronales:

Redes Neuronales Artificiales

Se trata de modelos computacionales que tienen la capacidad de procesar información, emulando el funcionamiento de las neuronas en el cerebro humano, identificando patrones y clasificando datos.

Redes Neuronales Convolucionales

Una Red Neuronal Convolucional es un tipo de red que opera de una forma muy similar a como lo hacen las neuronas que trabajan en la corteza visual primaria del cerebro humano, en donde las neuronas corresponden a campos receptivos. Este tipo de Redes son utilizadas por el ordenador para ejecutar funcionalidades de visión, precisamente.

Redes Neuronales Recurrentes

La característica principal de este tipo de redes es la capacidad para almacenar información en memoria. Esto significa que pueden conservar el estado anterior de las neuronas y, así, analizar cambios y establecer tendencias en series temporales, mejorando la capacidad de predicción.

¿Cómo funciona Aprendizaje Profundo en la Práctica?

Para entender el funcionamiento práctico de Aprendizaje Profundo, debemos iniciar por analizar el comportamiento del cerebro humano. Cuando recibimos información nueva, nuestro cerebro inicia una tarea de comparación con información y datos recopilados y almacenados con anterioridad. Es así como, cuando vemos un ser humano, sabemos que es una persona y no un león o un delfín.

El “pensamiento” tradicional en informática se ha basado hasta ahora en algoritmos lineales. Esto significa que un proceso de toma de decisiones avanza en un solo sentido, hasta llegar a un punto en donde termina o se reinicia, pero no acude a diferentes capas de datos y procesos, que es lo que hoy se conoce como redes neuronales profundas.

Red Neuronal

Foto de Colin Behrens en Pixabay

Las redes neuronales permiten realizar tareas como agrupamiento de datos, clasificación, regresión, ordenar etiquetas de acuerdo con sus similitudes o establecer categorías de ellas. Las redes neuronales pueden entonces, desarrollar las mismas tares que un algoritmo clásico de aprendizaje automático, pero eso no sucede al revés. Esta es una primera conclusión importante: Aprendizaje Profundo es un subconjunto de Aprendizaje Automático, con capacidades únicas que generan modelos de “pensamiento” que pueden resolver problemas de aprendizaje complejos.

Sin Aprendizaje Profundo no tendríamos coches autónomos, chatbots, o los muy populares asistentes personales como Alexa o Siri. Deep Learning también ha permitido la evolución de herramientas como Google Translate, por mencionar una de las más utilizadas hoy.

¿Por qué los modelos de Aprendizaje Profundo son más potentes que el Aprendizaje Automático?

Una de las razones por las que el Aprendizaje Profundo está un nivel arriba del Aprendizaje Automático, es que el primero prescinde de la extracción de características, que es en cierto modo la base de los modelos del segundo.

Los métodos tradicionales de aprendizaje automático, se basan en árboles de decisiones y regresión logística. Esto significa que se le indica al ordenador que, siempre que se cumplan determinadas condiciones, se realizará una acción. En caso de que no se cumplan las condiciones definidas, el algoritmo cierra el ciclo o realiza lo que se llama regresión logística, que no es otra cosa que regresar a un punto anterior.

Esto es lo que conocemos como algoritmos planos. Y son planos porque se mueven en un solo nivel, en línea recta, sin acudir en forma autónoma a los datos almacenados sin procesar como imágenes, textos o archivos .cvs, por ejemplo.

Para que estos algoritmos tradicionales puedan hacer uso de estos datos, tienen que someterlos a un procesamiento conocido como “extracción de características”. La extracción es un proceso complejo, que requiere repetir ciclos varias veces para obtener un resultado confiable.

Los modelos basados en redes neuronales artificiales, no necesitan realiza el proceso de extracción, para clasificar datos en diferentes categorías o clases. Es lo mismo que hace el cerebro humano. Cuando ve un león, sabe que es un león aunque este sea el primero que ve en su vida en vivo. Basta con haberlo visto en una imagen, en una película o, incluso, la información auditiva puede bastar para deducir que se trata de un león, y no de un perro o un ave.

Al igual que un ser humano, los modelos basados en Deep Learnign, tienen la capacidad para aprender día a día, de la experiencia. Cuantos más datos acumule, mayor será la capacidad para tomar decisiones y ofrece resultados más confiables.

En la práctica, no es que se prescinda de la extracción de características. Es que ella se da en forma automática en la red neuronal artificial, para obtener una eficaz representación abstracta de los datos recibidos. Esto hace que los modelos de aprendizaje profundo, a diferencia de Machine Learning – Aprendizaje Automático -, requieran poco o ningún esfuerzo para realizar la extracción de características.

Veamos un ejemplo concreto: sí utilizamos un modelo de aprendizaje automático para determinar si una imagen en particular muestra un automóvil o no, los humanos identificamos las características únicas o características de un automóvil (forma, tamaño, ventanas, ruedas, etc.) extraemos las características y las utilizamos como datos para tomar una decisión o solucionar un problema.

De esta forma, el algoritmo realizaría una clasificación de las imágenes. Es decir, en el aprendizaje automático, un programador debe intervenir directamente en la acción para que el modelo llegue a una conclusión.

En el caso de un modelo de aprendizaje profundo, el paso de extracción de características es completamente innecesario. El modelo reconocería estas características únicas de un automóvil y haría predicciones correctas. Eso sin requerir ayuda de un humano.

Aún más fácil: necesitamos extraer características, siempre que sea la primera vez en la vida que vemos un automóvil. En adelante, siempre lo sabremos sin necesidad de extraer y procesar las características nuevamente. De hecho, aunque el coche cambie sustancialmente, siempre sabremos que se trata de un automóvil. Diferente, raro, peculiar, pero definitivamente automóvil.

En los sistemas de procesamiento tradicionales, es preciso extraer y procesar una y otra vez las características, para identificar un automóvil. Aprendizaje Profundo imita el comportamiento del cerebro humano, entregando los datos a la red neuronal. El modelo hace el resto.

Data Science, Big Data y Aprendizaje Profundo

Data Science o ciencia de los datos, es un campo interdisciplinario de la ciencia, que hace uso de procesos, algoritmos y métodos, para adquirir conocimiento de datos e información estructurada o no.

Data Science, en asocio con Big Data, analiza y extrae en forma sistemática, grandes cantidades de datos e información que no podrían ser tratados por modelos tradicionales.

Hagamos una pedagógica analogía: Aprendizaje Profundo es un cohete. Big Data y Data Science son los motores de este cohete. Y, los algoritmos alimentados por una creciente cantidad de datos e información, son el combustible que mueve estos motores.

Cuantos más datos e información alimentan los motores, aumentará la precisión de las predicciones y la capacidad de aprendizaje. Pero, ¿realmente puede una máquina aprender? Si lo puede hacer. Y lo puede hacer porque lo que se ha hecho es básicamente replicar el funcionamiento de una red de neuronas biológicas, en una arquitectura de algoritmos que conocemos como Redes Neuronales de Convolución. ¿Qué es esto? Veamos:

Redes Neuronales de Convolución

Antes de profundizar en las Redes Neuronales de Convolución, conviene entender el modelo biológico en el que se basan. Es claro que la red neuronal artificial se basa en el funcionamiento de las neuronas biológicas, que son las que trabajan en nuestro cerebro.

El objetivo final ha sido simular las funcionalidades básicas de las neuronas del cerebro humano. Una neurona típica consta de tres elementos: un cuerpo celular, dendritas y un axón. Las dendritas son aquellas extensiones que emergen del cuerpo celular, destinadas a recibir señales en forma de impulsos eléctricos. La neurona también puede enviar señales de salida a través del axón.

Así, una neurona recibe información por medio de sus dendritas, desde un axón de otra neurona. Igualmente, la neurona puede pasar esta información a otras dendritas de otras neuronas, utilizando su axón.

Todas las neuronas se excitan eléctricamente. Esto ha facilitado replicar esta arquitectura en las redes neuronales artificiales. Este tipo de redes se componen de unidades o nodos, conectados entre sí. Estos nodos cumplen las funciones de las neuronas biológicas.

Entonces, una Red Neuronal de Convolución, es un modelo arquitectónico diseñado para que se compartan grandes cantidades de datos – Big Data -, a grandes velocidades y con altos niveles de eficiencia – Data Science -, formando campos receptivos que funcionan de una forma muy similar a las neuronas en un cerebro humano.

Las posibilidades son infinitas. Los riesgos, es preciso decirlo, también lo son. Se abre la puerta para que máquinas puedan tomar decisiones y ser autónomas. Este, que es un futuro apocalíptico que hemos vislumbrado a través de filmes como Terminator o Matrix, pasa a ser una realidad inminente. ¿Podremos gestionar los riegos y aprovecha las oportunidades que Deep Learning nos ofrece? Seguramente, los temas que desarrollaremos en adelante en este espacio serán un elemento importante para entender mejor este futuro que ya toca a nuestra puerta. Entre tanto, nos gustaría conocer tus comentarios

Imagen principal del artículo