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

Leaky ReLU

A ReLU com fuga transmite as entradas negativas com uma pequena inclinação, muitas vezes de 0,01, para que os gradientes continuem a fluir e os neurónios evitem o problema das ReLU inativas.

Leaky ReLU (unidade linear retificada com fuga) é uma função de ativação que devolve a entrada sem alterações quando é positiva e a multiplica por um declive fixo pequeno, como 0.01, quando é negativa. Modifica a ReLU padrão, que produz zero para todas as entradas negativas, para que os valores negativos continuem a produzir uma pequena saída e, mais importante, um gradiente diferente de zero durante a retropropagação. Andrew Maas, Awni Hannun e Andrew Ng descreveram a função num estudo de 2013 sobre ativações retificadoras em modelos acústicos de reconhecimento de fala, usando um declive de 0.01. É utilizada em modelos de aprendizado profundo em que o fluxo de gradientes é importante, desde discriminadores de redes adversariais generativas a detetores de objetos YOLO mais antigos e unidades de processamento neural que executam modelos quantizados com ativações lineares por partes.

Como funciona a Leaky ReLU#

A Leaky ReLU calcula f(x) = x para x > 0 e f(x) = αx para x ≤ 0, em que o declive negativo α é um hiperparâmetro fixo entre 0 e 1. A derivada é 1 para entradas positivas e α para entradas negativas, pelo que cada entrada transmite algum gradiente aos pesos que a produziram. O declive habitual varia consoante a origem e a estrutura: nn.LeakyReLU do PyTorch usa 0.01 por predefinição, tf.nn.leaky_relu do TensorFlow usa 0.2 e a camada LeakyReLU do Keras usa 0.3. Este código passa entradas negativas pela ReLU e pela Leaky ReLU e calcula o gradiente de cada uma:

import torch
from torch import nn

# Negative pre-activations, the inputs a ReLU unit turns into zeros
x = torch.tensor([-3.0, -1.0, -0.5], requires_grad=True)

for activation in (nn.ReLU(), nn.LeakyReLU(negative_slope=0.01)):
    y = activation(x)
    y.sum().backward()  # gradient that flows back toward the weights
    print(f"{activation}: output {y.detach().numpy()}, gradient {x.grad.numpy()}")
    x.grad = None

Apresenta ReLU(): output [0. 0. 0.], gradient [0. 0. 0.] e LeakyReLU(negative_slope=0.01): output [-0.03 -0.01 -0.005], gradient [0.01 0.01 0.01]. A ReLU não transmite qualquer gradiente destas entradas, pelo que a descida do gradiente não consegue alterar os pesos que as produziram, enquanto a Leaky ReLU transmite 1% do gradiente a montante.

O problema das ReLU inativas#

Um neurónio ReLU morre quando os seus pesos e o viés se alteram tanto que a pré-ativação é negativa para todas as entradas nos dados de treino. A sua saída passa então a ser sempre zero, o seu gradiente é sempre zero e os pesos de entrada nunca mais são atualizados, pelo que o neurónio fica permanentemente inutilizado na rede neuronal. Uma taxa de aprendizagem elevada ou uma grande atualização negativa do viés tornam esta situação mais provável. A Leaky ReLU mantém um pequeno gradiente no lado negativo, pelo que um neurónio que se desloque para a região negativa ainda pode ser recuperado:

O problema das ReLU inativas é diferente do problema do gradiente evanescente, no qual os gradientes diminuem gradualmente ao atravessar muitas camadas de funções saturantes, como sigmoid ou tanh.

  • ReLU: Produz zeros exatos para entradas negativas, o que torna as ativações esparsas e os cálculos baratos, mas pode fazer com que os neurónios deixem de funcionar. A Leaky ReLU abdica da esparsidade exata para manter um gradiente em todo o domínio.
  • ReLU paramétrica (PReLU): Aprende o declive negativo durante o treino, normalmente um valor por canal, em vez de o fixar. Kaiming He e os seus colegas inicializaram o declive em 0.25, que também é o valor predefinido de nn.PReLU do PyTorch.
  • SiLU e GELU: Curvas suaves que descem ligeiramente abaixo de zero para entradas negativas e não têm uma ponta acentuada em zero. SiLU é a predefinição nos modelos YOLO modernos, e GELU é comum em Transformers. Ambas exigem uma exponencial por valor, enquanto a Leaky ReLU só precisa de uma comparação e uma multiplicação.

Onde se utiliza a Leaky ReLU#

  • Discriminadores DCGAN: A arquitetura DCGAN usou Leaky ReLU com um declive de 0.2 em todas as camadas do discriminador, para que o gerador recebesse gradientes úteis mesmo para imagens rejeitadas pelo discriminador; muitos GANs posteriores mantiveram esta escolha.
  • Detetores YOLO iniciais: O YOLO original usou Leaky ReLU com um declive de 0.1 em todas as camadas, exceto na última, tal como o YOLOv2 e o YOLOv3; o YOLOv5 também a usou até ao lançamento da versão 4.0, em janeiro de 2021, que a substituiu por SiLU.
  • Redes de atenção em grafos: Estas redes neuronais de grafos aplicam Leaky ReLU com um declive de 0.2 para avaliar o grau de atenção que cada nó deve prestar aos seus vizinhos.
  • Aceleradores de IA na periferia: As unidades de processamento neural inteiras que executam modelos quantizados podem incorporar uma ativação linear por partes na convolução anterior. O DPU Xilinx da AMD faz isso com ReLU e Leaky ReLU, mas executa sigmoid e, por conseguinte, SiLU na CPU anfitriã.

Os ficheiros YAML dos modelos Ultralytics YOLO aceitam uma chave activation que substitui a SiLU predefinida em cada bloco de convolução padrão, permitindo treinar YOLO26 com activation: nn.LeakyReLU(0.1015625) para corresponder ao declive fixo do DPU de 26/256.

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