Deep Learning

Introducción a Deep Learning

Integre Deep Learning al diseño de sistemas de ingeniería inteligentes

Deep Learning es una rama de Machine Learning que utiliza redes neuronales para enseñar a equipos informáticos a hacer lo que resulta natural para las personas: aprender a partir de ejemplos. Con Deep Learning, un modelo aprende a realizar tareas de clasificación o regresión directamente a partir de datos de imágenes, texto o sonido. Los modelos de Deep Learning pueden alcanzar una precisión excepcional que, con frecuencia, supera el propio rendimiento humano.

Cómo funciona Deep Learning

Los modelos de Deep Learning se basan en arquitecturas de redes neuronales. Inspirada en el cerebro humano, una red neuronal consta de neuronas o nodos interconectados en una estructura en capas que relacionan las entradas con las salidas deseadas. Las neuronas situadas entre las capas de entrada y salida de una red neuronal se denominan capas ocultas. El término “Deep” (profundo) normalmente alude a la cantidad de capas ocultas de la red neuronal. Los modelos de Deep Learning pueden tener cientos o incluso miles de capas ocultas.

Las redes de Deep Learning están organizadas en capas que constan de un conjunto de neuronas interconectadas.

Arquitectura de red neuronal típica.

Los modelos de Deep Learning se entrenan empleando grandes conjuntos de datos etiquetados. Suelen aprender directamente a partir de los datos, sin necesidad de extraer características manualmente. Si bien la teoría de una red neuronal artificial se elaboró por primera vez en 1958, Deep Learning requiere una potencia de cálculo significativa que no fue posible hasta la década de los 2000. En la actualidad, los recursos informáticos permiten crear y entrenar redes con cientos de conexiones y neuronas.

Las GPU de alto rendimiento cuentan con una arquitectura paralela que resulta eficiente para Deep Learning. En combinación con clusters o cálculo en la nube, esto permite reducir el tiempo de entrenamiento de una red de Deep Learning de semanas a horas, o incluso minutos.

Tipos de modelos de Deep Learning

Las redes neuronales convolucionales (CNN), las redes neuronales recurrentes (RNN) y los modelos de transformadores son tres tipos de modelos de Deep Learning.

CNN: Una red CNN convoluciona características aprendidas con datos de entrada y emplea capas convolucionales en 2D. Esta arquitectura resulta adecuada para procesar datos en 2D, como imágenes; CNN extrae características directamente de las imágenes. Las características relevantes se aprenden mientras la red se entrena con un conjunto de imágenes. Este proceso automatizado de extracción de características contribuye significativamente a la precisión de los modelos de Deep Learning en tareas de clasificación de imágenes. Además, las CNN se pueden utilizar para clasificar otros tipos de datos, como texto y series temporales.

Red neuronal convolucional para Deep Learning aprende características de las imágenes de entrada automáticamente y calcula la probabilidad de cada clase.

Ejemplo de una red neuronal convolucional.

RNN: Una red neuronal recurrente (RNN) es una arquitectura de red de Deep Learning que realiza predicciones sobre series temporales o datos secuenciales. Son especialmente eficaces para trabajar con datos secuenciales de longitud variable y resolver problemas de clasificación de señales naturales, procesamiento del lenguaje y análisis de vídeos. La red de memoria a corto-largo plazo (LSTM) es un tipo especial de RNN que es más eficiente en aprender dependencias a largo plazo que una RNN simple.

Transformadores: Los transformadores están diseñados para realizar un seguimiento de las relaciones entre los componentes de una secuencia. Se basan en un mecanismo de autoatención para capturar dependencias globales entre entrada y salida. Se suelen emplear para procesamiento del lenguaje natural, y son la base de modelos de lenguaje de gran tamaño (LLM) como BERT y ChatGPT™.

Cómo crear modelos de Deep Learning

Puede crear un modelo de Deep Learning desde cero o a partir de un modelo de Deep Learning previamente entrenado, que puede aplicar o adaptar a una tarea.

Entrenamiento desde cero: Para entrenar un modelo de Deep Learning desde cero, debe recopilar un gran conjunto de datos etiquetados y diseñar una arquitectura de red que aprenda las características y el modelo. Este enfoque es adecuado para aplicaciones nuevas o específicas, o aplicaciones para las que no existan modelos preexistentes. La principal desventaja de este enfoque es que requiere un conjunto de datos de gran tamaño (con anotación ground-truth) y el entrenamiento puede llevar horas o semanas, dependiendo de la tarea y los recursos informáticos.

Transferencia del aprendizaje: En aplicaciones de Deep Learning como clasificación de imágenes, visión artificial, procesamiento de audio y procesamiento del lenguaje natural, es común utilizar la transferencia del aprendizaje. Esto implica ajustar un modelo de Deep Learning previamente entrenado. Se comienza con un modelo existente para clasificación de imágenes, tal como SqueezeNet o GoogLeNet, al que se proporcionan datos nuevos que contienen clases no vistas previamente. Después de realizar algunos ajustes en la red, puede ejecutar una tarea nueva, por ejemplo, categorizar solo perros o gatos, en lugar de 1000 objetos diferentes. La ventaja de este enfoque es que requiere menos datos, lo que reduce la duración del entrenamiento significativamente.

Un modelo de Deep Learning previamente entrenado también se puede emplear para extraer características. Puede utilizar las activaciones de capas como características para entrenar otro modelo de Machine Learning, por ejemplo, una máquina de vectores de soporte (SVM). También puede servirse del modelo previamente entrenado como componente básico de otro modelo de Deep Learning. Por ejemplo, puede utilizar una CNN de clasificación de imágenes como extractor de características para un detector de objetos.

Comparación entre Deep Learning y Machine Learning

Deep Learning es una forma especializada de Machine Learning; ambos forman parte del campo de la inteligencia artificial (IA). Machine Learning ofrece diversas técnicas y modelos que puede seleccionar en función de la aplicación, tamaño de los datos que va a procesar y tipo de problema que desea resolver.

Definición de inteligencia artificial, Machine Learning y Deep Learning.

La elección entre algoritmos de Deep Learning o Machine Learning para una aplicación de inteligencia artificial depende de los objetivos y requisitos del sistema.

La principal diferencia entre Deep Learning y Machine Learning es la precisión. Por lo general, Deep Learning logra mayor precisión y ofrece más automatización del flujo de trabajo que Machine Learning. Las principales deficiencias de los modelos de Deep Learning radican en que son más complejos y requieren conjuntos de datos de entrenamiento de mayor tamaño, por lo que se tarda más en entrenarlos. Existen métodos para superar, o al menos paliar, estas deficiencias.

Automatización de ingeniería de características

Un flujo de trabajo de Machine Learning comienza con la extracción manual de características relevantes de los datos. Estas características se utilizan luego para crear un modelo que puede realizar predicciones sobre datos nuevos. En un flujo de trabajo de Deep Learning, en aplicaciones como reconocimiento de imágenes y visión artificial, las características relevantes se extraen directamente de los datos de imagen. En el caso de señales o datos de texto, Deep Learning puede reducir el preprocesamiento de datos necesario.

Comparación de Machine Learning (izquierda) con Deep Learning (derecha) para categorizar un vehículo.

Datos y duración del entrenamiento

La precisión de Deep Learning aumenta con los datos. Es decir, el rendimiento de Deep Learning sigue mejorando a medida que aumenta el tamaño de los datos de entrenamiento. Por lo general, Deep Learning requiere una cantidad de datos muy grande para entrenar el modelo, por ejemplo, miles de imágenes para realizar clasificación de imágenes. El acceso a GPU de alto rendimiento puede reducir significativamente la duración del entrenamiento. Como alternativa, modificar y volver a entrenar una red previamente entrenada con transferencia del aprendizaje suele ser mucho más rápido, y requiere menos datos etiquetados que entrenar una red desde cero.

Si no se cuenta con suficientes datos de entrenamiento, puede complementar los datos existentes con datos sintéticos. Para generar datos sintéticos, puede emplear redes generativas antagónicas (GAN), o crear y simular un modelo del sistema físico.

Tamaño y complejidad de los modelos

Los modelos de Deep Learning, en comparación con los de Machine Learning, son mucho más complejos y grandes, ya que se crean con cientos de capas interconectadas. A medida que la tecnología de Deep Learning avanza, la complejidad de la arquitectura de redes de Deep Learning sigue creciendo. La complejidad y el tamaño contribuyen a la precisión superior de Deep Learning.

Debido a su complejidad, los modelos de Deep Learning se suelen considerar “opacos” ya que adolecen de interpretabilidad. Un campo emergente, denominado IA explicable, ofrece técnicas para explicar el comportamiento de modelos de Deep Learning en términos humanos. Por ejemplo, puede utilizar Grad-CAM y LIME para explicar las predicciones de modelos de Deep Learning sobre tareas de clasificación de imágenes.

Los modelos de Deep Learning no solo se ejecutan en equipos de escritorio. El despliegue de modelos de Deep Learning cada vez más grandes y complejos en dispositivos con recursos limitados es un desafío creciente al que se enfrenta un gran número de profesionales de Deep Learning. Existen muchas técnicas para comprimir modelos de Deep Learning, que se pueden utilizar para reducir el tamaño de los modelos de Deep Learning en disco, memoria en tiempo de ejecución y tiempos de inferencia, manteniendo al mismo tiempo una alta precisión.

Compresión de una capa totalmente conectada con proyección. La operación de capa se encuentra debajo de la figura.

Proyección de una capa totalmente conectada. La proyección es un método de compresión de red.

Relevancia de Deep Learning

Deep Learning es una tecnología clave presente en vehículos autónomos que permite reconocer una señal de stop y distinguir un peatón de una farola. Resulta fundamental para el control por voz en dispositivos, teléfonos, tabletas, televisores y sistemas manos libres. Deep Learning concita mucha atención últimamente, y existen razones de peso para que sea así. Deep Learning permite que sistemas y equipos informáticos realicen tareas complejas cada vez con más precisión y automatización.

Aplicaciones de Deep Learning

Deep Learning se aplica en visión artificial, procesamiento de imágenes, conducción autónoma y procesamiento de señales, y muchos otros ámbitos. Cada área de aplicación de Deep Learning puede abarcar varias subáreas de aplicación. Por ejemplo, clasificación de imágenes, detección de objetos y segmentación semántica son subaplicaciones de visión artificial. A medida que se desarrollen nuevos métodos y tecnologías de Deep Learning, seguirán creciendo las aplicaciones de Deep Learning y se descubrirán nuevas subaplicaciones en las que Deep Learning pueda mejorar la precisión.

Ejemplos prácticos de Deep Learning

La inspección visual consiste en la inspección de piezas basada en imágenes mediante una cámara que escanea cada pieza sometida a prueba para detectar fallos y defectos de calidad. Empleando técnicas de Deep Learning y visión artificial, se puede automatizar la inspección visual para detectar defectos de fabricación en muchas industrias, como biotecnología, automoción y semiconductores.

Las señales electroencefalográficas (EEG) son las señales cerebrales más accesibles, y por ello no sorprende que sean también las más investigadas. Deep Learning se puede emplear para diagnosticar epilepsia automáticamente y predecir convulsiones epilépticas mediante señales de EEG.

Los sensores virtuales se pueden emplear en todo sistema que requiera supervisión y control en tiempo real, y donde el uso de sensores físicos resulte costoso o poco práctico. Puede combinar Deep Learning con diseño basado en modelos para diseñar sensores virtuales.

Deep Learning aplicado a la investigación del cáncer

Descubra cómo Moffit Cancer Center utilizó Deep Learning para acelerar el descubrimiento científico y personalizar tratamientos.

MATLAB® proporcionó todas las herramientas necesarias para aplicar correctamente IA en captura de imágenes y radiómica. MATLAB se empleó en procesamiento de datos, eliminación de ruido y segmentación de imágenes.

Deep Learning con MATLAB

Utilizar MATLAB con Deep Learning Toolbox™ permite diseñar, analizar y simular redes de Deep Learning. Puede ampliar los flujos de trabajo de Deep Learning a muchas aplicaciones, como visión artificial, procesamiento de señales y procesamiento del lenguaje natural, empleando toolboxes como Computer Vision Toolbox™, Signal Processing Toolbox™ y Text Analytics Toolbox™.

El flujo de trabajo de Deep Learning incluye preprocesamiento y etiquetado de datos, creación de un modelo de IA, visualización de la decisión del modelo, simulación del sistema de IA y despliegue en plataforma objetivo.

Flujo de trabajo de Deep Learning, desde preparación de datos hasta despliegue.

Datos para Deep Learning

Deep Learning requiere grandes cantidades de datos de buena calidad. Puede utilizar almacenes de datos para gestionar cómodamente conjuntos de datos demasiado grandes para la capacidad de la memoria. Puede utilizar apps de low-code y funciones integradas para mejorar la calidad de los datos y etiquetarlos con ground-truth automáticamente.

Diseño de modelos de Deep Learning

 

Redes desde cero

  • Con unas líneas de código, puede crear redes de Deep Learning como CNN, LSTM, GAN y transformadores.
  • Puede acelerar el entrenamiento con varias GPU, la nube o clusters. Para entrenar modelos de Deep Learning, MATLAB emplea GPU (si están disponibles) sin necesidad de programarlas explícitamente.
Cree una red de Deep Learning LSTM con unas líneas de código de MATLAB.

Creación de red LSTM de forma programática.

Redes previamente entrenadas

  • Aplique un modelo previamente entrenado directamente a una tarea, adáptelo realizando transferencia del aprendizaje, o utilícelo como extractor de características.
  • Explore MATLAB Deep Learning Model Hub en GitHub para acceder a los modelos más recientes por categoría y cargar modelos previamente entrenados desde la línea de comandos.
  • Convierta modelos de TensorFlow™, PyTorch® y ONNX™ en redes de MATLAB utilizando una función de importación. Exporte redes entrenadas y no entrenadas desde Deep Learning Toolbox a TensorFlow y ONNX.
  • Realice transferencia del aprendizaje fácilmente con funciones integradas para reemplazar capas y ajustar las tasas de aprendizaje para volver a realizar el entrenamiento.

Obtención de modelos previamente entrenados para adaptarlos a una tarea de Deep Learning.

Apps de low-code

  • Con la app Deep Network Designer, puede diseñar, analizar y modificar redes de manera interactiva. También puede importar redes previamente entrenadas desde Deep Learning Toolbox, TensorFlow y PyTorch.
  • La app Experiment Manager ayuda a gestionar múltiples experimentos de Deep Learning, realizar un seguimiento de parámetros de entrenamiento, analizar resultados y comparar código de diferentes experimentos.
App Deep Network Designer que muestra las capas de una red de Deep Learning CNN.

Diseño, análisis y modificación de redes de Deep Learning gráficamente con Deep Network Designer.

Deep Learning para ingeniería

Deep Learning explicable y sólido

Con MATLAB, puede visualizar y verificar modelos de Deep Learning y sus predicciones.

  • Supervise el progreso del entrenamiento de modelos de Deep Learning y represente gráficamente métricas de rendimiento.
  • Visualice los resultados de modelos de Deep Learning aplicando técnicas de explicabilidad, como Grad-CAM, sensibilidad a la oclusión, LIME y deep dream. Esto ayuda a comprender cómo realizan predicciones los modelos de Deep Learning.
  • Entrene modelos sólidos de Deep Learning y verifique su solidez. Puede verificar las propiedades de solidez de una red, calcular límites de resultados de red, buscar ejemplos antagónicos, detectar datos fuera de distribución y verificar conformidad con estándares de la industria.

Simulación en nivel de sistema

Utilice bloques de Deep Learning Toolbox para integrar redes entrenadas con sistemas de Simulink®. Esto permite probar la integración de modelos de Deep Learning con otras partes del sistema.

Despliegue en plataformas objetivo

Puede desplegar modelos de Deep Learning en dispositivos edge, sistemas integrados o la nube. Antes del despliegue, puede comprimir los modelos realizando cuantización, proyección o poda.