Artigos · arXiv 1502.03167
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Resumo em três linhas
- 🎯 O treinamento de redes profundas é desacelerado pelo internal covariate shift — a mudança contínua nas distribuições de entrada das camadas causada por atualizações de parâmetros em camadas anteriores.
- 🔧 Introduz o Batch Normalization (BN), uma camada arquitetural que padroniza as ativações do mini-batch para média zero e variância unitária, seguida por uma escala e deslocamento afim aprendidos (γ e β).
- 📈 Iguala a acurácia de validação de 72,2% de uma baseline Inception em 14 vezes menos passos e atinge 4,82% de erro top-5 nos dados de teste do ImageNet com um ensemble.
Resumo
O treinamento de Redes Neurais Profundas é dificultado pelo fato de que a distribuição das entradas de cada camada muda durante o treinamento, à medida que os parâmetros das camadas anteriores se alteram. Isso retarda o treinamento ao exigir taxas de aprendizado menores e uma inicialização cuidadosa dos parâmetros, além de tornar notoriamente difícil o treinamento de modelos com não linearidades saturantes. Chamamos esse fenômeno de internal covariate shift e abordamos o problema normalizando as entradas das camadas. Nosso método obtém sua força ao tornar a normalização parte da arquitetura do modelo e ao realizar a normalização para cada mini-batch de treinamento. O Batch Normalization nos permite usar taxas de aprendizado muito mais altas e ser menos cautelosos quanto à inicialização. Ele também atua como um regularizador, eliminando, em alguns casos, a necessidade de Dropout. Aplicado a um modelo de classificação de imagens de última geração, o Batch Normalization alcança a mesma acurácia com 14 vezes menos passos de treinamento e supera o modelo original por uma margem significativa. Usando um ensemble de redes com batch normalization, melhoramos o melhor resultado publicado na classificação do ImageNet: alcançando 4,9% de erro top-5 de validação (e 4,8% de erro de teste), superando a acurácia de avaliadores humanos.
Resumo original (inglês)
Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities. We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout. Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin. Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.
Guia de leitura
Problema e motivação
Durante a otimização de redes profundas com SGD, as alterações nos parâmetros das camadas anteriores alteram a distribuição das entradas para as camadas subsequentes. Os autores denominam esse fenômeno como Internal Covariate Shift.
O internal covariate shift cria dois desafios principais:
- As sub-redes precisam se adaptar continuamente a distribuições de ativação em constante mudança.
- As ativações derivam facilmente para os regimes de saturação de não linearidades (como funções sigmoide), causando o desaparecimento de gradientes e exigindo taxas de aprendizado pequenas e inicialização meticulosa de parâmetros.
Embora o branqueamento (decorrelação e padronização) das entradas das camadas em todo o conjunto de dados pudesse estabilizar as distribuições, computar matrizes de covariância completas e suas raízes quadradas inversas a cada atualização de parâmetros é computacionalmente proibitivo e pode fazer com que os gradientes explodam se a normalização não estiver integrada à retropropagação (backpropagation).
Ideias-chave
- Camada de Normalização Diferenciável: Em vez de padronizar as ativações fora da otimização, a normalização é integrada diretamente à arquitetura do modelo, garantindo que o backpropagation considere as dependências entre as ativações das camadas e as estatísticas do mini-batch.
- Normalização por Dimensão: Em vez de um branqueamento conjunto completo, cada dimensão escalar de feature é normalizada independentemente para média zero e variância unitária.
- Restauração da Capacidade Representacional: Para garantir que a normalização não destrua a capacidade expressiva de uma camada (como forçar uma sigmoide a um comportamento puramente linear), parâmetros aprendíveis (escala) e (deslocamento) são introduzidos para permitir que a camada recupere a transformação identidade, se necessário.
- Inferência Determinística: Durante o treinamento, as estatísticas são calculadas sobre cada mini-batch . No momento do teste, estatísticas populacionais fixas (computadas por meio de médias móveis ou ao longo dos lotes de treinamento) substituem as estatísticas do mini-batch, garantindo uma inferência determinística para amostras individuais.
- Invariância à Escala dos Parâmetros: Transformações de escala dos pesos das camadas satisfazem , o que significa que pesos maiores levam a gradientes efetivos menores, prevenindo a explosão de gradientes.
Método (com as equações principais)
Para um mini-batch correspondente a uma única dimensão de ativação:
- Calcule a média do mini-batch:
- Calcule a variância do mini-batch:
- Normalize as ativações (com a constante de estabilidade ):
- Aplique a escala e o deslocamento usando os parâmetros aprendíveis e :
Aplicação às Camadas
- Posicionamento: Aplicado imediatamente antes das não linearidades: . O viés original da camada é omitido porque a subtração da média o cancela (seu papel é assumido por ).
- Camadas Convolucionais: Para preservar a propriedade de equivariância por translação, a normalização é aplicada por mapa de características (feature map), e não por ativação espacial. Para tamanho de lote e resolução espacial , o tamanho efetivo do mini-batch torna-se , com um único par de compartilhado em cada mapa de características.
Transformação na Inferência
No momento do teste, a transformação torna-se uma operação linear estática usando as estatísticas populacionais e :
Resultados (com os números mais importantes)
- MNIST com Sigmoides: Redes equipadas com Batch Normalization mantiveram distribuições de ativação estáveis ao longo do treinamento, acelerando a convergência e atingindo maior acurácia de teste em comparação com redes não normalizadas.
- Velocidade de Treinamento no ImageNet (Rede Única):
- O Inception não normalizado alcançou 72,2% de acurácia de validação após passos.
- O Inception de baseline com Batch Normalization alcançou 72,2% em passos.
- Com uma taxa de aprendizado 5x maior (BN-x5), alcançou 72,2% em passos — uma redução de 14 vezes nos passos de treinamento necessários, atingindo um pico final de 73,0%.
- Com uma taxa de aprendizado 30x maior (BN-x30), o modelo atingiu acurácia máxima de 74,8% após passos.
- Não Linearidades Saturantes: Enquanto o Inception não normalizado com ativações sigmoide falhou no treinamento (permanecendo perto de 0,1% de acurácia aleatória), o BN-x5-Sigmoid alcançou 69,8% de acurácia top-1.
- SOTA no ImageNet com Ensemble: Um ensemble de 6 redes com batch normalization alcançou um erro top-5 de validação de 4,9% e um erro de teste de 4,82% no servidor de testes do ILSVRC, superando as baselines de avaliadores humanos.
Limitações e questões em aberto
- Dependência do Tamanho do Batch: Como a normalização se baseia em estatísticas amostrais do mini-batch, tamanhos de mini-batch muito pequenos podem degradar a qualidade das estimativas de variância e média.
- Redes Recorrentes: O artigo testa modelos feedforward e convolucionais, identificando redes neurais recorrentes (RNNs) como uma questão aberta não testada, onde o internal covariate shift também pode ser crítico.
- Fundamentos Teóricos: Os autores conjecturam que o Batch Normalization faz com que os jacobianos das camadas tenham valores singulares próximos de 1, mas observaram que a verificação teórica precisa do comportamento do gradiente permanece em aberto para análises futuras.
Termos-chave
- Internal Covariate Shift
- A mudança na distribuição das ativações internas da rede durante o treinamento causada por atualizações de parâmetros em camadas precedentes.
- Batch Normalization
- Um mecanismo que padroniza as entradas da camada no mini-batch para média zero e variância unitária antes de escaloná-las e deslocá-las com parâmetros aprendidos.
- Scale and Shift Parameters (γ and β)
- Parâmetros aprendíveis por ativação que podem restaurar a capacidade expressiva da rede, incluindo a capacidade de representar a transformação identidade.
- Whitening
- Uma transformação de entradas para produzir média zero, variância unitária e dimensões de características mutuamente descorrelacionadas.
- Batch Normalizing Transform
- O algoritmo diferenciável exato que calcula a média e a variância do mini-batch, normaliza as entradas e aplica escala e deslocamento afins aprendidos.
- Population Statistics
- A média esperada agregada e a variância não enviesada rastreadas ao longo dos mini-batches de treinamento para fixar os parâmetros de normalização para inferência determinística.
- Feature Map Normalization
- Aplicação da normalização conjuntamente sobre elementos do mini-batch e localizações espaciais para que todas as ativações dentro de um mapa de características convolucional compartilhem estatísticas e parâmetros afins.
Perguntas
Onde o Batch Normalization é aplicado em relação às ativações e aos vieses?
Ele é aplicado imediatamente antes da não linearidade (). O parâmetro de viés da transformação linear precedente é omitido porque a subtração da média o cancela, restando a desempenhar o papel de viés.
Como o Batch Normalization se comporta de maneira diferente durante o treinamento em comparação com a inferência?
Durante o treinamento, a média e a variância são calculadas diretamente sobre o mini-batch atual para padronizar as ativações. Durante a inferência, essas estatísticas são substituídas por estatísticas populacionais fixas (médias móveis não enviesadas ao longo dos lotes de treinamento), convertendo a camada em uma transformação linear estática.
Por que o Batch Normalization permite taxas de aprendizado mais altas?
Normalizar as ativações impede que pequenas mudanças nos parâmetros escalem para regimes saturantes ou gradientes explosivos. Além disso, o gradiente retropropagado através de uma camada é invariante à escala em relação aos pesos: pesos maiores geram gradientes proporcionais menores, evitando instabilidade.
O Batch Normalization pode substituir o Dropout?
Sim, em muitas configurações. Como a ativação normalizada de uma amostra individual depende dos outros exemplos aleatórios presentes no mini-batch, ele introduz um ruído estocástico que serve como um regularizador eficaz, permitindo que o Dropout seja reduzido ou removido.
A explicação desta página foi escrita por IA a partir do artigo e pode conter erros. Consulte o artigo para os detalhes.