tutorial redes neuronales neuronal libro imagenes explicacion convolucionales convolucional cnn clasificador machine-learning computer-vision deep-learning conv-neural-network batch-normalization

machine learning - redes - Normalización por lotes en red neuronal convolucional



redes neuronales convolucionales pdf (2)

Soy novato en redes neuronales convolucionales y solo tengo idea sobre los mapas de características y cómo se realiza la convolución en las imágenes para extraer características. Me gustaría saber algunos detalles sobre la aplicación de la normalización de lotes en CNN.

Leí este documento https://arxiv.org/pdf/1502.03167v3.pdf y pude entender el algoritmo BN aplicado en un dato, pero al final mencionaron que se requiere una ligera modificación cuando se aplica a CNN:

Para las capas convolucionales, también queremos que la normalización obedezca a la propiedad convolucional, de modo que diferentes elementos del mismo mapa de características, en diferentes ubicaciones, se normalicen de la misma manera. Para lograr esto, normalizamos conjuntamente todas las activaciones en un mini lote, en todas las ubicaciones. En alg. 1, dejamos que B sea el conjunto de todos los valores en un mapa de características a través de los elementos de un mini lote y ubicaciones espaciales, por lo que para un mini lote de tamaño my mapas de características de tamaño p × q, usamos el efecto - tive mini-lote de tamaño m ′ = | B | = m · pq. Aprendemos un par de parámetros γ (k) y β (k) por mapa de características, en lugar de por activación. Alg. 2 se modifica de manera similar, de modo que durante la inferencia la transformación BN aplica la misma transformación lineal a cada activación en un mapa de características dado.

Estoy totalmente confundido cuando dicen "para que diferentes elementos del mismo mapa de características, en diferentes ubicaciones, se normalicen de la misma manera"

Sé lo que significan los mapas de características y los diferentes elementos son los pesos en cada mapa de características. Pero no pude entender qué significa ubicación o ubicación espacial.

No pude entender la oración siguiente "En Alg. 1, dejamos que B sea el conjunto de todos los valores en un mapa de características a través de los elementos de un mini lote y ubicaciones espaciales"

Me alegraría que alguien frío elaborara y me explicara en términos mucho más simples


Comencemos con los términos. Recuerde que la salida de la capa convolucional es un tensor de 4 rangos [B, H, W, C] , donde B es el tamaño del lote, (H, W) es el tamaño del mapa de características , C es el número de canales. Un índice (x, y) donde 0 <= x < H y 0 <= y < W es una ubicación espacial .

Batchnorm habitual

Ahora, así es como se aplica el batchnorm de la manera habitual (en pseudocódigo):

# t is the incoming tensor of shape [B, H, W, C] # mean and stddev are computed along 0 axis and have shape [H, W, C] mean = mean(t, axis=0) stddev = stddev(t, axis=0) for i in 0..B-1: out[i,:,:,:] = norm(t[i,:,:,:], mean, stddev)

Básicamente, calcula las medias H*W*C las desviaciones estándar H*W*C entre B elementos B Puede notar que diferentes elementos en diferentes ubicaciones espaciales tienen su propia media y varianza y solo reúnen valores B

Batchnorm en capa conv

De esta manera es totalmente posible. Pero la capa convolucional tiene una propiedad especial: los pesos de filtro se comparten en la imagen de entrada (puede leerlo en detalle en esta publicación ). Es por eso que es razonable normalizar la salida de la misma manera, para que cada valor de salida tome la media y la varianza de B*H*W valores B*H*W , en diferentes ubicaciones.

Así es como se ve el código en este caso (nuevamente pseudocódigo):

# t is still the incoming tensor of shape [B, H, W, C] # but mean and stddev are computed along (0, 1, 2) axes and have just [C] shape mean = mean(t, axis=(0, 1, 2)) stddev = stddev(t, axis=(0, 1, 2)) for i in 0..B-1, x in 0..H-1, y in 0..W-1: out[i,x,y,:] = norm(t[i,x,y,:], mean, stddev)

En total, solo hay medias C y desviaciones estándar y cada una de ellas se calcula sobre valores B*H*W Eso es lo que quieren decir cuando dicen "mini-lote efectivo": la diferencia entre los dos está solo en la selección del eje (o equivalentemente "selección de mini-lote").


Estoy solo un 70% seguro de lo que digo, así que si no tiene sentido, edítelo o menciónelo antes de votar.

Acerca de la location o spatial location : significan la posición de los píxeles en una imagen o mapa de características. Un mapa de características es comparable a una versión escasa modificada de la imagen donde se representan los conceptos.

Aproximadamente so that different elements of the same feature map, at different locations, are normalized in the same way : algunos algoritmos de normalización son locales, por lo que dependen de su entorno cercano (ubicación) y no de las cosas muy alejadas en la imagen. Probablemente significan que cada píxel, independientemente de su ubicación, se trata como el elemento de un conjunto, independientemente de su entorno especial directo.

Sobre In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations : obtienen una lista plana de todos los valores de cada ejemplo de entrenamiento en el minibatch, y esta lista combina cosas su ubicación está en el mapa de características.