Zubnet AIAprenderWiki › Inicialização de Pesos
Treinamento

Inicialização de Pesos

Também conhecido como: Xavier Init, Kaiming Init, He Init
Como os pesos da rede neural são definidos antes do treinamento começar. Inicialização ruim pode fazer o treinamento falhar antes de começar (ativações desaparecendo ou explodindo). Boa inicialização garante que ativações e gradientes mantenham magnitudes razoáveis entre camadas. Inicialização Xavier (para tanh/sigmoid) e inicialização Kaiming/He (para ReLU) são os padrões, cada uma calibrada para a função de ativação.

Por que isso importa

Inicialização parece um detalhe menor mas é crítica para treinar redes profundas. Uma rede com pesos iniciais aleatórios (muito grandes) produz ativações explodindo. Uma com pesos muito pequenos produz ativações desaparecendo. Inicialização adequada coloca a rede em uma "zona ideal" onde sinais fluem sem explodir ou desaparecer — um pré-requisito para o gradient descent funcionar.

Em profundidade

O princípio central: inicialize pesos para que a variância das ativações seja aproximadamente constante entre camadas. Se cada camada amplifica o sinal (variância cresce), ativações explodem. Se cada camada o diminui (variância encolhe), ativações desaparecem. Inicialização Xavier define pesos com variância 2/(fan_in + fan_out). Inicialização Kaiming define variância 2/fan_in, contabilizando o fato de que ReLU zera metade dos valores.

Em Transformers

Transformers modernos frequentemente usam inicialização escalada: pesos de projeção de saída em camadas de atenção e FFN são inicializados com desvio padrão escalado por 1/√(2×num_layers). Isso previne o fluxo residual de crescer demais conforme contribuições de muitas camadas se acumulam. GPT-2 e muitos modelos subsequentes usam essa abordagem de "init escalado". Algumas arquiteturas (como muP/maximal update parameterization) levam isso mais longe com regras de escalonamento matematicamente derivadas.

Pesos Pré-Treinados

Para a maioria dos propósitos práticos, inicialização do zero é rara — você começa de pesos pré-treinados e faz fine-tuning. Mas a inicialização ainda importa para os novos componentes: adaptadores LoRA, novas cabeças de classificação ou embeddings de vocabulário estendidos. Inicialização com zero para a matriz B do LoRA (para que o adaptador comece como identidade) e inicialização adequada para novos embeddings de tokens (tipicamente copiando a média dos embeddings existentes) são padrões comuns que previnem os novos componentes de perturbar o modelo pré-treinado no início do fine-tuning.

← Todos os termos
ESC