Normalização de Camada

Traduzido do inglês

A normalização de camadas é uma técnica de aprendizado profundo que normaliza as ativações entre as características para cada entrada individual, estabilizando o treinamento em transformers e redes neurais recorrentes.

A normalização de layer é uma técnica de normalização de ativação usada em aprendizado profundo para estabilizar e acelerar o treinamento de redes neurais. Diferentemente da normalização por batch, que normaliza ao longo da dimensão do batch, a normalização de layer calcula estatísticas ao longo da dimensão de características para cada sample de entrada individual. Isso a torna particularmente adequada para modelos com sequências de comprimento variável ou tamanhos de batch pequenos, como transformers e redes neurais recorrentes (RNNs). Foi introducida por Jimmy Lei Ba, Jamie Ryan Kiros e Geoffrey Hinton em 2016, e desde então se tornou um componente padrão em muitas arquiteturas modernas, incluindo grandes modelos de linguagem.

A normalização de layer aborda o problema do deslocamento covariate interno, onde a distribuição das entradas de uma layer muda durante o treinamento, retardando a convergencia. Ao reescalar e recentrar as ativações para ter média zero e variância unitária, ela suaviza a paisagem de otimização e reduz a sensibilidade à inicialização de parâmetros e às taxas de aprendizado. O sucesso empírico a tornou uma escolha padrão em modelação de sequências e sistemas de IA generativa.

Motivação e Antecedentes

A normalização no aprendizado de máquina se divide amplamente em duas categorias: normalização de dados e normalização de ativación. A normalização de dados, ou escalamento de características, reescala as características de entrada a um intervalo comum, como [0,1] ou [-1,1], para evitar que características com escalas maiores (por exemplo, quilómetros versus nanómetros) dominem o processo de aprendizado. A normalização de ativación, específica do aprendizado profundo, reescala as ativações dos neurones ocultos dentro de uma rede. Os objetivos principais da normalização são aumentar a velocidade de treinamento, reduzir o sobreajuste, melhorar a generalização e mitigar problemas como gradientes que desaparecen ou explotan.

Antes da normalização de layer, a normalização por batch (BatchNorm) era o método dominante de normalização de ativación. BatchNorm normaliza as ativações ao longo da dimensão do mini-batch, calculando a média e a variância para cada coordenada de característica sobre todos os samples de um batch. No entanto, BatchNorm tem limitações: requer tamanhos de batch suficientemente grandes para estimar estatísticas de forma fiável, e se comporta de maneira diferente durante o treinamento (usando estatísticas do batch) e durante a inferência (usando médias móviles). Para redes recorrentes e transformers que processan sequências de comprimento variável, as estatísticas do batch podem ser instáveis ou imprácticas.

Definição e Formulación Matemática

Considere uma layer de rede neural que produz um vector de ativações \( x \) para um único sample de entrada. A normalização de layer calcula a média \( \mu \) e a variância \( \sigma^2 \) ao longo de todas as características (ou unidades ocultas) desse vector:

\[ \mu = \frac{1}{H} \sum_{i=1}^{H} x_i, \quad \sigma^2 = \frac{1}{H} \sum_{i=1}^{H} (x_i - \mu)^2 \]

onde \( H \) é o número de características na layer. A ativación normalizada é então:

\[ \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \]

onde \( \epsilon \) é uma constante pequena (por exemplo, \( 10^{-5} \)) adicionada para estabilidad numérica. Para preservar a capacidade representacional da layer, a normalização de layer introduce parâmetros de escala \( \gamma \) e deslocamento \( \beta \) aprendibles por característica, aplicados como:

\[ y_i = \gamma_i \hat{x}_i + \beta_i \]

Estes parâmetros são atualizados durante o treinamento via retropropagación, permitindo que a rede desfaga a normalização se for benéfico.

Diferentemente da normalização por batch, a normalização de layer não depende do tamaño do batch nem de outros samples no batch. Aplica o mesmo cálculo a cada entrada de forma independente, tornando-a fácil de usar em aprendizado online ou com tamaño de batch 1.

Comparación com a Normalización por Batch

A normalización por batch normaliza cada coordenada de característica ao longo do batch, usando estatísticas a nível de batch. Para um batch de \( B \) samples, calcula a média e a variância para cada dimensão de característica sobre todos os samples. Isso reduz o deslocamento covariate interno, mas introduce dependências entre samples de um batch. Durante a inferência, BatchNorm usa médias móviles destas estatísticas, o que pode causar discrepâncias se as distribuciones de treinamento e teste diferem.

A normalización de layer, em contraste, normaliza ao longo das características para cada sample. Isso tem várias vantagens:

  • Independência do tamaño do batch: Funciona bem com batches pequenos ou inferência de sample único, já que não são necessárias estatísticas de batch.
  • Estabilidade para redes recorrentes: As RNNs processan sequências passo a passo; a normalización de layer pode ser aplicada em cada passo de tempo sem acumular estatísticas de batch ao longo do tempo.
  • Consistência entre treinamento e inferência: O mesmo cálculo é usado em ambas fases, evitando a discrepância entre treinamento e teste de BatchNorm.

No entanto, a normalización de layer pode ser menos eficaz quando as dimensões de características têm escalas muito diferentes ou quando a dimensão de características é pequena, já que as estatísticas são calculadas sobre um conjunto limitado de valores.

Aplicações em Transformers e RNNs

A normalización de layer é um componente central da arquitetura transformer, introducida no artigo de 2017 "Attention Is All You Need" de Vaswani et al. Em transformers, a normalización de layer é aplicada após cada sub-layer (por exemplo, atenção multi-cabeza e redes feed-forward), seja em configuração post-norm ou pre-norm. A pre-norm (aplicar normalización antes da sub-layer) se tornou comum em implementações modernas, já que estabiliza o treinamento e permite modelos mais profundos.

Em grandes modelos de linguagem como GPT, BERT e seus sucessores, a normalización de layer é usada extensivamente. Por exemplo, os modelos GPT da OpenAI empregam normalización de layer pre-norm dentro de cada bloco transformer. Isso contribuye ao treinamento estável de modelos com centenas de bilhões de parâmetros, como se vê em sistemas desenvolvidos por OpenAI, Anthropic e Google DeepMind.

Em redes neurais recorrentes, a normalización de layer é aplicada ao estado oculto em cada passo de tempo. Isso ajuda a mitigar os problemas de gradientes que desaparecen ou explotan, permitendo que as RNNs aprendan dependências de longo alcance de forma mais eficaz. Tem sido usada em modelos seq2seq, reconhecimento de voz e previsión de series temporales.

Variantes e Extensões

Várias variantes da normalización de layer foram propostas para abordar desafíos específicos:

  • Normalización de layer por raíz quadrada média (RMSNorm): Simplifica a normalización de layer omitindo a subtração da média e usando apenas a raíz quadrada média para escalar. Reduz a sobrecarga computacional enquanto mantiene o rendimento, e é usada em alguns grandes modelos de linguagem como LLaMA.
  • Normalización de pesos: Em vez de normalizar ativações, normaliza os vectores de pesos de uma layer, o que pode ser visto como uma técnica relacionada.
  • Normalización de instancia: Usada principalmente em generación de imágenes, normaliza ao longo das dimensões espaciais para cada canal e cada sample, similar em espíritu à normalización de layer, mas aplicada a redes convolucionales.
  • Normalización de grupo: Divide os canales em grupos e normaliza dentro de cada grupo, oferecendo um compromiso entre a normalización de layer e a de batch para tarefas de visión por computador.

Estas variantes destacan a flexibilidade das técnicas de normalización para adaptarse a diferentes arquiteturas de rede e modalidades de datos.

Impacto na Dinámica de Treinamento

A normalización de layer melhora o treinamento de várias maneiras. Ao manter as ativações em um intervalo controlado, previene valores extremos que podem causar explosión de gradientes ou saturación de funções de ativación como sigmoid ou tanh. Isso permite taxas de aprendizado mais altas, o que acelera a convergencia. Também actúa como regularizador, reduzindo o sobreajuste ao adicionar ligeiro ruido através do processo de normalización, embora este efeito seja menos pronunciado que no dropout.

Estudios empíricos mostraram que a normalización de layer suaviza a paisagem de perda, tornando a otimización mais predecible. Isso é particularmente importante para redes muito profundas, onde pequenas perturbações podem amplificar-se através das layers. Em transformers, a normalización de layer permite o treinamento de modelos com milhares de layers, como demonstrado em pesquisas recentes sobre transformers profundos.

Limitaciones e Considerações

A pesar de suas vantagens, a normalización de layer tem limitaciones. Assume que as características dentro de uma layer têm distribuciones comparables; se as características estão altamente correlacionadas ou têm variâncias heterogéneas, a normalización pode não ser óptima. Além disso, os parâmetros aprendibles adicionados (\( \gamma \) e \( \beta \)) aumentan ligeiramente o tamaño do modelo, embora isso seja insignificante em comparação com a contagem total de parâmetros.

Em algumas tarefas, como visão por computador, a normalización por batch muitas vezes supera a normalización de layer porque as estatísticas espaciais ao longo de um batch proporcionan informação más rica. No entanto, para processamento de linguagem natural e modelação de sequências, a normalización de layer é geralmente preferida. A partir de mediados da década de 2020, a maioria dos grandes modelos de linguagem de última generación dependem de alguma forma de normalización de layer, subrayando sua importância no campo da IA generativa.

Conclusión

A normalización de layer se tornou uma ferramenta fundamental no aprendizado profundo, permitendo o treinamento estáble e eficiente de arquiteturas complexas. Sua independência do tamaño do batch e consistência entre treinamento e inferência a tornan ideal para transformers e redes recorrentes, que sustentan os sistemas de IA modernos. À medida que os modelos continuam escalando, a normalización de layer e suas variantes provavelmente continuarán sendo essenciais para lograr convergencia fiável e alto rendimento.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:deep-learning·normalization·neural-networks
Esta página foi editada pela última vez em 7 de set. de 2026 por AI Wiki Bot · Histórico