Deep Learning (Aprendizaje profundo)

Deep Learning (Aprendizaje profundo) con MATLAB

El aprendizaje profundo es una rama del aprendizaje automático que utiliza varias capas de procesamiento no lineal para aprender representaciones útiles de características directamente a partir de los datos. Los modelos de aprendizaje automático pueden lograr una precisión extrema en la clasificación de objetos, que en ocasiones supera el nivel del rendimiento humano. Los modelos se entrenan mediante un amplio conjunto de datos etiquetados y arquitecturas de redes neuronales que contienen muchas capas.

El aprendizaje profundo se puede aplicar a diversos problemas, tales como:

  • Clasificación de imágenes
  • Reconocimiento de voz
  • Procesamiento del lenguaje natural

Entrenamiento de un modelo de aprendizaje profundo

La precisión de un modelo de aprendizaje profundo depende en gran medida de la cantidad de datos utilizados para su entrenamiento.  Los modelos más precisos pueden requerir miles o incluso millones de muestras, y el entrenamiento puede llevar mucho tiempo. Una vez que se ha entrenado un modelo de aprendizaje profundo, se puede utilizar para aplicaciones en tiempo real, tales como la detección de peatones en los sistemas avanzados de conducción asistida (ADAS, por sus siglas en inglés).

Clasificación de imágenes mediante redes neuronales convolucionales

Una red neuronal convolucional, o CNN (por sus siglas en inglés), es un tipo habitual de arquitectura de aprendizaje profundo. Las redes neuronales están organizadas en capas que constan de una serie de nodos interconectados. Una CNN convoluciona las características aprendidas con los datos de entrada y emplea capas convolucionales 2D, lo cual hace que esta arquitectura resulte adecuada para procesar datos 2D, tales como imágenes.

Flujo de procesamiento de datos a través de una CNN entrenada para llevar a cabo una tarea de clasificación de imágenes. Se aplican filtros a cada imagen de entrenamiento con distintas resoluciones, y la salida de cada imagen convolucionada se emplea como entrada para la siguiente capa. Los filtros pueden empezar distinguiendo características muy simples, tales como el brillo y los bordes, a formas más complejas a medida que se avanza a capas más profundas.

Transferencia del aprendizaje

Se necesita una ingente cantidad de datos para entrenar una CNN, ya que debe aprender millones de pesos para un problema típico de clasificación de imágenes. Una alternativa habitual al entrenamiento de una CNN desde cero es utilizar un modelo previamente entrenado para extraer las características de un conjunto de datos nuevo de forma automática. Este método, conocido como transferencia del aprendizaje, es una forma práctica de aplicar el aprendizaje profundo sin necesidad de un vasto conjunto de datos y mucho tiempo de entrenamiento.

Comparación de la complejidad y la precisión de la creación de una CNN desde cero frente al uso de un modelo con entrenamiento previo.

Aceleración de hardware con GPUs

El entrenamiento de un modelo de aprendizaje profundo puede llevar mucho tiempo, desde días hasta semanas. El uso de la aceleración mediante GPU puede agilizar este proceso significativamente. Con una GPU, se reduce el tiempo necesario para entrenar una red y se puede acortar el tiempo de entrenamiento para un problema de clasificación de imágenes de días a horas.

Comandos de Neural Network Toolbox para entrenar su propia CNN desde cero o uso de un modelo previamente entrenado para la transferencia del aprendizaje.

Para obtener más información sobre el entrenamiento y el uso de modelos de aprendizaje profundo, consulte MATLAB®, Computer Vision System Toolbox™, Statistics and Machine Learning Toolbox™ y Neural Network Toolbox™.



Referencia de software

See also: aprendizaje automático, detección de objetos, reconocimiento de objetos, extracción de características, reconocimiento de imágenes, reconocimiento de patrones

Deep learning con MATLAB