Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Deep learning en MATLAB

¿En qué consiste deep learning?

Deep learning es una rama de machine learning que enseña a los ordenadores a hacer lo que los humanos hacen de forma natural: aprender a partir de la experiencia. Las técnicas de deep learning usan redes neuronales para aprender representaciones útiles de ciertas características directamente a partir de los datos. Las redes neuronales combinan múltiples capas de procesamiento no lineal utilizando elementos simples que funcionan en paralelo y están inspirados en los sistemas nerviosos biológicos. Los modelos de deep learning pueden lograr una precisión avanzada en la clasificación de objetos y, a veces, superan el rendimiento humano.

Deep Learning Toolbox™ proporciona comandos simples de MATLAB® para crear e interconectar las capas de una red neuronal profunda. Los ejemplos y redes preentrenadas facilitan el uso de MATLAB para deep learning, incluso sin conocimientos de algoritmos avanzados de visión artificial o sobre redes neuronales.

Para ver una introducción práctica gratuita a métodos de deep learning prácticos, consulte Deep Learning Onramp. Para empezar a usar rápidamente el deep learning, consulte Pruebe deep learning en 10 líneas de código de MATLAB.

Empezar a usar deep learning rápidamente con la transferencia del aprendizaje

La transferencia del aprendizaje se suele usar en aplicaciones de deep learning. Se puede usar una red preentrenada como punto de partida para aprender una nueva tarea. Ajustar una red con transferencia del aprendizaje es mucho más rápido y fácil que entrenarla desde cero. Puede hacer que la red aprenda rápidamente una nueva tarea con menos imágenes de entrenamiento. La ventaja de la transferencia del aprendizaje es que la red preentrenada ya ha aprendido un conjunto rico de características que se pueden aplicar a una amplia gama de otras tareas similares. Para ver un ejemplo interactivo, consulte Preparar una red para la transferencia del aprendizaje mediante Deep Network Designer. Para ver un ejemplo programático, consulte Retrain Neural Network to Classify New Images.

Para decidir si se debe utilizar una red preentrenada o crear una nueva red profunda, considere las situaciones que se plantean en esta tabla.

 Usar una red preentrenada para la transferencia del aprendizajeCrear una nueva red profunda
Datos de entrenamientoDe cientos a miles de datos etiquetados (pequeño)De miles a millones de datos etiquetados
CálculoCálculo moderado (GPU opcional)Cálculo intensivo (requiere GPU para ser rápido)
Tiempo de entrenamientoDe segundos a minutosDe días a semanas para problemas reales
Precisión del modeloBuena, depende del modelo preentrenadoAlta, pero puede sobreajustar los conjuntos de datos pequeños

Para explorar una selección de redes preentrenadas, utilice Deep Network Designer.

Flujos de trabajo de deep learning

Para obtener más información sobre las áreas de aplicación de deep learning, consulte Aplicaciones.

DominioFlujo de trabajo de ejemploMás información

Clasificación, regresión y procesamiento de imágenes

Image data example

Aplique deep learning en tareas de datos de imágenes.

Por ejemplo, utilice deep learning para la clasificación y la regresión de imágenes.

Introducción a la transferencia del aprendizaje

Redes neuronales profundas preentrenadas

Crear una red neuronal de deep learning sencilla para clasificación

Entrenar una red neuronal convolucional para regresión

Preprocesar imágenes para deep learning

Secuencias y series de tiempo

Time series data example

Aplique deep learning en tareas de secuencias y series de tiempo.

Por ejemplo, utilice deep learning para la clasificación de secuencias y el pronóstico de series de tiempo.

Clasificación de secuencias mediante deep learning

Pronóstico de series de tiempo mediante deep learning

Visión artificial

Semantic segmentation data example

Aplique deep learning en aplicaciones de visión artificial.

Por ejemplo, utilice deep learning para la segmentación semántica y la detección de objetos.

Getting Started with Semantic Segmentation Using Deep Learning (Computer Vision Toolbox)

Recognition, Object Detection, and Semantic Segmentation (Computer Vision Toolbox)

Procesamiento de sonido

Audio data example

Aplique deep learning en aplicaciones de procesamiento de sonido y voz.

Por ejemplo, utilice deep learning para la identificación de hablantes, el reconocimiento de comandos de voz y el reconocimiento de escenas acústicas.

Procesamiento de sonido

Deep Learning for Audio Applications (Audio Toolbox)

Conducción autónoma

Automated driving data example

Aplique deep learning en aplicaciones de conducción autónoma.

Por ejemplo, utilice deep learning para la detección de vehículos y la segmentación semántica.

Conducción autónoma

Procesamiento de señales

Signal processing data example

Aplique deep learning en aplicaciones de procesamiento de señales.

Por ejemplo, utilice deep learning para la segmentación de formas de onda, la clasificación de señales y la eliminación del ruido de señales de voz.

Procesamiento de señales

Classify Time Series Using Wavelet Analysis and Deep Learning

Comunicaciones inalámbricas

Wireless communications data example

Aplique deep learning en sistemas de comunicaciones inalámbricas.

Por ejemplo, utilice deep learning para el posicionamiento, la detección de espectros, el diseño de codificadores automáticos y la predistorsión digital (DPD).

Comunicaciones inalámbricas

Spectrum Sensing with Deep Learning to Identify 5G and LTE Signals

Three-Dimensional Indoor Positioning with 802.11az Fingerprinting and Deep Learning (WLAN Toolbox)

Reinforcement learning

Reinforcement learning data example

Entrene agentes de redes neuronales profundas interactuando con un entorno dinámico desconocido.

Por ejemplo, utilice reinforcement learning para entrenar políticas que implementen controladores y algoritmos de toma de decisiones para aplicaciones complejas, como asignación de recursos, robótica y sistemas autónomos.

Reinforcement learning

Finanzas computacionales

Computational finance data example

Aplique deep learning en flujos de trabajo de finanzas.

Por ejemplo, utilice deep learning para aplicaciones como la fijación de precios de instrumentos, operaciones bursátiles y administración de riesgos.

Finanzas computacionales

Compare Deep Learning Networks for Credit Default Prediction

Procesamiento LiDAR

Lidar processing data example

Aplique algoritmos de deep learning para procesar datos de nubes de puntos LiDAR.

Por ejemplo, utilice deep learning para la segmentación semántica y la detección de objetos en datos de nubes de puntos LiDAR organizados en 3D.

Procesamiento LiDAR

Aerial Lidar Semantic Segmentation Using PointNet++ Deep Learning

Lidar 3-D Object Detection Using PointPillars Deep Learning

Análisis de texto

Text analytics data example

Aplique algoritmos de deep learning en aplicaciones de análisis de texto.

Por ejemplo, utilice deep learning para la clasificación de texto, la traducción de idiomas y la generación de texto.

Análisis de texto

Classify Text Data Using Deep Learning

Mantenimiento predictivo

Predictive maintenance data example

Aplique deep learning en aplicaciones de mantenimiento predictivo.

Por ejemplo, utilice deep learning para la detección de errores y la estimación de la vida útil restante.

Mantenimiento predictivo

Chemical Process Fault Detection Using Deep Learning

Aplicaciones de deep learning

Procese datos, visualice y entrene redes, realice el seguimiento de experimentos y cuantifique redes de forma interactiva usando aplicaciones.

Puede procesar datos antes del entrenamiento utilizando aplicaciones para etiquetar datos de validación. Para obtener más información sobre qué app de etiquetado elegir, consulte Choose an App to Label Ground Truth Data.

NombreDescripciónMás información
Deep Network Designer

Deep Network Designer

Permite crear, visualizar, editar y entrenar redes de deep learning.

Preparar una red para la transferencia del aprendizaje mediante Deep Network Designer

Crear una red para el pronóstico de series de tiempo con Deep Network Designer

Experiment Manager

Experiment Manager

Cree experimentos de deep learning para entrenar redes en varias condiciones iniciales y comparar los resultados.

Create a Deep Learning Experiment for Classification

Create a Deep Learning Experiment for Regression

Deep Network Quantizer

Deep Network Quantizer

Permite reducir los requisitos de memoria de una red neuronal profunda cuantificando los pesos, los sesgos y las activaciones de las capas convolucionales en tipos de datos enteros escalados de 8 bits.

Quantization of Deep Neural Networks

Reinforcement Learning Designer (Reinforcement Learning Toolbox)

Reinforcement Learning Designer

Permite diseñar, entrenar y simular agentes de reinforcement learning.Design and Train Agent Using Reinforcement Learning Designer (Reinforcement Learning Toolbox)
Image Labeler (Computer Vision Toolbox)

Image Labeler

Permite etiquetar datos de validación en un conjunto de datos.

Get Started with the Image Labeler (Computer Vision Toolbox)

Video Labeler (Computer Vision Toolbox)

Video Labeler

Permite etiquetar datos de validación en un vídeo, en una secuencia de imágenes o a partir de un lector personalizado de fuente de datos.

Get Started with the Video Labeler (Computer Vision Toolbox)

Ground Truth Labeler (Automated Driving Toolbox)

Ground Truth Labeler

Permite etiquetar datos de validación en múltiples videos, secuencias de imágenes o nubes de puntos LiDAR.

Get Started with Ground Truth Labelling (Automated Driving Toolbox)

Lidar Labeler (Lidar Toolbox)

Lidar Labeler

Permite etiquetar objetos en una nube de puntos o en una secuencia de nubes de puntos. La app lee datos de nubes de puntos de archivos PLY, PCAP, LAS, LAZ, ROS y PCD.

Get Started with the Lidar Labeler (Lidar Toolbox)

Signal Labeler (Signal Processing Toolbox)

Signal Labeler

Permite etiquetar señales para el análisis o para utilizar en aplicaciones de machine learning y deep learning.

Use Signal Labeler App (Signal Processing Toolbox)

Entrenar clasificadores utilizando características extraídas de redes preentrenadas

La extracción de características permite utilizar la potencia de las redes preentrenadas sin invertir tiempo ni esfuerzo en el entrenamiento. La extracción de características puede constituir la forma más rápida de empezar a usar deep learning. Se extraen las características aprendidas de una red preentrenada y, a continuación, se utilizan esas características para entrenar un clasificador, por ejemplo, una máquina de vectores de soporte (SVM, requiere Statistics and Machine Learning Toolbox™). Por ejemplo, si una SVM entrenada que usa una red neuronal SqueezeNet puede lograr una precisión superior al 90% en el entrenamiento y el conjunto de validación, posiblemente no valga la pena realizar el esfuerzo de ajustar con transferencia del aprendizaje para obtener un resultado algo más preciso. Si realiza el ajuste en un conjunto de datos pequeño, se arriesga a sobreajustarlo. Si la SVM no puede lograr una precisión lo suficientemente buena para su aplicación, vale la pena hacer el esfuerzo de ajustar para tener un resultado más preciso.

Para ver un ejemplo, consulte Extraer características de imágenes con una red preentrenada.

Deep learning con big data en CPU, GPU, en paralelo y en la nube

El entrenamiento de redes neuronales profundas requiere gran cantidad de recursos computationales y puede llevar muchas horas de procesamiento. Sin embargo, las redes neuronales son algoritmos inherentemente paralelos. Puede utilizar Parallel Computing Toolbox™ para aprovechar este paralelismo ejecutando en paralelo usando unidades GPU de alto rendimiento y clusters de ordenadores. Para obtener más información sobre deep learning en paralelo, en la nube o utilizando una GPU, consulte Scale Up Deep Learning in Parallel, on GPUs, and in the Cloud.

Accelerating training in the cloud with Parallel Computing Toolbox.

Los almacenes de datos en MATLAB® son una forma práctica de representar y trabajar con conjuntos de datos que son demasiado grandes para caber en la memoria. Para obtener más información sobre deep learning con conjuntos de datos grandes, consulte Deep Learning with Big Data.

Deep learning con Simulink

Implemente funcionalidades de deep learning en modelos de Simulink® con bloques de las bibliotecas de bloques Deep Neural Networks y Python Neural Networks (incluidas en Deep Learning Toolbox™) o usando el bloque Deep Learning Object Detector de la biblioteca de bloques Analysis & Enhancement (incluida en Computer Vision Toolbox™).

Para obtener más información, consulte Deep learning con Simulink.

BloqueDescripción

Image Classifier

Clasificar datos con una red neuronal de deep learning entrenada

Predict

Predecir respuestas usando una red neuronal de deep learning entrenada

Stateful Classify

Clasificar datos usando una red neuronal recurrente de deep learning entrenada

Stateful Predict

Predecir respuestas usando una red neuronal recurrente entrenada

Deep Learning Object Detector (Computer Vision Toolbox)

Detectar objetos utilizando un detector de objetos de deep learning entrenado

TensorFlow Model Predict

Predecir respuestas usando el modelo preentrenado TensorFlow™ de Python®

PyTorch Model Predict

Predecir respuestas usando el modelo preentrenado PyTorch® de Python

ONNX Model Predict

Predecir respuestas usando el modelo preentrenado ONNX™ de Python

Custom Python Model Predict

Predecir respuestas usando el modelo preentrenado y personalizado de Python

Interpretabilidad de deep learning

Las redes de deep learning a menudo se describen como "cajas negras" porque no siempre es evidente la razón por la que una red toma una decisión concreta. Puede utilizar técnicas de interpretabilidad para traducir el comportamiento de la red en una salida que una persona pueda interpretar. Esta salida interpretable puede responder preguntas sobre las predicciones de una red.

Deep Learning Toolbox proporciona diversos métodos de visualización de deep learning para ayudar a investigar y entender el comportamiento de la red. Por ejemplo, gradCAM, occlusionSensitivity y imageLIME. Para obtener más información, consulte Deep Learning Visualization Methods.

Deep learning interpretability and visualization methods applied to an image of a dog.

Personalización de deep learning

Puede entrenar y personalizar un modelo de deep learning de varias formas. Por ejemplo, puede construir una red utilizando capas integradas o definir capas personalizadas. Después, puede entrenar la red utilizando la función de entrenamiento integrada trainnet o utilizar un bucle de entrenamiento personalizado. También puede definir un modelo de deep learning como una función y utilizar un bucle de entrenamiento personalizado. Para obtener ayuda para decidir qué método usar, consulte la tabla siguiente.

MétodoCaso de usoMás información
Capas y entrenamientos integradosAdecuados para las tareas de deep learning más intensivas.

Capas personalizadasSi Deep Learning Toolbox no proporciona la capa que necesita para la tarea, puede crear una capa personalizada.
Bucle de entrenamiento personalizadoSi necesita personalización adicional, puede construir y entrenar su red utilizando un bucle de entrenamiento personalizado.

Para obtener más información, consulte Train Deep Learning Model in MATLAB.

Importación y exportación de deep learning

Puede importar redes neuronales de TensorFlow 2, TensorFlow-Keras, PyTorch y del formato de modelos ONNX (Open Neural Network Exchange). También puede exportar redes neuronales de Deep Learning Toolbox al formato de modelos TensorFlow 2 y ONNX.

Importar funciones

Plataforma de deep learning externa y formato de modelosImportar modelo como dlnetwork
Red neuronal TensorFlow o red neuronal TensorFlow-Keras en formato SavedModelimportNetworkFromTensorFlow
Modelo PyTorch rastreado en un archivo .ptimportNetworkFromPyTorch
Red neuronal en formato de modelo ONNXimportNetworkFromONNX

Las funciones importNetworkFromTensorFlow, importNetworkFromPyTorch e importNetworkFromONNX crean capas personalizadas generadas de forma automática cuando se importa un modelo con capas de TensorFlow, capas de PyTorch u operadores de ONNX que las funciones no pueden convertir en capas de MATLAB integradas. Las funciones guardan las capas personalizadas generadas de forma automática en un paquete en la carpeta actual. Para obtener más información, consulte Autogenerated Custom Layers.

Exportar funciones

Plataforma de deep learning externa y formato de modelosExportar red neuronal o gráfica de capas
Modelo TensorFlow 2 en paquete de PythonexportNetworkToTensorFlow
Formato de modelo ONNXexportONNXNetwork

La función exportNetworkToTensorFlow guarda una red neuronal de Deep Learning Toolbox como un modelo TensorFlow en un paquete de Python. Para obtener más información sobre cómo descargar el modelo exportado y guardarlo en un formato estándar de TensorFlow, consulte Load Exported TensorFlow Model y Save Exported TensorFlow Model in Standard Format.

Utilizando ONNX como un formato intermedio, puede interoperar con otros marcos de trabajo de deep learning que sean compatibles con las exportaciones o las importaciones de modelos ONNX.

Temas relacionados