No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Arquitectura de redes convolucionales

12/25
Recursos

Aportes 10

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola, faltó agregar esto,lo cual es útil para el siguiente Quiz y en general ayuda mucho a comprender las CNN.

Para calcular las dimensiones de la red luego de aplicar la convolución se usa la siguiente formula:

Por ejemplo para una imagen con medidas iniciales de 28x28x1 que tiene 1 filtro de 3x3 , un padding de “same” , stride 1 y 16
canales de salida se tiene lo siguiente:

n eje x= (28+2(1) -3)/1 +1 =28

n eje y= (28+2(1) -3)/1 +1 =28

Siendo las dimensiones de salida 28x28x16

Website para graficar redes neuronales
https://alexlenail.me/NN-SVG/index.html

Alguien más se dio cuenta de que en el segundo 0:07 el profe desliza su codo la tarjeta con su nombre?

Para calcular la salida de una capa en redes convolucionales. Se debe realizar el siguiente cálculo.

out = (n + 2p -f )/s +1

donde:
n es la cantidad de pixeles en la dimensión que se calcular (largo o ancho)

p: número de padding
f : tamaño del kernel o filtro
s: número de stride utilizado.

Pueden revisar con más detalle en la siguiente página web
aquí

Arquitectura de redes convolucionales

  • Se tiene múltiples imágenes de entradas y estás van a pasar a través de una red de convolución el cual va a extraer características como: bordes, texturas, etc.

  • Al principio estas capas son superficiales pero al adentrarse a la profundidad de la red van a ser características mucho más complejas aprovechando el aprendizaje profundo (Deep Learning).

  • Al principio estas capas son superficiales pero al adentrarse a la profundidad de la red van a ser características mucho más complejas aprovechando el aprendizaje profundo (Deep Learning).

  • Suelen ir entrelazadas a una capa de Max-Pooling el cual reduce la complejidad acortando el largo y ancho de las imágenes

  • Generando una imagen mucho más pequeña pero mucho más profunda en su contexto.

  • Después se le aplica una capa llamada “flatten” la cual lleva al arreglo o Tensor resultante a una única dimensión.

  • Teniendo ya una única dimensión, paso a llevar a cabo una clasificación apilando capas densas.

La convolución: aplica filtros a la imagen de entrada “input” sacando características al deslizarse el kernel por toda la imagen y estas puedan ser alimentadas en las capas posteriores. Por ejemplo: si tienes 4 kernel o filtros, lo que hará es aumentan la profundidad de la imagen y puede reducir el ancho y largo de la imagen siempre y cuando no se le haya aplicado “padding”.

Cada paso de la convolución lo que hace es agregar profundidad al input

Por el contrario, cada capa de “Max-Pooling” lo que hará es reducir considerablemente el ancho y el largo del input apilando capas de Max-pooling.

Si se aplica tanto convolución como Max-Pooling a tu modelo, lo que hará es hacer más profundo el input con características mucho más interesantes, detalladas y específicas. Como también, reduce la imagen en su ancho y largo para que haciéndola mucho más fácil de trabajarla.

Cuando ya se obtiene un arreglo un pequeño y profundo, se usa una capa llamada “flatten”. Esta lo que hace es aplanar la matriz llevando el arreglo a una única dimensión haciendo más fácil llevar a cabo una clasificación (regresiones, binaria o múltiples).

1. Capa de Convolución

La capa de convolución es el bloque básico de una CNN. Consiste en un conjunto de filtros (kernels) que se deslizan sobre la imagen de entrada para realizar operaciones de convolución. Cada filtro detecta características específicas en la imagen, como bordes, texturas o patrones.

2. Función de Activación

Después de aplicar la convolución, se aplica una función de activación no lineal, como ReLU (Rectified Linear Unit), para introducir no linealidad en la red y permitir que la red aprenda funciones más complejas.

3. Capa de Pooling

La capa de pooling se utiliza para reducir la dimensionalidad de la representación y hacer que la red sea más invariante a pequeñas traslaciones de la entrada. La operación típica de pooling es el max pooling, que selecciona el valor máximo en cada ventana de pooling.

4. Capa Totalmente Conectada

Después de varias capas de convolución y pooling, la salida se aplana y se pasa a una o varias capas totalmente conectadas, similar a las capas en una red neuronal tradicional. Estas capas finales combinan las características extraídas para realizar la clasificación o regresión final.

5. Regularización

Para evitar el sobreajuste y mejorar la generalización del modelo, se pueden aplicar técnicas de regularización, como dropout o regularización L2, en las capas totalmente conectadas.

6. Optimización

Durante el entrenamiento, se utiliza un algoritmo de optimización, como el descenso de gradiente estocástico (SGD) o Adam, para ajustar los pesos de la red y minimizar una función de pérdida, que mide la discrepancia entre las predicciones del modelo y las etiquetas verdaderas.

7. Arquitecturas Pre-Entrenadas:

Además de diseñar CNNs desde cero, también es común utilizar arquitecturas pre-entrenadas, como VGG, ResNet o Inception, que han sido entrenadas en grandes conjuntos de datos como ImageNet y luego ajustadas a tareas específicas con transferencia de aprendizaje.

8. Evaluación y Predicción:

Una vez que el modelo ha sido entrenado, se evalúa en un conjunto de datos de prueba y se utiliza para realizar predicciones en nuevas instancias de datos.

Esto es a lo que yo llamo, “CNN for dummies” 😅😂

Magistral explicación profe, hoy por fin acabo de entender cómo funciona una CNN👍

Simplemente brillante! He entendido algo que en mis clases no lo captaba.

number of input features . Nin number output features . Nout convolution kernel size . K