Descobri que o Imagenet e outras CNNs grandes usam camadas de normalização de resposta local. No entanto, não consigo encontrar tanta informação sobre eles. Quão importantes são e quando devem ser usados?
Em http://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :
"A camada de normalização de resposta local executa um tipo de" inibição lateral "normalizando sobre as regiões de entrada locais. No modo ACROSS_CHANNELS, as regiões locais se estendem por canais próximos, mas não têm extensão espacial (ou seja, têm formato local_size x 1 x 1) No modo WITHIN_CHANNEL, as regiões locais se estendem espacialmente, mas estão em canais separados (ou seja, têm a forma 1 x tamanho_ local x tamanho_s local). Cada valor de entrada é dividido por (1+ (α / n) ∑ix2i) β, onde n é o tamanho de cada região local e a soma é calculada sobre a região centralizada nesse valor (o preenchimento zero é adicionado quando necessário). "
Editar:
Parece que esses tipos de camadas têm um impacto mínimo e não são mais usados. Basicamente, seu papel foi superado por outras técnicas de regularização (como abandono e normalização de lotes), melhores inicializações e métodos de treinamento. Veja minha resposta abaixo para mais detalhes.
Com esta resposta, gostaria de resumir as contribuições de outros autores e fornecer uma explicação única da técnica LRN (ou normalização contrastiva) para aqueles que querem apenas conhecer o que é e como funciona.
Motivação: ' Esse tipo de normalização de resposta (LRN) implementa uma forma de inibição lateral inspirada no tipo encontrado em neurônios reais, criando competição por grandes atividades entre as saídas de neurônios computadas usando diferentes núcleos. « AlexNet 3.3
Em outras palavras, o LRN permite diminuir respostas uniformemente grandes para a vizinhança e tornar a ativação grande mais pronunciada dentro de uma vizinhança, ou seja, criar maior contraste no mapa de ativação. prateekvjoshi.com afirma que é particularmente útil com funções de ativação ilimitadas como RELU.
Fórmula original: para cada posição específica (x, y) e kernel i que corresponde a uma única saída de 'pixel', aplicamos um 'filtro', que incorpora informações sobre as saídas de outros n núcleos aplicados na mesma posição. Essa regularização é aplicada antes da função de ativação. Essa regularização, de fato, depende da ordem dos núcleos, que é, que eu saiba, apenas uma infeliz coincidência.
Na prática (veja Caffe ), 2 abordagens podem ser usadas:
Uso real O LRN foi usado com mais frequência nos primeiros dias de convets como o LeNet-5. A implementação atual do GoogLeNet (Inception) no Caffe geralmente usa o LRN em conexão com as técnicas de pool, mas parece ser feita apenas para tê-lo. Nem o Inception / GoogLeNet original ( aqui ) nem nenhuma das versões a seguir mencionam o LRN de forma alguma. Além disso, a implementação do TensorFlow das redes de Iniciação (fornecidas e atualizadas pela equipe dos autores originais) não usa o LRN, apesar de estar disponível.
Conclusão A aplicação do LRN junto com a camada de pool não prejudicaria o desempenho da rede, desde que os valores de hiperparâmetros sejam razoáveis. Apesar disso, não conheço nenhuma justificativa recente para aplicar a normalização LRN / contraste em uma rede neural.
fonte
O tipo de camada Normalização de Resposta Local (LRN) se mostra útil ao usar neurônios com ativações ilimitadas (por exemplo, neurônios lineares retificados), porque permite a detecção de recursos de alta frequência com uma grande resposta neuronal, enquanto amortece respostas uniformemente grandes em um bairro local. É um tipo de regularizador que incentiva a "competição" por grandes atividades entre grupos próximos de neurônios.
src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)
fonte
No entanto, existe uma técnica muito mais nova chamada "normalização em lote" (consulte o documento ), que funciona de maneira bastante semelhante e sugere não usar mais o LRN. A normalização de lote também funciona em termos de pixel:
Portanto, a resposta é: a normalização da resposta local não é mais importante, porque temos algo que funciona melhor e substitui o LRN: normalização em lote.
Veja também
fonte