Glossário

Normalização de lotes

Aumenta o desempenho da aprendizagem profunda com a normalização de lotes! Aprende como esta técnica melhora a velocidade de treino, a estabilidade e a precisão dos modelos de IA.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A normalização em lote é uma técnica usada no treinamento de redes neurais profundas (DNNs) para estabilizar o processo de aprendizado e reduzir significativamente o número de épocas de treinamento necessárias. Introduzida por Sergey Ioffe e Christian Szegedy em seu artigo de 2015,"Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift", aborda o problema em que a distribuição de entradas para camadas profundas na rede muda durante o treinamento, retardando a convergência. Ao normalizar as entradas para cada camada, a Normalização de lote ajuda a manter distribuições mais estáveis, levando a um treinamento mais rápido e confiável.

Como funciona a normalização de lotes

Durante o treinamento, a Normalização de lote padroniza as entradas de uma camada para cada mini-lote. Isso significa ajustar os dados para que tenham uma média de zero e um desvio padrão de um. Especificamente, para cada caraterística no minilote, calcula a média e a variância e usa-as para normalizar a caraterística. No entanto, a simples normalização pode restringir o poder de representação da camada. Para neutralizar isso, a Normalização de lote introduz dois parâmetros que podem ser aprendidos para cada caraterística: um parâmetro de escala (gama) e um parâmetro de deslocamento (beta). Esses parâmetros permitem que a rede aprenda a escala e a média ideais das entradas normalizadas, permitindo que a rede decida se e quanta normalização é benéfica. Durante a inferência, a Normalização de lote usa estatísticas agregadas (como médias móveis de média e variância) coletadas durante o treinamento, garantindo resultados determinísticos.

Vantagens da normalização de lotes

A aplicação da Normalização em lote oferece várias vantagens importantes para o treinamento de modelos de aprendizado profundo:

  • Treino mais rápido: Permite a utilização de taxas de aprendizagem mais elevadas, acelerando significativamente o processo de convergência durante o treino do modelo.
  • Estabiliza a aprendizagem: Ao reduzir o deslocamento interno das covariáveis (a mudança na distribuição das entradas da camada), torna o processo de aprendizagem mais estável e previsível. Isso é especialmente útil em redes muito profundas.
  • Efeito de regularização: A normalização de lotes acrescenta um ligeiro efeito de regularização, que por vezes pode reduzir a necessidade de outras técnicas de regularização como o Dropout. O ruído introduzido pelas estatísticas de mini-lotes funciona como um regularizador.
  • Reduz a sensibilidade à inicialização: As redes com Normalização em lote geralmente são menos sensíveis aos pesos iniciais, facilitando o processo de inicialização.

Aplicações e exemplos

A normalização de lotes é amplamente utilizada, particularmente em tarefas de visão computacional que envolvem redes neurais convolucionais (CNNs).

  1. Classificação de imagens: Arquitecturas como a ResNet, que atingem uma precisão de ponta em parâmetros de referência como a ImageNet, dependem fortemente da normalização em lote após as camadas convolucionais para permitir o treino de redes muito profundas. Os modelos Ultralytics suportam tarefas de classificação de imagens em que a BN contribui para um desempenho robusto.
  2. Deteção de objectos: Modelos como o Ultralytics YOLO incorpora a Normalização em lote nas suas estruturas de espinha dorsal e pescoço. Isto ajuda a estabilizar o treino e melhora a capacidade do modelo para detetar objectos com precisão e rapidez, crucial para aplicações como veículos autónomos e vigilância em tempo real.

Considerações e alternativas

Embora altamente eficaz, o desempenho da Normalização de lotes pode depender do tamanho do lote; tamanhos de lote muito pequenos podem levar a estimativas imprecisas das estatísticas do lote. Seu comportamento também difere entre as fases de treinamento e inferência, exigindo um tratamento cuidadoso das estatísticas em execução. Alternativas como a normalização de camadas, a normalização de instâncias e a normalização de grupos resolvem algumas dessas limitações e são usadas em diferentes contextos, particularmente em redes neurais recorrentes (RNNs) ou quando o tamanho dos lotes é pequeno. As implementações podem ser encontradas em frameworks populares como PyTorch e TensorFlow.

Em geral, a normalização em lote continua a ser uma técnica fundamental e amplamente adoptada que teve um impacto significativo na dinâmica de formação e no desempenho dos modelos modernos de aprendizagem profunda.

Lê tudo