Una red neuronal convolucional (CNN o ConvNet) es una arquitectura de red para Deep Learning que aprende directamente a partir de datos.
Son particularmente útiles para identificar patrones en imágenes con el fin de reconocer objetos, clases y categorías. Además, pueden ser muy eficaces para clasificar datos de audio, señales y series temporales.
Funcionamiento de las redes CNN
Las redes neuronales convolucionales pueden tener decenas o cientos de capas, y cada una de ellas aprende a detectar diferentes características de una imagen. Se aplican filtros a las imágenes de entrenamiento con distintas resoluciones, y la salida resultante de convolucionar cada imagen se emplea como entrada para la siguiente capa. Los filtros pueden comenzar como características muy simples, tales como brillo y bordes, e ir creciendo en complejidad hasta convertirse en características que definen el objeto de forma singular.
Ejemplos para iniciarse
Aprendizaje de características, capas y clasificación
Una CNN consta de una capa de entrada, una capa de salida y varias capas ocultas entre ambas.
Estas capas realizan operaciones que modifican los datos, con el propósito de comprender sus características particulares. Las 3 capas más comunes son: convolución, activación o ReLU, y agrupación.
- Convolución: Aplica un conjunto de filtros convolucionales a las imágenes de entrada; cada filtro activa diferentes características de las imágenes.
- Unidad lineal rectificada (ReLU): Mantiene los valores positivos y establece los valores negativos en cero, lo que permite un entrenamiento más rápido y eficaz. También se lo conoce como activación, ya que solo las características activadas prosiguen a la siguiente capa.
- Agrupación: Simplifica la salida mediante reducción no lineal de la tasa de muestreo, lo que disminuye el número de parámetros que la red debe aprender.
Estas operaciones se repiten en decenas o cientos de capas; cada capa aprende a identificar diferentes características.
Pesos y sesgos compartidos
A diferencia de una red neuronal tradicional, una CNN tiene pesos y valores de sesgos compartidos, que son los mismos para todas las neuronas ocultas de una capa determinada.
Esto significa que todas las neuronas ocultas detectan las mismas características, tales como bordes o formas, en diferentes regiones de la imagen. Esto hace que la red sea tolerante a la traducción de objetos de una imagen. Por ejemplo, una red entrenada para reconocer automóviles podrá hacerlo independientemente de dónde aparezca el automóvil en la imagen.
Capas de clasificación
Después de aprender características en muchas capas, la arquitectura de una CNN pasa a la clasificación.
La penúltima capa está completamente conectada y genera un vector de K dimensiones, donde K es el número de clases que se pueden predecir, y contiene las probabilidades para cada clase de una imagen que se está clasificando.
La capa final de la arquitectura de la CNN utiliza una capa de clasificación para proporcionar la salida de clasificación final.
Captura de imágenes médicas: Las redes CNN pueden examinar miles de informes anatomopatológicos para detectar visualmente la presencia o ausencia de células cancerosas en las imágenes.
Procesamiento de audio: La detección de palabras clave se puede utilizar en dispositivos con micrófono para detectar cuándo se pronuncia una determinada palabra o frase, como "Oye Siri". Las redes CNN pueden aprender y detectar la palabra clave con precisión, al tiempo que hacen caso omiso de otras frases, independientemente del entorno.
Detección de objetos: La conducción autónoma recurre a las redes CNN para detectar señales y otros objetos con precisión, a fin de tomar decisiones en base a la salida resultante.
Generación de datos sintéticos: Utilizando redes generativas antagónicas (GAN), se pueden generar nuevas imágenes para su uso en aplicaciones de Deep Learning, tales como reconocimiento facial y conducción autónoma.
¿Cuándo se debe utilizar una CNN?
Considere utilizar una red CNN cuando tenga una gran cantidad de datos complejos, como datos de imágenes. También se pueden emplear con datos de señales o series temporales si se preprocesan para utilizarlos en la estructura de la red.
Vea estos ejemplos de uso de señales y redes CNN:
Uso de modelos previamente entrenados
Cuando los equipos de ingeniería y ciencias emplean redes CNN, prefieren usar un modelo previamente entrenado, que se utiliza para aprender e identificar características de un nuevo conjunto de datos.
Los modelos GoogLeNet, AlexNet e Inception sirven como punto de partida para explorar Deep Learning aprovechando arquitecturas demostradas, desarrolladas por personas expertas.
Nuevos modelos y ejemplos de Deep Learning
Consulte la lista de todos los modelos disponibles y explore nuevos modelos por categoría.
CNN con MATLAB
MATLAB® con Deep Learning Toolbox™ permite diseñar, entrenar y desplegar redes CNN.
Diseño y entrenamiento de redes
Con Deep Network Designer, puede importar modelos previamente entrenados o crear nuevos modelos desde cero.
También puede entrenar redes directamente en la app y supervisar el entrenamiento con gráficas de precisión, pérdida y métricas de validación.
Uso de modelos previamente entrenados para transferencia del aprendizaje
Ajustar una red previamente entrenada con transferencia del aprendizaje suele ser mucho más rápido y fácil que entrenar una red desde cero. Requiere la menor cantidad de datos y recursos de cálculo. La transferencia del aprendizaje utiliza el conocimiento sobre un tipo de problema para resolver problemas similares. Comience con una red previamente entrenada y utilícela para aprender una tarea nueva. Una ventaja de la transferencia del aprendizaje es que la red previamente entrenada ya ha aprendido un amplio conjunto de características. Por ejemplo, puede tomar una red entrenada con millones de imágenes y volver a entrenarla para que clasifique nuevos objetos utilizando solo unos cientos de imágenes.
Aceleración de hardware por GPU
Una red neuronal convolucional se entrena con cientos, miles o incluso millones de imágenes. Cuando se trabaja con grandes cantidades de datos y arquitecturas de red complejas, las GPU pueden reducir sustancialmente el tiempo de procesamiento necesario para entrenar un modelo.
MATLAB para Deep Learning
Obtenga información sobre el soporte de MATLAB para Deep Learning.
Tutoriales y ejemplos
Introducción a MATLAB para Machine Learning.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia-Pacífico
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)