Redes convolucionales y su importancia

1

La importancia del computer vision

2

¿Qué herramientas usaremos para redes neuronales convolucionales?

3

¿Qué son las redes convolucionales?

Mi primera red neuronal convolucional

4

Creando nuestra primera red convolucional

5

Entrenando nuestra primera red convolucional

Manejo de imágenes

6

Consejos para el manejo de imágenes

7

Manejo de imágenes con Python

Fundamentos de redes neuronales convolucionales

8

Kernel en redes neuronales

9

El kernel en acción

10

Padding y Strides

11

Capa de pooling

12

Arquitectura de redes convolucionales

Quiz: Fundamentos de redes neuronales convolucionales

Resolviendo un problema de clasificación

13

Clasificación con redes neuronales convolucionales

14

Creación de red convolucional para clasificación

15

Entrenamiento de un modelo de clasificación con redes convolucionales

Optimización de red neuronal convolucional

16

Data augmentation

17

Aplicando data augmentation

18

Callbacks: early stopping y checkpoints

19

Batch normalization

20

Optimización de modelo de clasificación

21

Entrenamiento de nuestro modelo de clasificación optimizado

Quiz: Optimización de red neuronal convolucional

Resolviendo una competencia de Kaggle

22

Clasificando entre perros y gatos

23

Entrenamiento del modelo de clasificación de perros y gatos

Resumen y siguientes pasos

24

Siguientes pasos con redes neuronales convolucionales

25

Comparte tu proyecto de clasificación con redes convolucionales y certifícate

No tienes acceso a esta clase

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

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
2 Hrs
56 Min
3 Seg

Capa de pooling

11/25
Recursos

Aportes 10

Preguntas 1

Ordenar por:

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

ESTE CURSO ESTA ASOMBROSO, ME COSTO AL INICIO, PERO ME ESTA ABRIENDO A GRANDES POSIBILIDADES.

Y QUE TAL UN MODELO QUE DETECTE LA POSIBILIDAD DE QUE UNA PERSONA ESTA NERVIOSA AL ENTRAR A UN SUPEMERCADOS, PODRIA TENER MAS PROBABILIDAD DE ROBAR UN ARTICULO, O POR EJEMPLO COMO ES LA REACCION SI AL ENTRAR VE UNA IMAGEN DE UNA AUTORIDAD, COMO SE MUESTRA EN SU ROSTRO. CLARO QU ESA IMAGEN SERIA UN TRIGGER A UNA EMOCION, Y ESA IMAGEN DEBE IRSE CAMBIANDO CON EL TIEMPO… PODER DETECTAR EMOCIONES CON IMAGENES.

RESUMEN

padding = ‘same’ aumenta linea alrededor para que posicion 1,1 puede ser procesada mas de 1 vez

Luego se aplica lo contrario con MaxPooling

  • Reduce en imagen la linea alrededor
  • Ademas que elimina el ruido
  • El mas comun es el parametro MAX

Capa de pooling

A medida que se avanza en la profundidad de la red van aumentando el número de imágenes generadas por los filtros y por lo tanto el número de img a procesar lo que ocasionara una sobrecarga de computación.

Para esto la capa de pooling nos servirá para disminuir el tamaño de las imágenes resultantes de la convolución gracias a un kernel (mas usados son: max[conserva el pixel mas alto de un grupo de pixeles] y avarage[saca el promedio de un grupo de pixeles]) que realizara una operación de agrupamiento. Gracias a esta operación se reduce el ruido mientras se conserva las características más importantes de la imagen.

En resumen, mientras avancemos en las capas de la CNN:

  1. Se ira aumentando el número de canales en la imagen (imágenes resultantes de convolución)

  2. Se ira disminuyendo el tamaño de las imágenes debido a la capa de pooling.

Estas 2 operaciones permitirán detectar resaltar objetos específicos en una imagen, sin tener problemas de computación.

La capa de pooling es una capa fundamental en las redes neuronales convolucionales que se utiliza para reducir la dimensionalidad de las características extraídas por las capas convolucionales, así como para hacer que la representación sea más invariante a las pequeñas traslaciones de la entrada. Hay varias formas de capas de pooling, pero la más común es la capa de Max Pooling.

image = tf.constant([[1, 2, 3, 4],
                     [5, 6, 7, 8],
                     [9, 10, 11, 12],
                     [13, 14, 15, 16]], dtype=tf.float32)

Resultado después de la capa de Max Pooling:
[[ 6.  8.]
 [14. 16.]]

Desde la convolución básica al Max Pooling es en plan que se hace el zoom out y bajando la resolución.

La capa de pooling también es llamada capa de agrupación.
Mira esto

