Importancia de la normalización de la respuesta local en CNN

41

Descubrí que Imagenet y otras CNN grandes utilizan capas de normalización de respuesta local. Sin embargo, no puedo encontrar tanta información sobre ellos. ¿Cuán importantes son y cuándo deben usarse?

De http://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :

"La capa de normalización de respuesta local realiza una especie de" inhibición lateral "al normalizar las regiones de entrada locales. En el modo ACROSS_CHANNELS, las regiones locales se extienden a través de canales cercanos, pero no tienen extensión espacial (es decir, tienen forma local_size x 1 x 1) En el modo WITHIN_CHANNEL, las regiones locales se extienden espacialmente, pero están en canales separados (es decir, tienen forma 1 x tamaño_ local x tamaño local). Cada valor de entrada se divide por (1+ (α / n) ∑ix2i) β, donde n es el tamaño de cada región local, y la suma se toma sobre la región centrada en ese valor (se agrega relleno cero cuando es necesario) ".

Editar:

Parece que este tipo de capas tienen un impacto mínimo y ya no se usan. Básicamente, su papel ha sido superado por otras técnicas de regularización (como la deserción y la normalización por lotes), mejores inicializaciones y métodos de capacitación. Vea mi respuesta a continuación para más detalles.

pir
fuente

Respuestas:

20

Parece que este tipo de capas tienen un impacto mínimo y ya no se usan. Básicamente, su papel ha sido superado por otras técnicas de regularización (como la deserción y la normalización por lotes), mejores inicializaciones y métodos de capacitación. Esto es lo que está escrito en las notas de clase para el Curso Stanford CS321n en ConvNets:

Capa de normalización

Se han propuesto muchos tipos de capas de normalización para su uso en arquitecturas ConvNet, a veces con la intención de implementar esquemas de inhibición observados en el cerebro biológico. Sin embargo, estas capas han caído recientemente en desgracia porque en la práctica se ha demostrado que su contribución es mínima, si es que hay alguna. Para varios tipos de normalizaciones, vea la discusión en la API de la biblioteca cuda-convnet de Alex Krizhevsky.

pir
fuente
20

De hecho, no parece haber una buena explicación en un solo lugar. Lo mejor es leer los artículos de donde viene:

El artículo original de AlexNet explica un poco en la Sección 3.3:

  • Krizhevsky, Sutskever e Hinton, Clasificación de ImageNet con redes neuronales convolucionales profundas, NIPS 2012. pdf

La forma exacta de hacerlo se propuso en (pero no hay mucha información adicional aquí):

  • Kevin Jarrett, Koray Kavukcuoglu, Marc'Aurelio Ranzato y Yann LeCun, ¿Cuál es la mejor arquitectura de etapas múltiples para el reconocimiento de objetos ?, ICCV 2009. pdf

Fue inspirado por la neurociencia computacional:

  • S. Lyu y E. Simoncelli. Representación de imagen no lineal usando normalización divisiva. CVPR 2008. pdf . Este documento profundiza en las matemáticas y está de acuerdo con la respuesta de seanv507.
  • [24] N. Pinto, DD Cox y JJ DiCarlo. ¿Por qué es difícil el reconocimiento de objetos vitales del mundo real? PLoS Computational Biology, 2008.
Jasper Uijlings
fuente
15

Aquí está mi respuesta sugerida, aunque no pretendo estar bien informado. Cuando se realiza el descenso de gradiente en un modelo lineal, la superficie de error es cuadrática, con la curvatura determinada por , donde es su entrada. Ahora, la superficie de error ideal para el descenso de gradiente tiene la misma curvatura en todas las direcciones (de lo contrario, el tamaño del escalón es demasiado pequeño en algunas direcciones y demasiado grande en otras). Normalizando sus entradas volviendo a escalar las entradas para que signifiquen cero, la varianza 1 ayuda y es rápida: ahora las direcciones a lo largo de cada dimensión tienen la misma curvatura, que a su vez limita la curvatura en otras direcciones.XXTX

La solución óptima sería la esfera / blanquear las entradas a cada neurona, sin embargo, esto es computacionalmente demasiado caro. LCN puede justificarse como un blanqueamiento aproximado basado en el supuesto de un alto grado de correlación entre los píxeles (o canales) vecinos. Por lo tanto, afirmaría que el beneficio es que la superficie de error es más benigna para SGD ... Una sola tasa de aprendizaje funciona bien a través de las dimensiones de entrada (de cada neurona)

seanv507
fuente
2
Normalización de lote: Acelerar el entrenamiento de redes profundas mediante la reducción del cambio covariable interno Sergey Ioffe, Christian Szegedy, arxiv.org/abs/1502.03167 realizan un reescalado (cuidadosamente diseñado) de las entradas de neuronas y logran aceleraciones sustanciales al poder usar mayores tasas de aprendizaje.
seanv507
Puede editar esta información en su respuesta usando el botón de edición debajo de su texto de respuesta.
Vuelve a instalar a Monica el
10

