Importância de dados com média zero e desvio padrão unitário

Importância de dados com média zero e desvio padrão unitárioIntro1. Conceitos Fundamentais(a) Média Zero (μ = 0)O que significa?Impacto na rede neural(b) Desvio Padrão Unitário (σ = 1)O que significa?Impacto na rede neural2. Importância3. Exemplo Gráfico em Python(a) Dados Originais (Não Normalizados)(b) Dados Normalizados (StandardScaler)(c) Exemplo mais completo, com Histograma dos dados4. Efeito no Treinamento de Redes NeuraisGradiente Descendente: 5. Quando NÃO Usar StandardScaler?Referências


Intro

A normalização de dados é crucial para o treinamento eficiente de redes neurais, então é bastante comum tentar forçar uma média = 0 e desvio padrão = 1 no conjunto de treino.

1. Conceitos Fundamentais

(a) Média Zero (μ = 0)

O que significa?

Os dados são centralizados em torno de 0.
Equação:

Impacto na rede neural

Evita viés inicial nos pesos, facilitando a convergência.

(b) Desvio Padrão Unitário (σ = 1)

O que significa?

Os dados são escalonados para terem variabilidade uniforme.
Equação:

Impacto na rede neural

Garante que todas as features contribuam igualmente ao aprendizado.

2. Importância

Problema sem NormalizaçãoSolução com Normalização
Convergência lenta ou instável.Gradiente descendente mais eficiente.
Features com escalas diferentes dominam o modelo
(ex: idade [0-100] vs. salário [0-1.000.000]).
Todas as features têm igual importância.
Ativações (ex: sigmoid, tanh) saturam em valores extremos.Dados ficam na faixa ideal para ativações.

3. Exemplo Gráfico em Python

Vamos comparar dados antes e depois da normalização:

(a) Dados Originais (Não Normalizados)

(b) Dados Normalizados (StandardScaler)

Obs.: O arquivo test_dados_normalizados.py concentra estes 2 "snaps" de código.

Saídas:

Dados não normalizadosDados normalizados
dados_nao_normalizados.pngdados_normalizados.png
Note como a Feature 1 domina completamente a escala!Agora as features estão na mesma escala!

(c) Exemplo mais completo, com Histograma dos dados

O códio abaixo trabalha com valores aleatórios gerados em faixas diferntes para as 2 fetures e ainda gera um histograma ilustrando a distribuição dos valores em cada caso:

Código test_dados_normalizados2.py:

Saída

test_dados_normalizados2a.png

test_dados_normalizados2b.png

Note no último gráfico, como a função como o StandardScaler centralizou os dados na origem.

4. Efeito no Treinamento de Redes Neurais

Gradiente Descendente:

Exemplo com Keras:

5. Quando NÃO Usar StandardScaler?

Referências


Fernando Passold, em 30/03/2025