Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Vanishing Gradient

O problema do gradiente evanescente ocorre quando os gradientes diminuem camada a camada durante a retropropagação, fazendo com que as camadas iniciais deixem de aprender. Abrange causas e soluções.

O problema do desaparecimento do gradiente ocorre quando os gradientes que a retropropagação envia da perda em direção às primeiras camadas de uma rede neuronal profunda diminuem geometricamente à medida que aumenta a profundidade, pelo que as camadas iniciais recebem atualizações demasiado pequenas para aprenderem alguma coisa. Como o gradiente numa camada é o produto das derivadas locais de todas as camadas acima dela, uma rede em que cada camada multiplica o gradiente por um fator inferior a 1 pode reduzir o gradiente em várias ordens de grandeza entre a saída e a entrada. Sepp Hochreiter analisou o efeito na sua tese de 1991, e o problema continuou a dificultar o treino de redes neuronais feedforward profundas e redes neuronais recorrentes (RNNs) até surgirem melhores funções de ativação, esquemas de inicialização e arquiteturas.

Porque desaparecem os gradientes#

A retropropagação aplica a regra da cadeia, pelo que o gradiente que chega a uma camada é o gradiente a montante multiplicado pela matriz de pesos e pela derivada da função de ativação de cada camada posterior. A derivada da sigmoide nunca ultrapassa 0,25, o seu valor para uma entrada igual a 0, e tende a 0 quando a unidade satura com entradas muito positivas ou negativas. A derivada da tanh atinge o valor máximo de 1 e também tende a 0 quando satura. Assim, vinte camadas sigmoides multiplicam o gradiente, no máximo, por 0,25²⁰, um valor inferior a 10⁻¹², mesmo antes de contabilizar os pesos. A escala dos pesos é tão importante como a ativação: Glorot e Bengio atribuíram grande parte da dificuldade à inicialização e propuseram variâncias dos pesos ajustadas ao número de entradas e saídas de cada camada, para manter aproximadamente constantes as variâncias das ativações e dos gradientes ao longo das camadas.

É fácil medir o efeito comparando os tamanhos dos gradientes dos pesos na primeira e na última camada de uma rede sigmoide com 20 camadas, com e sem atalhos residuais:

import torch

torch.manual_seed(0)
x = torch.randn(64, 32)

# The same 20-layer sigmoid network, without and with residual shortcuts
for residual in (False, True):
    layers = [torch.nn.Linear(32, 32) for _ in range(20)]
    h = x
    for layer in layers:
        out = torch.sigmoid(layer(h))
        h = h + out if residual else out
    h.sum().backward()

    # Compare the weight-gradient size at the last layer and the first layer
    last, first = layers[-1].weight.grad.norm(), layers[0].weight.grad.norm()
    print(f"residual={residual}: layer 20 gradient {last:.1e}, layer 1 gradient {first:.1e}")

Sem atalhos, a norma do gradiente da última camada é 2.5e+02 e a da primeira camada é 4.2e-15, cerca de 17 ordens de grandeza menor, pelo que os pesos da primeira camada praticamente nunca mudam. Com atalhos residuais, o gradiente da primeira camada é 5.6e+01, cerca de 38 vezes menor do que o gradiente da última camada, 2.1e+03.

Gradientes evanescentes vs. explosivos#

Ambos os problemas resultam da mesma multiplicação repetida. Os gradientes que desaparecem fazem a aprendizagem parar silenciosamente: a perda continua a diminuir, impulsionada pelas últimas camadas, enquanto as primeiras camadas permanecem próximas da inicialização aleatória. Os gradientes explosivos crescem geometricamente, em vez disso, e manifestam-se de forma evidente através de picos na perda e de valores de NaN. A limitação do gradiente restringe a norma de um gradiente explosivo antes de cada atualização e não tem qualquer efeito num gradiente que já tenha desaparecido. O problema das ReLU inativas é uma falha relacionada em que a entrada de uma unidade ReLU permanece negativa, fazendo com que o respetivo gradiente seja exatamente 0 e a unidade deixe de aprender.

Como evitar o desaparecimento dos gradientes#

A solução mais usada é a conexão residual, o atalho de identidade no centro das redes residuais (ResNets). Um bloco residual produz x + F(x), então seu gradiente em relação a x é 1 mais a derivada de F, e o caminho de atalho transmite o gradiente anterior sem alterações.

Os atalhos residuais permitem treinar ResNets com mais de 100 camadas e estão presentes em quase todas as arquiteturas profundas modernas, desde os transformers ao YOLO26, cujos blocos C3k2 envolvem gargalos residuais e cujos blocos convolucionais padrão combinam normalização por lotes com ativações SiLU.

Outras soluções funcionam em conjunto com as ligações residuais:

  • Funções de ativação não saturantes: A ReLU tem uma derivada exatamente igual a 1 para entradas positivas, e a Leaky ReLU e a SiLU também mantêm um gradiente diferente de zero para entradas negativas.
  • Inicialização escalada: A inicialização Xavier (Glorot) é adequada para camadas tanh e sigmoides, e a inicialização He duplica a variância dos pesos para compensar o facto de a ReLU anular metade das entradas.
  • Camadas de normalização: A normalização por lotes e a normalização por camadas mantêm as pré-ativações próximas de uma média de zero e de uma variância unitária, fora das regiões planas das funções de ativação saturantes.
  • Arquiteturas recorrentes com portas: As redes de memória de longo e curto prazo (LSTM) e as unidades recorrentes com portas (GRUs) transportam o estado através de atualizações aditivas com portas, em vez de multiplicações repetidas, o que permitiu à LSTM original ultrapassar intervalos temporais superiores a 1.000 passos.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina