
Ante todo, pido disculpas por el título si alguien pensó al verlo, ¿pero este no es un blog de biocuriosidades? ¿Qué es eso del Deep Learning, o Aprendizaje profundo en castellano?, ¿y que tiene que ver con la biología?
Bien, pues de una forma fácil y práctica vamos a intentar explicar qué es y sus similitudes con el cerebro humano, lo cual, creo que si os parecerá ciertamente curioso.
¿Qué es Deep Learning?
Deep Learning no es ni más ni menos que inteligencia artificial basada en redes neuronales. Hay muchas definiciones de inteligencia artificial. Podríamos definirla como una forma de inteligencia llevada a cabo por máquinas que trata de mejorar su rendimiento aprendiendo de los datos y procesos que maneja.
Si paras a reflexionar sobre ello, te darás cuenta que no es muy diferente de cómo aprendemos los humanos. Al fin y al cabo, aprendemos de lo que vemos y percibimos. Nuestro aprendizaje se basa en identificar patrones, aprendemos a base de prueba y error, además de reduciendo problemas complejos en problemas más simples.
A nivel biológico, nuestro cerebro establece conexiones entre neuronas. Una inteligencia artificial (IA), aprende del mismo modo. Esta forma de realizar conexiones y aprendizaje en una máquina la conocemos como redes neuronales.
De qué forma trabaja nuestro cerebro
Todos sabemos que nuestro cerebro está formado por neuronas. No soy yo el más indicado para dar una clase de neurología, pero a groso modo, una neurona toma de entrada una señal eléctrica, un estímulo que es recogido por las dendritas. Esta señal es procesada por el núcleo de la neurona. Una vez procesada, la nueva señal es lanzada por el axón que lo conecta con la salida de la neurona, que son los botones terminales. Estos botones terminales emitirán esta señal ya procesada a la siguiente neurona. A esta conexión se le llama sinapsis.
De qué forma trabaja Deep Learning
Una red neuronal artificial se comporta del mismo modo que una conexión neuronal. Recibirá información de entrada por cada uno de sus nodos (equivalente a neuronas) y la trasladará procesada al siguiente nodo, estos nodos en inteligencia artificial también se conocen como perceptrones.
En la figura vemos una red neuronal densa. Se le llama densa, pues todos sus nodos están conectados entre sí.
A nivel de conexión entre dos nodos, funcionaría según la siguiente figura:
En la figura el valor del primer nodo sería de 1.2 y el valor del segundo 0.5. La conexión (sinapsis) tendría otro valor, que sería el peso.
Si visualizamos toda la red neuronal, a nivel global, cada nodo tendría un valor numérico. Estos valores serían los que el algoritmo utilizaría en todas las operaciones matemáticas y estadísticas internas para entrenar la red y crear el modelo de aprendizaje.
Cuando hablamos de que una red neuronal aprende, significa que estos pesos, estas conexiones o sinapsis cambian. A medida que el algoritmo se ejecute reiteradamente, estos pesos serán diferentes según nos acerquemos al objetivo que busquemos. Serán más óptimos, o lo que es lo mismo, la red estará aprendiendo.
Procesos de aprendizaje de Deep Learning comparados con nuestras neuronas
Veamos un ejemplo sencillo, al comienzo de esta entrada hemos dicho que los humanos aprendemos muchas veces a base de prueba y error. Un algoritmo de IA, hará lo mismo.
Imaginemos que nuestra red neuronal va a intentar averiguar en qué se ha basado el profesor para ponderar de la manera que lo ha hecho. En este ejemplo, propongamos una evaluación basada en dos exámenes y un resultado final de 6.4.
Nuestra entrada en los perceptrones serán las dos notas, 8 y 6, en los cuales inicialmente tendremos unos valores de 0.5 que multiplicaremos por las entradas. Eso nos dará unos pesos de 4 y 3 y una estimación de 7. El descenso del gradiente minimizará el error, pero como vemos que la estimación es incorrecta, el algoritmo hará un back propagation. Esto consistirá en recalcular los pesos de nuestras neuronas.
En el caso en cuestión, los valores se modificarán a 0.6 y 0.4. La red se irá entrenando hasta que realmente sepa en qué se ha basado el profesor para valorar al alumno. Este ejemplo tan sencillo y con dos neuronas puede hacernos entender cómo una máquina puede llegar a simular patrones de la naturaleza extremadamente complejos. Tal como si la red fuera de miles de millones de neuronas y compuesta por millones de capas.
Divide y vencerás / Divide and rule
Estas capas que mencionábamos en el ejemplo, además pueden ser de otra naturaleza diferente de las capas densas. Por ejemplo pueden ser capas convolucionales, capas de pooling, etc. Pero, dijimos al principio que el cerebro humano divide los problemas en problemas más pequeños. Tanto el cerebro a nivel biológico como el ser humano en sí, establece técnicas como «divide y vencerás». Estos procesos neuronales son utilizados por el ser humano desde sus albores. Veamos un ejemplo de como una red neuronal aplica los mismos principios.
Clasificación por topología de Deep Learning
En la siguiente figura vemos como un algoritmo de Deep Learning es capaz de reconocer que la foto de la imagen es un pájaro, pero….¿cómo lo hace?
En primer lugar divide la foto en trocitos mucho más pequeños, estos trozos más pequeños serán mucho más fáciles de analizar y procesar computacionalmente. Cuanto más pequeño, menos carga computacional, por ello, la máquina tarda menos tiempo y emplea menos recursos en encontrar el mismo resultado.
A su vez, se aplican capas convolucionales. Estas capas, podríamos compararlo con el concepto de un filtro. ¿Necesitamos los miles de millones de colores que tiene la imagen? ¿O con un filtro podemos trabajar con información muchísimo más reducida, pero que nos sirve para llegar a la misma conclusión?
Luego aplicamos capas de pooling, que simplemente reducen el tamaño. No necesitamos una imagen de un millón de megapíxeles para detectar un patrón. Por ejemplo, para determinar si lo que muestra la imagen es un pico.
En la salida de nuestra red neuronal, vemos pues que nuestra imagen tiene tres características: pico, cabeza y cola. En base a esas tres características, nuestra red determinará que la foto de la imagen es un pájaro.
Si un ser humano ve un elefante, no procesará los miles de millones de colores y características que tiene el elefante. Inconscientemente, hará un proceso similar, y sabrá que es un elefante porque en su base de datos (su memoria) tiene las características básicas de lo que es un elefante. Base de datos o memoria, que por cierto, habrá construido de una forma similar a una red neuronal densa.
Libro recomendado: Artificial Intelligence in Education