Deep Learning: Qué es, Cómo Funciona y Aplicaciones

Alexio Cogni
28 Min Lectura

La traducción literal es aprendizaje profundo, pero el Deep Learning, subcategoría del Machine Learning y del mundo más amplio de la inteligencia artificial, implica algo mucho más amplio que el simple aprendizaje en múltiples niveles de las máquinas. Intentemos comprender qué es el Deep Learning, cómo funciona y qué tipo de aplicaciones puede tener.

Deep Learning: Un Primer Acercamiento

Introducción al Deep Learning
Introducción al Deep Learning

El Deep Learning es un tipo de Machine Learning que se centra en el uso de redes neuronales más complejas para reconocer las relaciones entre diferentes entradas, observando estructuras ocultas en los datos. Una red neuronal es una red de neuronas artificiales interconectadas, que se utilizan para resolver problemas y ejecutar las operaciones necesarias.

Las redes neuronales han sido diseñadas para funcionar como el cerebro humano: la entrada es procesada por capas de neuronas, que producen una salida más compleja. La potencia de la red neuronal se deriva del hecho de que el número de capas aumenta a medida que aumenta la información proporcionada a la red.

Los algoritmos de aprendizaje profundo se pueden utilizar para reconocer patrones en grandes volúmenes de datos, así como para implementar predicciones que podrían no ser inmediatamente evidentes. Esta tecnología se ha utilizado ampliamente en el campo de la inteligencia artificial, la visión artificial y el reconocimiento de voz.

Las redes neuronales también se pueden aplicar a los procesos de toma de decisiones en los que los datos son complejos o en los que la lógica no es inmediatamente evidente. Su uso puede ayudar a analizar datos, reconocer tendencias y predecir resultados. Las redes neuronales también se pueden utilizar para crear sistemas de control que reaccionan automáticamente a determinadas situaciones, como la conducción autónoma de vehículos o el control del tráfico aéreo.

Además, las redes neuronales se pueden utilizar para mejorar la productividad en una organización, aunque los procesos y procedimientos ya estén automatizados.

¿Qué es el Deep Learning o Aprendizaje Profundo?

El Deep Learning indica esa rama de la inteligencia artificial que hace referencia a los algoritmos inspirados en la estructura y función del cerebro, llamadas redes neuronales artificiales.

Desde el punto de vista científico, se podría afirmar que el Deep Learning representa el aprendizaje de las máquinas a través del procesamiento de datos aprendidos utilizando principalmente algoritmos de cálculo estadístico.

Máquina procesando datos aprendidos sobre el teclado
Máquina procesando datos aprendidos

El Deep Learning (también conocido como aprendizaje estructurado profundo o aprendizaje jerárquico), de hecho, forma parte de una familia más amplia de métodos de Machine Learning basados en la asimilación de representaciones de datos, a diferencia de los algoritmos para la ejecución de tareas específicas.

Las arquitecturas de Deep Learning (con las que hoy se trae a la atención incluso del público en general el concepto de red neuronal artificial) se han aplicado, por ejemplo, en la visión artificial, el reconocimiento automático de la lengua hablada, el procesamiento del lenguaje natural, el reconocimiento de audio y la bioinformática, es decir, la utilización de herramientas informáticas para describir desde el punto de vista numérico y estadístico determinados fenómenos biológicos como las secuencias de genes, la composición y estructura de las proteínas, los procesos bioquímicos en las células.

Se han recopilado las diferentes interpretaciones de algunos de los investigadores y científicos más conocidos en el campo del aprendizaje profundo:

  • Andrew Yan-Tak Ng, profesor asociado de la Universidad de Stanford y antiguo fundador de Google Brain y director científico de Baidu;
  • Ian J. Goodfellow, investigador de DeepMind e inventor de las redes GAN;
  • Yoshua Bengio, autoridad en el campo del Deep Learning;
  • Ilya Sutskever, cofundador y director científico de OpenAI;
  • Geoffrey Everest Hinton, una de las figuras clave del Deep Learning y la Inteligencia Artificial, primer investigador en demostrar el uso de un algoritmo de retropropagación generalizado para el entrenamiento de redes neuronales multicapa.

