Deep Learning y Machine Learning, entendamos las diferencias
Últimamente leemos en muchas ocasiones que si la inteligencia artificial ha hecho esto, que si el aprendizaje profundo ha hecho esto otro, que si el machine learning, que si el deep learning… los blogs especializados conocen las diferencias, y las aplican en cada caso, esforzándose, en algunas ocasiones, para que los lectores no confundan conceptos, pero no suele ocurrir en la prensa en general, por lo que es muy posible que haya información “no exacta” distribuyéndose a diario en este sector.
En este artículo vamos a hablar de ambos conceptos, con un poco de contexto histórico e intentando evitar los tecnicismos, para que a partir de ahora no haya excusas y sepamos exactamente de qué hablan los artículos que tratan de avances en el mundo de la Inteligencia Artificial.
Machine Learning, no es algo nuevo
Comenzamos con el Machine Learning, el aprendizaje automático, en castellano, un concepto que lleva trabajándose desde hace mucho tiempo, una rama de la inteligencia artificial que desarrolla técnicas para que las máquinas aprendan a hacer cosas a partir de una serie de datos iniciales.
Si buscamos el origen del tema seguramente tendríamos que irnos a 1952, cuando Arthur Samuel crea el primer programa desarrollado específicamente para que una máquina aprenda a jugar a las damas, aunque solo en 1956 se realiza la conferencia en la que se puede decir que nació el campo de la Inteligencia Artificial.
Muchos años después, en la década de los 80, se crean sistemas basados en reglas, conceptos relacionados con el entrenamiento de los ordenadores, y en los 90 se crean programas que analizan grandes cantidades de datos para extraer conclusiones (recordad que en 1997 Deep Blue, de IBM vence al campeón mundial de ajedrez Gary Kaspárov).
El tiempo fue pasando, pero solo fue en 2006 cuando se comenzó a hablar de Deep Learning, de aprendizaje profundo, cuando se desarrollaron nuevas arquitecturas de Redes Neuronales profundas y aparecieron otros términos mucho más modernos.
Deep Learning, el nacimiento del monstruo
Desde que se escuchó por primera vez el término Deep Learning hace ya 13 años han cambiado muchas cosas, han evolucionado los ordenadores, han aparecido los móviles inteligentes, se ha multiplicado internet… y todo eso se ha visto reflejado en el mundo de la Inteligencia artificial.
El término Deep Learning nació con el objetivo de poder explicar nuevas arquitecturas de Redes Neuronales profundas, capaces de aprender de una forma diferente, menos secuencial, y las grandes empresas de tecnología han estado trabajando para aplicar la teoría y crear soluciones realmente útiles.
Google creó el proyecto Google Brain en 2012, por ejemplo, que ayudaría a detectar patrones en fotos y vídeos para ayudar a la búsqueda de contenido multimedia (vídeos de gatos, en un principio).
En 2014 fue Facebook quien presentó DeepFace, un sistema de Deep Learning que puede reconocer personas.
En 2015 fue Amazon la que presentó su plataforma de Deep Learning, y el mismo año fue Microsoft quien creó el “Distributed Machine Learning Toolkit”.
Deep Learning es un subconjunto de algoritmos de machine learning, algo más específico que Machine Learning. Son programas creados con el objetivo de crear modelos a partir de datos, de adaptar los patrones en función de lo que se quiere aprender.
Si presentamos una imagen a un ordenador, éste puede verla como un conjunto de píxeles de colores, pero podemos enseñarle a que vea un conjunto de caras de personas, o un conjunto de números, o de coches…. El Deep Learning cuenta con varias arquitecturas , como redes neuronales profundas, redes neuronales profundas convolucionales y otros conceptos que también se confunden en la prensa no especializada.
Una cosa es hablar de Machine Learning, el área de la informática que trabaja con aprendizaje de ordenadores, otra cosa es hablar de Deep Learning, un subconjunto de programas para buscar patrones que pueden aplicarse para enseñar cosas a las máquinas, y otra cosa son redes neuronales profundas, arquitectura que puede ser aplicada por Deep Learning para obtener resultados diversos (desde reconocimiento de imágenes a reconocimiento de voces, entre otras).
Lo de las capas
En muchas ocasiones oímos hablar de capas dentro del Deep Learning, y aunque parece difícil de entender cuando se explica con frases como “jerarquía de conceptos”, “procesamiento no lineal” y demás, en realidad es muy fácil de entenderlo.
Deep Learning puede usar una arquitectura basada en capas (hay otras arquitecturas), y cuando así lo hace, obtiene resultados pasando información de una capa de información a otra. Un ordenador puede recibir una primera tanda de datos, y esta información la pasará a una capa llena de programitas (“neuronas”) encargados de analizarla. Cada programa llegará a una conclusión, generará “un número”, y enviará esa información a los programitas de la siguiente capa, que tendrán en cuenta el resultado de todos los programas de la capa anterior. Es decir, las conclusiones se van haciendo más exactas a medida que avanzamos de capa en capa, hasta que llegue a la salida y el ordenador sea capaz de decir “sí, eso es un gato”.
Por eso hay muchas arquitecturas dentro de Deep Learning, ya que se puede decidir cuántas capas necesitamos, cuántos programitas por capa, qué hará cada uno… y todo eso si decidimos trabajar con capas, porque se puede usar una red de neuronas recurrente, que utiliza otra forma de comunicar datos entre ellos.
Conclusión
No estamos hablando de nada nuevo, Deep Learning se basa en técnicas que ya se habían desarrollado antes, pero se han combinado para obtener grandes resultados, se han creado bibliotecas para que varios lenguajes de programación las apliquen sin necesidad de programarlas desde cero, se ha trabajado para que sea posible obtener grandes resultados con herramientas disponibles de forma pública y gratuita, como es el caso de TensorFlow, de Google, una de las más populares.