Con esta respuesta, me gustaría resumir las contribuciones de otros autores y proporcionar una explicación en un solo lugar de la técnica LRN (o normalización contrastante) para aquellos que solo desean conocer qué es y cómo funciona.

Motivación: ' Este tipo de normalización de respuesta (LRN) implementa una forma de inhibición lateral inspirada en el tipo que se encuentra en las neuronas reales, creando competencia para grandes actividades entre las salidas de neuronas calculadas usando diferentes núcleos. « AlexNet 3.3

En otras palabras, LRN permite disminuir las respuestas que son uniformemente grandes para el vecindario y hacer que la activación grande sea más pronunciada dentro de un vecindario, es decir, crear un mayor contraste en el mapa de activación. prateekvjoshi.com afirma que es particularmente útil con funciones de activación ilimitadas como RELU.

Fórmula original: para cada posición particular (x, y) y kernel i que corresponde a una única salida 'pixel' aplicamos un 'filtro', que incorpora información sobre las salidas de otros n kernels aplicados a la misma posición. Esta regularización se aplica antes de la función de activación. Esta regularización, de hecho, se basa en el orden de los núcleos que es, hasta donde sé, solo una desafortunada coincidencia.

LRN

En la práctica (ver Caffe ) se pueden usar 2 enfoques:

  1. WITHIN_CHANNEL. Normalizar sobre vecindad local de un solo canal (correspondiente a un solo filtro convolucional). En otras palabras, divida la respuesta de un solo canal de un solo píxel de acuerdo con los valores de salida de la misma neurona para los píxeles cercanos.
  2. ACROSS_CHANNELS. Para un solo píxel, normalice los valores de cada canal de acuerdo con los valores de todos los canales para el mismo píxel

Uso real LRN se usó con mayor frecuencia durante los días de los primeros conventos como LeNet-5. La implementación actual de GoogLeNet (Inception) en Caffe a menudo usa LRN en relación con las técnicas de agrupación, pero parece que se hace por el simple hecho de tenerlo. Ni Inception / GoogLeNet original ( aquí ) ni ninguna de las siguientes versiones mencionan LRN de ninguna manera. Además, la implementación de TensorFlow de las redes Inception (proporcionadas y actualizadas por el equipo de autores originales) no utiliza LRN a pesar de estar disponible.

Conclusión La aplicación de LRN junto con la capa de agrupación no dañaría el rendimiento de la red siempre que los valores de hiperparámetros sean razonables. A pesar de eso, no conozco ninguna justificación reciente para aplicar LRN / normalización de contraste en una red neuronal.

y.selivonchyk
fuente
También agregaría que LRN es una especie de "normalización competitiva", según la página 374 en Géron, Aurélien. Aprendizaje automático práctico con Scikit-Learn y TensorFlow: conceptos, herramientas y técnicas para construir sistemas inteligentes. "O'Reilly Media, Inc.", 2017 .. (Menciono eso porque Hinton solo lo llama "normalización competitiva" en la conferencia Redes convolucionales para el reconocimiento de objetos en su curso de curso.
Oren Milman
7

El tipo de capa de Normalización de respuesta local (LRN) resulta útil cuando se usan neuronas con activaciones ilimitadas (por ejemplo, neuronas lineales rectificadas), porque permite la detección de características de alta frecuencia con una gran respuesta neuronal, mientras que amortigua las respuestas que son uniformemente grandes en un barrio local Es un tipo de regularizador que fomenta la "competencia" para grandes actividades entre grupos cercanos de neuronas.

src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)

vivkul
fuente
0

La normalización de respuesta local (LRN) se realiza en píxeles para cada canal :i

xi=xi(k+(αjxj2))β

donde son constantes. Tenga en cuenta que obtiene la normalización de L2 si configura , , .k,α,βRκ=0α=1β=12

Sin embargo, existe una técnica mucho más nueva llamada "normalización por lotes" (ver artículo ) que funciona de manera bastante similar y sugiere que ya no se use LRN. La normalización por lotes también funciona en cuanto a píxeles:

y=xμσ2+ϵγ+β

donde es la media, es la varianza, es una pequeña constante, son parámetros aprendibles que permiten que la red elimine la normalización.μσ2ε>0γ,βR

Entonces la respuesta es: la normalización de la respuesta local ya no es importante, porque tenemos algo que funciona mejor y reemplazamos LRN: normalización por lotes.

Ver también

Martin Thoma
fuente
Creo que esto no es correcto. LRN se aplica en la salida del kernel, no en la entrada (aunque Alexnet usa la normalización de entrada, pero eso es por separado).
Shital Shah