Por lo tanto, podemos definir el Deep Learning como un sistema que utiliza una clase de algoritmos de aprendizaje automático que:

  • Utilizan varios niveles de unidades no lineales en cascada para llevar a cabo tareas de extracción de características y transformación. Cada nivel siguiente utiliza la salida del nivel anterior como entrada. Los algoritmos pueden ser de tipo supervisado o no supervisado, y las aplicaciones incluyen el análisis de patrones (aprendizaje no supervisado) y la clasificación (aprendizaje supervisado);
  • Se basan en el aprendizaje no supervisado de niveles jerárquicos múltiples de características (y de representaciones) de los datos. Las características de más alto nivel se derivan de las de nivel más bajo para crear una representación jerárquica;
  • Forman parte de la clase más amplia de algoritmos de aprendizaje de la representación de datos dentro del aprendizaje automático (Machine Learning);
  • Aprenden múltiples niveles de representación que corresponden a diferentes niveles de abstracción; estos niveles forman una jerarquía de conceptos.
Ejemplo de sistema de aprendizaje profundo
Ejemplo de sistema de aprendizaje profundo

Aplicando el Deep Learning, tendremos entonces una máquina que es capaz de clasificar los datos de forma autónoma y estructurarlos jerárquicamente, encontrando los más relevantes y útiles para la resolución de un problema (exactamente como lo hace la mente humana), mejorando su rendimiento con el aprendizaje continuo.

Las Redes Neuronales Artificiales: La Base del Deep Learning

Como se mencionó en el párrafo anterior, el Deep Learning, o aprendizaje profundo, se basa en la clasificación y selección de los datos más relevantes para llegar a una conclusión.

Este proceso recuerda al funcionamiento de nuestro cerebro biológico, en el que las neuronas y las conexiones neuronales se activan para formular respuestas, deducir hipótesis lógicas y resolver problemas.

De hecho, las neuronas biológicas interconectadas forman nuestras redes neuronales cerebrales, que permiten a cada individuo razonar, hacer cálculos en paralelo, reconocer sonidos, imágenes, rostros, aprender y actuar.

El Deep Learning se comporta de la misma manera y utiliza redes neuronales artificiales, modelos matemáticos e informáticos basados en el funcionamiento de las redes neuronales biológicas, es decir, modelos constituidos por interconexiones de información.

Una red neuronal se presenta como un sistema adaptable capaz de modificar su estructura (nodos e interconexiones) basándose tanto en datos externos como en información interna que se conecta y pasa a través de la red neuronal durante la fase de aprendizaje y razonamiento.

Cómo Funciona el Deep Learning

El Deep Learning simula los procesos de aprendizaje del cerebro biológico a través de sistemas artificiales (las redes neuronales artificiales) para enseñar a las máquinas no solo a aprender de forma autónoma, sino a hacerlo de forma más «profunda», como lo hace el cerebro humano, donde profundo significa en múltiples niveles (es decir, en el número de capas ocultas en la red neuronal – llamadas hidden layers: las tradicionales contienen 2-3 capas, mientras que las redes neuronales profundas pueden contener más de 150).

La siguiente imagen (tomada del libro electrónico Neural Networks and Deep Learning, disponible gratuitamente en línea) puede ayudar a comprender mejor la estructura de las redes neuronales profundas.

Ilustración de Red neuronal profunda
Ilustración de Red neuronal profunda

La estructura de las redes neuronales profundas

Las redes neuronales profundas utilizan un mayor número de capas intermedias (hidden layers) para construir más niveles de abstracción, al igual que en los circuitos booleanos, los modelos matemáticos de computación utilizados en el estudio de la teoría de la complejidad computacional que, en informática, estudia los recursos mínimos necesarios – principalmente tiempo de cálculo y memoria – para la resolución de un problema.

Veamos un ejemplo concreto del funcionamiento de una red neuronal profunda con el reconocimiento visual de patrones: las neuronas de la primera capa podrían aprender a reconocer los bordes. Las neuronas de la segunda capa podrían aprender a reconocer formas más complejas, como triángulos o rectángulos, creadas a partir de los bordes. La tercera capa reconocería formas aún más complejas, la cuarta más detalles y así sucesivamente.

Los múltiples niveles de abstracción pueden dar a las redes neuronales profundas una enorme ventaja a la hora de aprender a resolver complejos problemas de reconocimiento de patrones, precisamente porque en cada nivel intermedio añaden información y análisis útiles para proporcionar una salida fiable.

Es bastante fácil intuir que cuantos más niveles intermedios haya en una red neuronal profunda (es decir, cuanto mayor sea la propia red neuronal) más eficaz será el resultado. Por otro lado, la escalabilidad de la red neuronal está estrechamente relacionada con los conjuntos de datos, los modelos matemáticos y los recursos computacionales.

Escalabilidad del Deep Learning

Aunque la necesidad de una inmensa capacidad de cálculo supone un obstáculo, la escalabilidad del Deep Learning, gracias al aumento de los datos disponibles y de los algoritmos, es lo que lo diferencia del Machine Learning.