\### Capa de Pooling en Redes Neuronales Convolucionales (CNN) Las capas de \*\*pooling\*\* son un componente fundamental en las \*\*redes neuronales convolucionales (CNN)\*\*. Su función principal es \*\*reducir las dimensiones espaciales\*\* (anchura y altura) de los mapas de características generados por las capas convolucionales, manteniendo las características más importantes. Al hacer esto, se reduce la cantidad de parámetros en la red, lo que ayuda a \*\*prevenir el sobreajuste\*\* y mejora la eficiencia computacional. \### Tipos de Pooling Existen dos tipos principales de capas de pooling: 1\. \*\*Max Pooling (Agrupación máxima):\*\* Selecciona el valor máximo de una ventana de entrada, destacando las características más importantes. 2\. \*\*Average Pooling (Agrupación promedio):\*\* Calcula el valor promedio de los valores dentro de la ventana, generalizando la información. \### Max Pooling vs Average Pooling: \- \*\*Max Pooling\*\* es más común en la práctica, ya que permite que la red se concentre en las características más prominentes. \- \*\*Average Pooling\*\* es útil cuando se quiere retener más información general, en lugar de solo los picos de activación. \### ¿Cómo funciona la capa de Pooling? En una capa de pooling, se aplica una ventana (normalmente de 2x2) sobre el mapa de características, y se desplaza por la imagen de acuerdo con el \*\*stride\*\* (normalmente stride=2). En el caso de \*\*max pooling\*\*, dentro de cada ventana se selecciona el valor máximo, reduciendo así el tamaño de la imagen de entrada a la mitad (si el stride es 2). \### Ejemplo de Max Pooling Supongamos que tienes un mapa de características de entrada de tamaño 4x4 y aplicas una operación de \*\*max pooling\*\* con una ventana de 2x2 y un stride de 2. Mapa de características de entrada (4x4): ``` \[\[1, 3, 2, 4], \[5, 6, 1, 2], \[8, 9, 4, 1], \[3, 7, 5, 6]] ``` Aplicando max pooling (tomamos el valor máximo en cada ventana 2x2): ``` \[\[6, 4], \[9, 6]] ``` \### Ejemplo en código con TensorFlow/Keras ```python import tensorflow as tf import numpy as np \# Creamos una imagen de ejemplo de 4x4 con un solo canal input\_image = np.array(\[\[\[\[1], \[3], \[2], \[4]], \[\[5], \[6], \[1], \[2]], \[\[8], \[9], \[4], \[1]], \[\[3], \[7], \[5], \[6]]]], dtype=np.float32) \# Definimos el tensor de entrada input\_tensor = tf.constant(input\_image) \# Aplicamos la capa de MaxPooling2D con una ventana de 2x2 y un stride de 2 max\_pool\_layer = tf.keras.layers.MaxPooling2D(pool\_size=(2, 2), strides=2) \# Aplicamos la capa de pooling a la entrada output = max\_pool\_layer(input\_tensor) \# Mostramos la salida print("Entrada:") print(input\_image.reshape(4, 4)) # Formateamos para visualizar mejor print("\nSalida después de MaxPooling2D:") print(output.numpy().reshape(2, 2)) # Salida tras aplicar max pooling ``` \### Salida del código: ``` Entrada: \[\[1. 3. 2. 4.] \[5. 6. 1. 2.] \[8. 9. 4. 1.] \[3. 7. 5. 6.]] Salida después de MaxPooling2D: \[\[6. 4.] \[9. 6.]] ``` \### Explicación: \- La entrada es un tensor de 4x4 con un canal. \- La operación de \*\*max pooling\*\* con una ventana de 2x2 y un stride de 2 selecciona el valor máximo en cada sub-matriz 2x2 de la imagen. \- El tamaño de la imagen de salida es reducido de 4x4 a 2x2, conservando las características más destacadas. \### Beneficios de la Capa de Pooling 1\. \*\*Reducción de dimensionalidad:\*\* Al reducir el tamaño de los mapas de características, la red es más eficiente y requiere menos memoria. 2\. \*\*Menor riesgo de sobreajuste:\*\* Con menos parámetros, hay menor posibilidad de que la red se ajuste excesivamente a los datos de entrenamiento. 3\. \*\*Retención de características importantes:\*\* La agrupación máxima, en particular, conserva las características más destacadas de cada región. \### Conclusión Las capas de pooling, especialmente el \*\*Max Pooling\*\*, son esenciales en las CNN para reducir el tamaño de los datos, preservar características importantes y mejorar la eficiencia computacional.
En las redes neuronales convolucionales una operación común es el Pooling, su objetivo es reducir las dimensiones espaciales (anchura y altura) de las características extraídas, es decir disminuir la complejidad, manteniendo al mismo tiempo la información más relevante. Esto ayuda a disminuir el número de parámetros y el costo computacional, además de controlar el sobreajuste. Los más comunes son el Máximo (**max pooling)** y el promedio (**average pooling)**.
Sinceramente, este curso me parece increíblemente didáctico, claro y conciso. ¡Increíble Curso!😀😀😀😀
Seria muy interesante ver hasta que punto es suficiente una capa de pooling, es decir reducir tanto que ya sea dificil tener diferencias notarias.