Arquitectura básica de CNN: explicación de 5 capas de red neuronal convolucional [EE. UU.]
Publicado: 2023-04-16Una CNN (red neuronal convolucional) es un tipo de red neuronal de aprendizaje profundo que utiliza una combinación de capas convolucionales y de submuestreo para aprender características de grandes conjuntos de datos. Se utiliza comúnmente para tareas de clasificación y reconocimiento de imágenes. Las capas convolucionales aplican filtros a los datos de entrada y las capas de submuestreo reducen el tamaño de los datos de entrada. La arquitectura de red neuronal convolucional tiene como objetivo aprender características de los datos que se pueden usar para clasificar o detectar objetos en la entrada. A continuación se explican las 5 capas de CNN .
Inscríbase en el curso de aprendizaje automático de las mejores universidades del mundo. Obtenga programas Master, Executive PGP o Advanced Certificate para acelerar su carrera.
Tabla de contenido
5 capas de una red neuronal convolucional
1. Capa convolucional:
Esta capa realiza la operación de convolución en los datos de entrada, que extrae varias características de los datos.
Las capas convolucionales en una arquitectura modelo CNN son uno de los componentes más vitales de las capas CNN . Estas capas son responsables de extraer características de los datos de entrada y formar la base para un mayor procesamiento y aprendizaje.
Una capa convolucional consta de un conjunto de filtros (también conocidos como núcleos) aplicados a los datos de entrada en forma de ventana deslizante. Cada filtro extrae un conjunto específico de características de los datos de entrada en función de los pesos asociados con él.
El número de filtros utilizados en la capa convolucional es uno de los hiperparámetros clave en la arquitectura. Se determina en función del tipo de datos que se procesan, así como de la precisión deseada del modelo. En general, más filtros darán como resultado más características extraídas de los datos de entrada, lo que permitirá que las arquitecturas de red más complejas comprendan mejor los datos.
La operación de convolución consiste en multiplicar cada filtro con los datos dentro de la ventana deslizante y sumar los resultados. Esta operación se repite para todos los filtros, lo que da como resultado múltiples mapas de características para una sola capa convolucional. Estos mapas de características se utilizan luego como entrada para las siguientes capas, lo que permite que la red aprenda características más complejas a partir de los datos.
Las capas convolucionales son la base de las arquitecturas de aprendizaje profundo y se utilizan en diversas aplicaciones, como el reconocimiento de imágenes, el procesamiento del lenguaje natural y el reconocimiento de voz. Al extraer las características más críticas de los datos de entrada, las capas convolucionales permiten que la red aprenda patrones más complejos y haga mejores predicciones.
2. Capa de agrupación:
Esta capa realiza una operación de reducción de resolución en los mapas de características, lo que reduce la cantidad de cómputo requerido y también ayuda a reducir el sobreajuste.
La capa de agrupación es un componente vital de la arquitectura de CNN . Por lo general, se usa para reducir el tamaño del volumen de entrada mientras se extrae información significativa de los datos. Las capas de agrupación generalmente se usan en las últimas etapas de una CNN, lo que permite que la red se centre en características más abstractas de una imagen u otro tipo de entrada. La capa de agrupación funciona deslizando una ventana sobre el volumen de entrada y calculando una estadística de resumen para los valores dentro de la ventana.
Las estadísticas comunes incluyen tomar el máximo, el promedio o la suma de los valores dentro de la ventana. Esto reduce el tamaño del volumen de entrada y conserva información importante sobre los datos.
La capa de agrupación también se suele utilizar para introducir la invariancia espacial, lo que significa que la red producirá la misma salida independientemente de la ubicación de la entrada dentro de la imagen. Esto permite que la red herede características más generales sobre la imagen en lugar de simplemente memorizar su ubicación exacta.
3. Capa de activación:
Esta capa agrega no linealidad al modelo al aplicar una función de activación no lineal como ReLU o tanh.
Una capa de activación en una CNN es una capa que sirve como una transformación no lineal en la salida de la capa convolucional. Es un componente principal de la red, lo que le permite aprender relaciones complejas entre los datos de entrada y salida.
La capa de activación se puede considerar como una función que toma la salida de la capa convolucional y la asigna a un conjunto diferente de valores. Esto permite que la red aprenda patrones más complejos en los datos y los generalice mejor.
Las funciones de activación comunes utilizadas en las CNN incluyen ReLu (Unidad lineal rectificada), sigmoid y tanh. Cada función de activación tiene un propósito diferente y se puede utilizar en diferentes escenarios.
ReLu es la función de activación más utilizada en la mayoría de las redes convolucionales. Es una transformación no lineal que genera 0 para todos los valores negativos y el mismo valor que la entrada para todos los valores positivos. Esto permite que la red absorba patrones más complejos en los datos.
Sigmoid es otra función de activación de uso común, que genera valores entre 0 y 1 para cualquier entrada dada. Esto ayuda a la red a comprender las relaciones complejas entre los datos de entrada y salida, pero es más costoso computacionalmente que ReLu.
Tanh es la función de activación menos utilizada, que genera valores entre -1 y 1 para cualquier entrada dada.
La capa de activación es un componente esencial de la CNN, ya que evita la linealidad y mejora la no linealidad en la salida. Elegir la función de activación correcta para la red es esencial, ya que cada función de activación tiene un propósito diferente y se puede usar en diferentes escenarios. La selección de una función de activación adecuada puede conducir a un mejor rendimiento de la estructura CNN .
4. Capa totalmente conectada:
Esta capa conecta cada neurona de una capa con cada neurona de la capa siguiente, lo que da como resultado una red totalmente conectada.
Una capa completamente conectada en una CNN es una capa de neuronas conectadas a cada neurona en la capa anterior de la red. Esto contrasta con las capas convolucionales, donde las neuronas solo están conectadas a un subconjunto de neuronas en la capa anterior en función de un patrón específico.
Al conectar cada neurona de una capa con cada neurona de la capa siguiente, la capa completamente conectada permite que la información de la capa anterior se comparta en toda la red, lo que brinda la oportunidad de una comprensión más completa de los datos.
Las capas completamente conectadas en CNN se utilizan normalmente hacia el final de una arquitectura de modelo CNN , después de las capas convolucionales y las capas de agrupación, ya que ayudan a identificar patrones y correlaciones que las capas convolucionales pueden no haber reconocido.
Además, las capas totalmente conectadas se utilizan para generar un límite de decisión no lineal que se puede utilizar para la clasificación. En conclusión, las capas totalmente conectadas son una parte integral de cualquier CNN y brindan una poderosa herramienta para identificar patrones y correlaciones en los datos.
5. Capa de salida:
Esta es la capa final de la red, que produce las etiquetas o valores de salida.
La capa de salida de una CNN es la capa final de la red y es responsable de producir la salida. Es la capa que toma las características extraídas de las capas anteriores y las combina de una manera que le permite producir el resultado deseado.
Una capa completamente conectada se usa normalmente cuando la salida es un valor único, como un problema de clasificación o regresión. Una sola capa de neuronas generalmente se usa cuando el resultado es un vector, como una distribución de probabilidad.
Se utiliza una función de activación softmax cuando el resultado es una distribución de probabilidad, como una distribución de probabilidad sobre clases. La capa de salida de una CNN también es responsable de realizar los cálculos necesarios para obtener la salida deseada. Esto incluye completar las transformaciones lineales o no lineales necesarias de las entradas para recibir la salida requerida.
Finalmente, la capa de salida de una CNN también se puede utilizar para realizar técnicas de regularización, como abandono o normalización por lotes, para mejorar el rendimiento de la red.
Conclusión
La arquitectura CNN es una poderosa herramienta para tareas de procesamiento de imágenes y videos. Es una combinación de capas convolucionales, capas de agrupación y capas totalmente conectadas. Permite extraer características de imágenes, videos y otras fuentes de datos y puede usarse para diversas tareas, como el reconocimiento de objetos, la clasificación de imágenes y el reconocimiento facial. En general, este tipo de arquitectura es muy eficaz cuando se aplica a funciones y conjuntos de datos adecuados.
Adquiera un conjunto de habilidades competentes en ML y DL con upGrad
Con el Programa de Certificado Avanzado en Aprendizaje Automático y Aprendizaje Profundo de upGrad ofrecido por IIIT-B, puede adquirir competencia en Aprendizaje Automático y Aprendizaje Profundo. El programa cubre los fundamentos de ML y DL, incluidos temas como el aprendizaje supervisado y no supervisado, la regresión lineal y logística, las redes neuronales convolucionales, el aprendizaje por refuerzo y el procesamiento del lenguaje natural. También aprenderá a crear e implementar modelos ML y DL en Python y TensorFlow y obtendrá experiencia práctica trabajando en proyectos del mundo real.
Este curso también incluye beneficios como:
- Tutoría y orientación de expertos de la industria.
- Asistencia de colocación para ayudarlo a encontrar el trabajo adecuado
- Un certificado avanzado de IIIT Bangalore
También puede consultar nuestroscursos gratuitosofrecidos por upGrad en administración, ciencia de datos, aprendizaje automático, marketing digital y tecnología.Todos estos cursos tienen recursos de aprendizaje de primer nivel, conferencias semanales en vivo, asignaciones de la industria y un certificado de finalización del curso, ¡todo sin costo!
¿Cuáles son las bibliotecas en Python que se pueden usar para una CNN?
Las bibliotecas en Python que se pueden usar para una CNN incluyen TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV y SciPy. Estas bibliotecas se pueden usar para obtener módulos preconstruidos para crear aplicaciones e implementar fácilmente algoritmos CNN.
¿Cuántas dimensiones hay en las capas CNN?
Las redes neuronales convolucionales contienen neuronas dispuestas en 3 dimensiones: ancho, alto y profundidad. Esta estructura tridimensional de neuronas está presente dentro de la capa de convolución, que funciona a través del proceso informático con la entrada dada para entregar la salida resultante.
¿Puedo desarrollar una CNN en R?
Sí, las CNN se pueden desarrollar con Python y R. Con R proporcionando bibliotecas excepcionalmente detalladas, crear una red neuronal de convolución con R es bastante fácil.