Los sistemas de Deep Learning, de hecho, mejoran su rendimiento a medida que aumentan los datos, mientras que las aplicaciones de Machine Learning, también conocidos como sistemas de aprendizaje superficial, una vez alcanzado un determinado nivel de rendimiento, ya no son escalables, ni siquiera añadiendo ejemplos y datos de entrenamiento a la red neuronal.

Esto se debe a que en los sistemas de Machine Learning las características de un determinado objeto (en el caso de los sistemas de reconocimiento visual) se extraen y seleccionan manualmente y sirven para crear un modelo capaz de clasificar los objetos (en función de la clasificación y el reconocimiento de esas características).

En los sistemas de Deep Learning, en cambio, la extracción de características se realiza de forma automática: la red neuronal aprende por sí misma a analizar datos brutos y a realizar una tarea (por ejemplo, clasificar un objeto reconociendo sus características de forma autónoma).

Si desde el punto de vista del potencial, el Deep Learning puede parecer más fascinante y útil que el Machine Learning, hay que precisar que el cálculo computacional requerido para su funcionamiento es realmente impactante, también desde el punto de vista económico: las CPU más avanzadas y las GPU de gama alta útiles para soportar las cargas de trabajo de un sistema de Deep Learning cuestan todavía miles de dólares.

Recurrir a la capacidad de cálculo a través de la nube solo atenúa el problema en parte, porque la formación de una red neuronal profunda suele requerir el procesamiento de grandes cantidades de datos utilizando clústeres de GPU de gama alta durante muchas, muchas horas (por lo que no está claro que comprar como servicio la capacidad de cálculo necesaria resulte económico).

Cómo se Entrena un Sistema de Deep Learning

Un ejemplo tan simple como eficaz para comprender el funcionamiento real de un sistema de Machine Learning (y la diferencia con un sistema de Deep Learning) nos lo proporciona Tech Target:

Ejemplo

«Mientras que los algoritmos de aprendizaje automático tradicionales son lineales, los algoritmos de aprendizaje profundo se apilan en una jerarquía de complejidad y abstracción crecientes. Para entender el aprendizaje profundo, imaginemos un niño cuya primera palabra es «perro». El niño aprende qué es un perro (y qué no lo es) señalando objetos y diciendo la palabra perro. El padre dice «Sí, eso es un perro» o «No, eso no es un perro». A medida que el niño sigue señalando objetos, adquiere una mayor conciencia de las características que poseen todos los perros. Lo que el niño hace, sin saberlo, es aclarar una abstracción compleja (el concepto de perro) construyendo una jerarquía en la que cada nivel de abstracción se crea con el conocimiento que se ha adquirido del nivel anterior de la jerarquía».

A diferencia del niño, que tardará semanas o incluso meses en comprender el concepto de perro y lo hará con la ayuda del progenitor (lo que se denomina aprendizaje supervisado), una aplicación que utiliza algoritmos de Deep Learning puede mostrar y ordenar millones de imágenes, identificando con precisión cuáles contienen los conjuntos de datos, en cuestión de minutos, a pesar de no haber recibido ningún tipo de orientación sobre la corrección o no de la identificación de determinadas imágenes durante el entrenamiento.

En el Deep Learning, los datos están Etiquetados

Normalmente, en los sistemas de Deep Learning, la única precaución que toman los científicos es etiquetar los datos (con metaetiquetas), por ejemplo, insertando la metaetiqueta «perro» dentro de las imágenes que contienen un perro, pero sin explicar al sistema cómo reconocerlo: es el propio sistema, a través de múltiples niveles jerárquicos, el que intuye qué caracteriza a un perro (las patas, la cola, el pelo, etc.) y, por lo tanto, cómo reconocerlo.

Estos sistemas se basan, en esencia, en un proceso de aprendizaje por ensayo y error, pero para que la salida final sea fiable se necesitan enormes cantidades de datos.

Pensar de inmediato en el Big Data y en la facilidad con la que hoy en día se producen y distribuyen datos de cualquier forma y desde cualquier fuente como una solución fácil sería un error: la precisión de la salida requiere, al menos en la primera fase de entrenamiento, el uso de datos etiquetados (que contienen metaetiquetas), lo que significa que el uso de datos no estructurados podría suponer un problema. Los datos no estructurados pueden ser analizados por un modelo de aprendizaje profundo una vez que se ha formado y ha alcanzado un nivel aceptable de precisión, pero no para la fase de entrenamiento del sistema.

Además, los sistemas basados en Deep Learning son difíciles de entrenar debido al propio número de capas de la red neuronal. El número de capas y conexiones entre las neuronas de la red es tal que puede resultar difícil calcular los «ajustes» que deben realizarse en cada fase del proceso de entrenamiento (un problema conocido como el problema de la desaparición del gradiente).

Esto se debe a que para el entrenamiento se suelen utilizar los llamados algoritmos de retropropagación del error, mediante los cuales se revisan los pesos de la red neuronal (las conexiones entre las neuronas) en caso de error (la red propaga el error hacia atrás para que los pesos de las conexiones se actualicen de forma más adecuada). Un proceso que continúa de forma iterativa hasta que el gradiente (el elemento que da la dirección hacia la que debe moverse el algoritmo) es nulo.

Deep Learning Framework: de TensorFlow a PyTorch

Uno de los frameworks específicos para el Deep Learning más utilizados entre investigadores, desarrolladores y científicos de datos es TensorFlow, una conocida librería de software de código abierto (proyecto respaldado por Google) para el aprendizaje automático que proporciona módulos probados y optimizados para la creación de algoritmos que se utilizarán en diferentes tipos de software y con diferentes tipos de lenguajes de programación, desde Python, C/C++, Java, Go, RUST, R,… (especialmente para tareas de percepción y para la comprensión del lenguaje natural).

Desde 2019 se ha abierto camino PyTorch, un proyecto de código abierto desarrollado por Facebook y que ahora forma parte de la galaxia Linux.

Inicialmente (y durante varios años) los desarrolladores de Meta utilizaron un framework conocido como Caffe2, que también fue adoptado por muchas universidades e investigadores. Sin embargo, en 2018, Facebook anunció que estaba trabajando en otro tipo de framework accesible a la comunidad de código abierto, que combinaría lo mejor de Caffe2 y ONNX en un nuevo framework (PyTorch).

ONNX significa Open Neural Network Exchange y es un framework interoperable al que también contribuyen activamente Microsoft y AWS proporcionando soporte para Microsoft CNTK y Apache MXNet. PyTorch 1.0, de hecho, combina lo mejor de Caffe2 y ONNX (es uno de los primeros frameworks con soporte nativo para los modelos ONNX).

En lo que se han centrado los desarrolladores de Meta (pero no solo) es en la creación de un framework mucho más sencillo y accesible que TensorFlow. PyTorch, por ejemplo, utiliza una técnica conocida como cálculo dinámico que simplifica el entrenamiento de las redes neuronales.

Además, el modelo de ejecución de PyTorch imita el modelo de programación convencional conocido por un desarrollador medio de Python. También ofrece entrenamiento distribuido, una profunda integración en Python y un dinámico ecosistema de herramientas y bibliotecas (como Keras).

En septiembre de 2022, Meta anunció la creación de la Fundación PyTorch, una organización independiente dentro de la Fundación Linux.

Casos de uso y Tipos de Aplicaciones del Deep Learning

A pesar de los problemas que hemos ilustrado, los sistemas de Deep Learning han dado pasos agigantados y han mejorado mucho en los últimos años, sobre todo por la enorme cantidad de datos disponibles, pero sobre todo por la disponibilidad de infraestructuras de alto rendimiento (CPU y GPU en particular).

Aprendizaje Profundo para la detección de rostros
Aprendizaje Profundo para la detección de rostros

En el ámbito de la investigación sobre inteligencia artificial, el aprendizaje automático ha cosechado un notable éxito en los últimos años, permitiendo a los ordenadores superar o acercarse a las prestaciones humanas correspondientes en áreas que van desde el reconocimiento facial al vocal y lingüístico. El aprendizaje profundo, en cambio, permite a los ordenadores dar un paso adelante, en particular resolver una serie de problemas complejos.

Como ciudadanos de a pie sin conocimientos tecnológicos, podemos observar varios casos de uso y ámbitos de aplicación:

  • La visión artificial para los coches autónomos,
  • Los robots-drones utilizados para la entrega de paquetes o la asistencia en emergencias (por ejemplo, para la entrega de alimentos o medicamentos en zonas de crisis);
  • El reconocimiento y la síntesis de voz y lingüística para chatbots y robots de servicio;
  • El reconocimiento facial para la vigilancia en países como China;
  • El reconocimiento de imágenes para el diagnóstico, como las radiografías o la identificación de secuencias genéticas o moléculas farmacéuticas;
  • Sistemas de análisis para el mantenimiento predictivo de una infraestructura o planta analizando los datos de los sensores de IoT.

Las Tareas que una Máquina puede Realizar Gracias al Deep Learning

