Saltar al contenido

Cuándo usar las redes neuronales MLP, CNN y RNN

18 de agosto de 2022

Última actualización el 15 de agosto de 2022

¿Qué red neuronal es apropiada para su problema de modelado predictivo?

Puede ser difícil para un principiante en el campo del aprendizaje profundo saber qué tipo de red usar. Hay tantos tipos de redes para elegir y nuevos métodos que se publican y discuten todos los días.

Para empeorar las cosas, la mayoría de las redes neuronales son lo suficientemente flexibles como para funcionar (hacer una predicción) incluso cuando se usan con el tipo de datos o el problema de predicción incorrectos.

En esta publicación, descubrirá el uso sugerido para las tres clases principales de redes neuronales artificiales.

Después de leer este post, sabrás:

  • En qué tipos de redes neuronales centrarse cuando se trabaja en un problema de modelado predictivo.
  • Cuándo usar, no usar y posiblemente intentar usar un MLP, CNN y RNN en un proyecto.
  • Considerar el uso de modelos híbridos y tener una idea clara de los objetivos de su proyecto antes de seleccionar un modelo.

Pon en marcha tu proyecto con mi nuevo libro Aprendizaje profundo con Python, que incluye tutoriales paso a paso y el Código fuente de Python archivos para todos los ejemplos.

Empecemos.

Cuándo usar las redes neuronales MLP, CNN y RNN
Foto de PRODAVID S. FERRY III,DDS, algunos derechos reservados.

Visión general

Esta publicación se divide en cinco secciones; están:

  1. ¿En qué redes neuronales enfocarse?
  2. ¿Cuándo usar perceptrones multicapa?
  3. ¿Cuándo usar redes neuronales convolucionales?
  4. ¿Cuándo usar redes neuronales recurrentes?
  5. Modelos de red híbrida

¿En qué redes neuronales enfocarse?

El aprendizaje profundo es la aplicación de redes neuronales artificiales utilizando hardware moderno.

Permite el desarrollo, entrenamiento y uso de redes neuronales que son mucho más grandes (más capas) de lo que se creía posible anteriormente.

Hay miles de tipos de redes neuronales específicas propuestas por los investigadores como modificaciones o ajustes a los modelos existentes. A veces enfoques totalmente nuevos.

Como profesional, recomiendo esperar hasta que surja un modelo de aplicación general. Es difícil descifrar la señal de lo que funciona bien en general del ruido de la gran cantidad de publicaciones publicadas diariamente o semanalmente.

Hay tres clases de redes neuronales artificiales en las que te recomiendo que te concentres en general. Están:

  • Perceptrones multicapa (MLP)
  • Redes neuronales convolucionales (CNN)
  • Redes neuronales recurrentes (RNN)

Estas tres clases de redes brindan mucha flexibilidad y han demostrado durante décadas que son útiles y confiables en una amplia gama de problemas. También tienen muchos subtipos para ayudarlos a especializarse en las peculiaridades de diferentes marcos de problemas de predicción y diferentes conjuntos de datos.

Ahora que sabemos en qué redes enfocarnos, veamos cuándo podemos usar cada clase de red neuronal.

¿Cuándo usar perceptrones multicapa?

Los perceptrones multicapa, o MLP para abreviar, son el tipo clásico de red neuronal.

Se componen de una o más capas de neuronas. Los datos se alimentan a la capa de entrada, puede haber una o más capas ocultas que proporcionan niveles de abstracción, y las predicciones se realizan en la capa de salida, también llamada capa visible.

Recomendado:  Cómo optimizar manualmente los hiperparámetros del modelo de aprendizaje automático

Para obtener más detalles sobre el MLP, consulte la publicación:

Modelo de una Red Simple

Modelo de una Red Simple

Los MLP son adecuados para problemas de predicción de clasificación en los que a las entradas se les asigna una clase o etiqueta.

También son adecuados para problemas de predicción de regresión en los que se predice una cantidad de valor real dado un conjunto de entradas. Los datos a menudo se proporcionan en formato tabular, como los que vería en un archivo CSV o en una hoja de cálculo.

Use MLP para:

  • Conjuntos de datos tabulares
  • Problemas de predicción de clasificación
  • Problemas de predicción de regresión

Son muy flexibles y se pueden usar generalmente para aprender un mapeo de entradas a salidas.

Esta flexibilidad les permite aplicarse a otros tipos de datos. Por ejemplo, los píxeles de una imagen pueden reducirse a una larga fila de datos y alimentarse en un MLP. Las palabras de un documento también se pueden reducir a una larga fila de datos y alimentar a un MLP. Incluso las observaciones de retraso para un problema de predicción de series de tiempo pueden reducirse a una larga fila de datos y alimentarse a un MLP.

Como tal, si sus datos están en una forma distinta a un conjunto de datos tabulares, como una imagen, un documento o una serie temporal, recomendaría al menos probar un MLP en su problema. Los resultados se pueden usar como un punto de referencia de comparación para confirmar que otros modelos que pueden parecer más adecuados agregan valor.

Pruebe MLP en:

  • Datos de imagen
  • Datos de texto
  • Datos de series de tiempo
  • Otros tipos de datos

¿Cuándo usar redes neuronales convolucionales?

Las redes neuronales convolucionales, o CNN, se diseñaron para asignar datos de imágenes a una variable de salida.

Han demostrado ser tan efectivos que son el método de referencia para cualquier tipo de problema de predicción que involucre datos de imagen como entrada.

Para obtener más detalles sobre las CNN, consulte la publicación:

El beneficio de usar CNN es su capacidad para desarrollar una representación interna de una imagen bidimensional. Esto permite que el modelo aprenda la posición y la escala en estructuras variantes en los datos, lo cual es importante cuando se trabaja con imágenes.

Utilice las CNN para:

  • Datos de imagen
  • Problemas de predicción de clasificación
  • Problemas de predicción de regresión

En términos más generales, las CNN funcionan bien con datos que tienen una relación espacial.

La entrada CNN es tradicionalmente bidimensional, un campo o matriz, pero también se puede cambiar para que sea unidimensional, lo que le permite desarrollar una representación interna de una secuencia unidimensional.

Recomendado:  En el cifrado homomórfico en el que (debemos) confiar

Esto permite que la CNN se use de manera más general en otros tipos de datos que tienen una relación espacial. Por ejemplo, existe una relación de orden entre las palabras en un documento de texto. Hay una relación ordenada en los pasos de tiempo de una serie de tiempo.

Aunque no se desarrollaron específicamente para datos que no sean imágenes, las CNN logran resultados de última generación en problemas como la clasificación de documentos utilizada en el análisis de sentimientos y problemas relacionados.

Pruebe las CNN en:

  • datos de texto
  • Datos de series de tiempo
  • Datos de entrada de secuencia

¿Cuándo usar redes neuronales recurrentes?

Las redes neuronales recurrentes, o RNN, se diseñaron para trabajar con problemas de predicción de secuencias.

Los problemas de predicción de secuencias vienen en muchas formas y se describen mejor por los tipos de entradas y salidas admitidas.

Algunos ejemplos de problemas de predicción de secuencias incluyen:

  • Uno a muchos: una observación como entrada asignada a una secuencia con varios pasos como salida.
  • muchos a uno: una secuencia de varios pasos como entrada asignada a la predicción de clase o cantidad.
  • Muchos a muchos: una secuencia de varios pasos como entrada asignada a una secuencia con varios pasos como salida.

El problema de muchos a muchos a menudo se conoce como secuencia a secuencia, o seq2seq para abreviar.

Para obtener más detalles sobre los tipos de problemas de predicción de secuencias, consulte la publicación:

Tradicionalmente, las redes neuronales recurrentes eran difíciles de entrenar.

La red Long Short-Term Memory, o LSTM, es quizás la RNN más exitosa porque supera los problemas de entrenar una red recurrente y, a su vez, se ha utilizado en una amplia gama de aplicaciones.

Para obtener más detalles sobre los RNN, consulte la publicación:

Los RNN en general y los LSTM en particular han obtenido el mayor éxito cuando se trabaja con secuencias de palabras y párrafos, lo que generalmente se denomina procesamiento de lenguaje natural.

Esto incluye tanto secuencias de texto como secuencias de lenguaje hablado representadas como una serie temporal. También se utilizan como modelos generativos que requieren una secuencia de salida, no solo con texto, sino también en aplicaciones como la generación de escritura a mano.

Utilice RNN para:

  • datos de texto
  • datos de voz
  • Problemas de predicción de clasificación
  • Problemas de predicción de regresión
  • modelos generativos

Las redes neuronales recurrentes no son apropiadas para conjuntos de datos tabulares, como vería en un archivo CSV o en una hoja de cálculo. Tampoco son apropiados para la entrada de datos de imagen.

No use RNN para:

Los RNN y LSTM se han probado en problemas de pronóstico de series de tiempo, pero los resultados han sido malos, por decir lo menos. Los métodos de autorregresión, incluso los métodos lineales, a menudo funcionan mucho mejor. Los LSTM a menudo son superados por MLP simples aplicados en los mismos datos.

Recomendado:  Algoritmo de Perceptrón para la clasificación en Python

Para obtener más información sobre este tema, consulte la publicación:

Sin embargo, sigue siendo un área activa.

Quizás pruebe RNN en:

Modelos de red híbrida

Un modelo CNN o RNN rara vez se usa solo.

Estos tipos de redes se utilizan como capas en un modelo más amplio que también tiene una o más capas MLP. Técnicamente, se trata de un tipo híbrido de arquitectura de red neuronal.

Quizás el trabajo más interesante proviene de la combinación de diferentes tipos de redes en modelos híbridos.

Por ejemplo, considere un modelo que usa una pila de capas con una CNN en la entrada, LSTM en el medio y MLP en la salida. Un modelo como este puede leer una secuencia de entradas de imágenes, como un video, y generar una predicción. Esto se denomina arquitectura CNN LSTM.

Los tipos de red también se pueden apilar en arquitecturas específicas para desbloquear nuevas capacidades, como los modelos de reconocimiento de imágenes reutilizables que usan redes CNN y MLP muy profundas que se pueden agregar a un nuevo modelo LSTM y usar para subtitular fotos. Además, las redes LSTM de codificador-decodificador que se pueden usar para tener secuencias de entrada y salida de diferentes longitudes.

Es importante pensar claramente en lo que usted y sus partes interesadas requieren del proyecto primero, luego busque una arquitectura de red (o desarrolle una) que satisfaga las necesidades específicas de su proyecto.

Para obtener un buen marco que lo ayude a pensar en sus datos y problemas de predicción, consulte la publicación:

Otras lecturas

Esta sección proporciona más recursos sobre el tema si desea profundizar más.

Resumen

En esta publicación, descubrió el uso sugerido para las tres clases principales de redes neuronales artificiales.

Específicamente, aprendiste:

  • En qué tipos de redes neuronales centrarse cuando se trabaja en un problema de modelado predictivo.
  • Cuándo usar, no usar y posiblemente intentar usar un MLP, CNN y RNN en un proyecto.
  • Considerar el uso de modelos híbridos y tener una idea clara de los objetivos de su proyecto antes de seleccionar un modelo.

¿Tiene usted alguna pregunta?
Haga sus preguntas en los comentarios a continuación y haré todo lo posible para responder.

¡Desarrolle proyectos de aprendizaje profundo con Python!

Aprendizaje profundo con Python

¿Qué pasaría si pudieras desarrollar una red en minutos?

…con solo unas pocas líneas de Python

Descubre cómo en mi nuevo Ebook:
Aprendizaje profundo con Python

Cubre proyectos de punta a punta sobre temas como:
Perceptrones multicapa, Redes convolucionales y Redes neuronales recurrentesy más…

Finalmente lleve el aprendizaje profundo a
Tus propios proyectos

Sáltate los académicos. Solo Resultados.

Ver lo que hay dentro