Autoencoder de CNN - disminución o aumento de los filtros?

0

Pregunta

En un Autoencoder basado en la CNN, va a aumentar o disminuir el número de filtros entre capas ? Como podemos comprimir la información, yo estaba pensando en disminución.

Ejemplo del codificador de la parte donde el número de filtros es la disminución en cada nueva capa, de 16 a 8 a 4.

x = Conv2D(filters = 16, kernel_size = 3, activation='relu', padding='same', name='encoder_1a')(inputs)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_1b')(x)

x = Conv2D(filters = 8, kernel_size = 3, activation='relu', padding='same', name='encoder_2a')(x)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_2b')(x)

x = Conv2D(filters = 4, kernel_size = 3, activation='relu', padding='same', name='encoder_3a')(x)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_3b')(x)
autoencoder conv-neural-network keras
2021-11-22 04:01:18
1

Mejor respuesta

0

No es siempre el caso de que los tamaños de filtro se reduce o aumenta con el aumento del número de capas en el codificador. En la mayoría de los ejemplos de codificador he visto de convolucional autoencoder arquitecturas de la altura y la anchura se reduce a través strided de convolución o agrupación, y la profundidad de la capa es mayor (tamaños de filtro son el aumento de la), mantuvo similar a la última o varía con cada nueva capa en el codificador. Pero también hay ejemplos en los que los canales de salida o tamaños de filtro se redujo con más capas.

Generalmente autoencoder codifica entrada en latente de representación/vector o incrustación que tiene menor dimensión que los de entrada, que minimiza el error de reconstrucción. Por lo tanto, de lo anterior puede ser utilizado para la creación de undercomplete autoencoder variando el tamaño del núcleo, el número de capas, añadiendo una capa extra al final de encoder con una cierta dimensión etc.

Filtro de aumentar el ejemplo

En la imagen de abajo a medida que más se añaden capas en el codificador de la filtro de aumento de tamaño. Pero como la entrada 28*28*1 = 784 dimensión y características de la representación plana 3*3*128 = 1152 es más otra capa se añade antes de la capa final que es la incrustación de la capa. Reduce la función de la dimensión con el número predefinido de salidas en la red totalmente conectada. Incluso la última densa y completamente conectado capa puede ser reemplazado por la variación del número de capas o el tamaño de kernel para tener una salida (1, 1, NUM_FILTERS).

enter image description here

Filtro de disminuir ejemplo

Un ejemplo fácil de filtros de la disminución en el codificador como el número de capas de aumento puede ser encontrado en keras convolucional autoencoder ejemplo, como su código.

import keras
from keras import layers

input_img = keras.Input(shape=(28, 28, 1))

x = layers.Conv2D(16, (3, 3), activation='relu', padding='same')(input_img)
x = layers.MaxPooling2D((2, 2), padding='same')(x)
x = layers.Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = layers.MaxPooling2D((2, 2), padding='same')(x)
x = layers.Conv2D(8, (3, 3), activation='relu', padding='same')(x)
encoded = layers.MaxPooling2D((2, 2), padding='same')(x)

Referencias

2021-11-22 06:57:52

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................