¿Batch Normalization tiene sentido para una función de activación ReLU?

10

La normalización por lotes se describe en este documento como una normalización de la entrada a una función de activación con variables de escala y desplazamientoγ y β. Este artículo describe principalmente el uso de la función de activación sigmoidea, que tiene sentido. Sin embargo, me parece que alimentar una entrada de la distribución normalizada producida por la normalización por lotes en una función de activación ReLU demax(0,x) es arriesgado si βno aprende a cambiar la mayoría de las entradas más allá de 0, de modo que ReLU no está perdiendo información de entrada. Es decir, si la entrada a ReLU se normalizara de manera estándar, perderíamos mucha de nuestra información por debajo de 0. ¿Hay alguna garantía o inicialización deβeso garantizará que no perdamos esta información? ¿Me estoy perdiendo algo sobre cómo funciona la operación de BN y ReLU?

bnorm
fuente

Respuestas:

3

Ese es un problema conocido con las funciones de activación de ReLU. A menudo se le llama un "ReLU moribundo". Dada una entrada sobre el límite cero, la unidad ahora casi siempre está cerrada. Una ReLU cerrada no puede actualizar sus parámetros de entrada, una ReLU muerta permanece muerta.

La solución es usar variantes de ReLU para la función de activación, como Leaky ReLU, Noisy ReLUs o ELUs .

Brian Spiering
fuente
1

Yo diría que BN va después de ReLU y no antes, en general, debe colocarse entre 2 capas para normalizar el PDF de salida de capa antes de convertirse en otra entrada de capa

El procesamiento de la capa convolutiva se compone de un procesamiento Lin (Conv Operator) + NonLin (por ejemplo, ReLU) (como el procesamiento de neuronas artificiales) y un nonlin como ReLU produce un PDF de salida que no es negativo como resultado del filtrado, así que antes pasarlo como la siguiente entrada de capa, el BN puede ayudar a renormalizarlo

Nicola Bernini
fuente