Normalization
A normalização redimensiona características ou ativações para uma escala comum, evitando que uma faixa de valores domine. Abrange min-max, z-score, L2 e camadas de normalização.
A normalização consiste em reescalar valores numéricos para uma escala comum, evitando que uma característica domine o modelo apenas por causa de suas unidades. No pré-processamento de dados, geralmente significa transformar cada característica de entrada para um intervalo fixo, como [0, 1], ou para média zero e variância unitária antes do treinamento. Dentro de uma rede neural, camadas de normalização, como a normalização em lote, aplicam a mesma ideia às ativações intermediárias. Sem isso, uma característica medida em milhares, como a renda, pesa mais do que uma característica medida em unidades, como o tamanho da família, em cada cálculo de distância e etapa do gradiente.
Técnicas de normalização comuns#
- Escalonamento min-max: Mapeia cada característica para [0, 1] usando (x − min) / (max − min). Um valor extremo comprime todos os outros em uma faixa estreita; por isso, essa técnica é adequada para características com limites conhecidos e fixos, como valores de pixels de 8 bits divididos por 255.
- Padronização por escore z: Subtrai a média da característica e divide pelo desvio padrão, produzindo média 0 e desvio padrão 1. É a opção padrão usual para características sem limites fixos.
- Escalonamento robusto: Subtrai a mediana e divide pelo intervalo interquartil, de modo que alguns valores atípicos quase não alteram o escalonamento dos valores restantes.
- Escalonamento logarítmico: Aplica um logaritmo, geralmente log(1 + x), para comprimir características com cauda longa, como preços, populações ou número de visualizações, antes de outro escalonamento.
- Normalização por vetor unitário (L2): Divide o vetor de cada amostra por seu comprimento para que todos os vetores tenham norma 1. Aplicada a incorporações, transforma a similaridade do cosseno em um produto escalar simples. O Normalizer do scikit-learn realiza essa operação por amostra, o que surpreende quem espera que ele escale cada característica como
MinMaxScaler.
A técnica adequada depende do que está sendo escalonado e da distribuição de seus valores:
Por que a normalização é importante#
Métodos baseados em distância, como k-vizinhos mais próximos (k-NN), agrupamento k-means e máquinas de vetores de suporte com kernel RBF, comparam distâncias euclidianas brutas; por isso, a característica com maior amplitude determina quais pontos são considerados próximos. Modelos baseados em gradiente treinam mais rápido com entradas normalizadas, pois características em escalas muito diferentes deformam a superfície de perda em vales estreitos, nos quais a descida do gradiente precisa dar passos pequenos. Conjuntos de árvores, como florestas aleatórias, dividem os dados usando o limiar de uma característica por vez e produzem as mesmas divisões sob qualquer reescalonamento monótono. Escalonar o conjunto de dados Wine antes do k-NN mostra a dimensão do efeito:
from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 13 chemical features on very different scales, from hue (about 0.5-1.7) to proline (about 280-1,680)
X, y = load_wine(return_X_y=True)
# k-NN compares raw distances, so unscaled proline dominates every distance
for name, scaler in [("none", "passthrough"), ("min-max", MinMaxScaler()), ("z-score", StandardScaler())]:
# The pipeline fits the scaler on each training fold only, so no test statistics leak in
model = make_pipeline(scaler, KNeighborsClassifier())
accuracy = cross_val_score(model, X, y, cv=5).mean()
print(f"scaling {name:8s} 5-fold accuracy: {accuracy:.3f}")Sem escalonamento, o k-NN alcança 0,691 de acurácia, pois a prolina, cuja amplitude é de cerca de 1.400 unidades, pesa mais do que as outras 12 características em cada distância. O escalonamento min-max eleva a acurácia para 0,950, e a padronização por escore z, para 0,949. Ajustar o escalonador dentro do pipeline é importante: calcular o mínimo, o máximo, a média ou o desvio padrão no conjunto de dados completo antes da divisão transfere informações do conjunto de teste para o treinamento, uma forma de vazamento de dados.
Normalização em visão computacional#
As imagens são normalizadas por canal. Dividir os valores de pixels de 8 bits por 255 mapeia-os para [0, 1], e muitas arquiteturas-base de classificação subtraem então uma média por canal e dividem pelo desvio padrão: a ResNet-50 do torchvision pré-treinada no ImageNet espera média (0.485, 0.456, 0.406) e desvio padrão (0.229, 0.224, 0.225). Alimentar um modelo pré-treinado com entradas normalizadas de forma diferente de seus dados de treinamento altera todas as ativações e reduz a acurácia. O pré-processamento do Ultralytics YOLO divide os valores dos pixels por 255 e não aplica ajustes de média ou desvio padrão, durante o treinamento e a previsão, de modo que o YOLO26 sempre recebe entradas em [0, 1].
As imagens médicas precisam de regras específicas para cada modalidade. Os exames de tomografia computadorizada (CT) armazenam intensidades em unidades Hounsfield, uma escala física na qual o ar tem valor −1000 e a água tem valor 0; por isso, um único conjunto de estatísticas funciona em todos os exames: o nnU-Net, uma estrutura de segmentação amplamente utilizada, limita as intensidades de CT ao intervalo definido pelos percentis 0,5 e 99,5 dos valores dos voxels de primeiro plano de todos os casos de treinamento e, em seguida, converte essas intensidades em escores z usando a média e o desvio padrão de todo o conjunto de dados. As intensidades de ressonância magnética (MRI) não têm uma escala física fixa e variam entre scanners, por isso o nnU-Net calcula os escores z de cada exame de MRI individualmente.
Normalização vs. termos relacionados#
- Padronização: O nome usual para o escalonamento por escore z. Muitas fontes chamam tanto o escalonamento min-max quanto o escalonamento por escore z de "normalização", enquanto outras reservam o termo "normalização" para o escalonamento min-max.
- Aumento de dados: Altera o conteúdo ou a geometria da imagem, por exemplo, com inversões, recortes e mudanças de cor, para adicionar variedade; a normalização apenas altera a escala dos valores.
- Camadas de normalização: A normalização em lote padroniza cada canal usando estatísticas do minilote atual. A normalização de camada padroniza cada exemplo entre suas características, independentemente do tamanho do lote, e é usada em todo o Transformer. Essas camadas aplicam uma escala e um deslocamento aprendidos após a normalização.
- RMSNorm: Uma normalização de camada simplificada que não subtrai a média e divide apenas pela raiz quadrada da média dos quadrados. É a camada de normalização do Llama da Meta e de muitos outros modelos de linguagem grandes.