Tareas de una máquina con Deep Learning
Tareas de una máquina con Deep Learning
  • Coloración automática de imágenes en blanco y negro: Para la red neuronal, esto implica reconocer bordes, fondos, detalles y conocer los colores típicos de, por ejemplo, una mariposa, sabiendo exactamente dónde colocar el color correcto.
  • Adición automática de sonidos a películas silenciosas: Para el sistema de Deep learning, esto significa sintetizar sonidos y colocarlos correctamente dentro de una situación particular reconociendo imágenes y acciones, como insertar el sonido del martillo neumático, la ruptura del asfalto y los sonidos de fondo de una calle urbana transitada en un video donde se ven trabajadores rompiendo el asfalto con el martillo neumático.
  • Traducción simultánea: Para el sistema de Deep learning, esto significa escuchar y reconocer el lenguaje natural, reconocer el idioma hablado y traducir el significado a otro idioma.
  • Clasificación de objetos dentro de una fotografía: El sistema en este caso es capaz de reconocer y clasificar todo lo que ve en una imagen, incluso una muy compleja donde, por ejemplo, hay un paisaje de fondo, como montañas, personas caminando por un sendero, animales pastando, etc.
  • Generación automática de la caligrafía: Ya existen sistemas de Deep learning capaces de utilizar la caligrafía humana para escribir, aprendiendo incluso los estilos de escritura a mano de los seres humanos e imitándolos.
  • Generación automática de texto: Es un proceso en el que los sistemas aprenden a escribir correctamente en el idioma elegido, respetando ortografía, puntuación y gramática. Además, estos sistemas también aprenden a utilizar diferentes estilos de escritura, dependiendo de los objetivos, como la producción de artículos periodísticos o cuentos.
  • Generación automática de subtítulos: En este caso, el reconocimiento de las imágenes, el análisis del contexto y la capacidad de escritura permiten a un sistema escribir automáticamente los subtítulos de una imagen describiendo perfectamente la escena.
  • Juego automático: Descubrimos las potencialidades de un sistema capaz de aprender de manera autónoma a jugar un determinado juego gracias a DeepMind, hoy parte de Google. A través de su sistema de Deep learning llamado AlphaGo, no solo aprendió a jugar al complejísimo juego Go, sino que también derrotó al campeón mundial humano. Esta extraordinaria demostración de inteligencia artificial ha abierto nuevas perspectivas en el campo del machine learning y ha suscitado gran fascinación e interés en todo el mundo.

Algunos de los Campos de Aplicación del Deep learning

  • Coche sin conductor: La Detección de Señales de Tráfico (TSD) es una función presente en muchos coches de nueva fabricación que permite reconocer las señales de tráfico. Se trata de una aplicación de machine learning que utiliza redes neuronales convolucionales y frameworks como TensorFlow.
  • Cine: A principios de 2021, se presentó una nueva metodología de IA aplicable en la producción cinematográfica. El nuevo enfoque aprovecha una combinación paralela y secuencial de varias herramientas de deep learning como VGG16, MLP y el aprendizaje por transferencia.Utilizando conjuntos de datos diversificados y resaltando diferentes características de las imágenes, se busca obtener una clasificación precisa de las tomas cinematográficas.Esto permite un uso profesional y operativo en el proceso de creación cinematográfica y en la indexación de contenidos en streaming. Hablamos de IA aplicada al procesamiento de imágenes.
  • Inteligencia cuántica: En el campo de la computación cuántica se concentran grandes expectativas. Un paradigma innovador de procesamiento requiere no solo nuevas tecnologías de hardware, algoritmos avanzados, sino también soluciones de vanguardia.

Su característica principal radica en la capacidad de simplificar considerablemente la solución de problemas complejos, reduciendo su complejidad exponencial.Tomemos como ejemplo la determinación de los factores de un número, un problema fundamental en el ámbito de la criptografía y con numerosas aplicaciones en el campo de la seguridad informática. Este paradigma abre nuevas perspectivas y abre las puertas a un mundo de oportunidades sin precedentes.

  • Hologramas: Un estudio sobre hologramas realizado en 2021 por investigadores del Instituto de Tecnología de Massachusetts (MIT) demostró que gracias a la técnica innovadora de deep learning llamada holografía tensorial es posible generar instantáneamente videos holográficos utilizando la potencia de cálculo de una computadora común.

El aspecto único de esta tecnología reside en el uso de tensores entrenables, capaces de aprender a procesar información visual y de profundidad de manera similar al cerebro humano. Esto permite obtener resultados extraordinarios, con un realismo y un detalle sin precedentes.

Compartir este Artículo
Dejar un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *