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

Residual Networks (ResNet)

Uma rede residual (ResNet) adiciona a entrada de cada bloco à sua saída através de uma ligação de salto, permitindo treinar redes muito profundas. Abrange blocos, variantes e código.

Uma rede residual (ResNet) é uma rede neural convolucional (CNN) profunda construída com blocos residuais, nos quais uma ligação de atalho adiciona a entrada de cada bloco à sua saída. Assim, cada bloco aprende apenas uma correção à entrada, o que permite treinar de forma fiável redes com 50, 152 ou mais de 1 000 camadas. Kaiming He, Xiangyu Zhang, Shaoqing Ren e Jian Sun, da Microsoft Research, apresentaram a ResNet no artigo de 2015 Aprendizagem residual profunda para reconhecimento de imagens, e um ensemble de redes residuais venceu a tarefa de classificação do ILSVRC 2015 com um erro top-5 de 3.57% no ImageNet. Desde então, as ligações residuais tornaram-se padrão na maioria das arquiteturas profundas, incluindo transformers e detetores de objetos em tempo real.

O problema da degradação#

Antes da ResNet, adicionar camadas a uma sequência simples de convoluções acabava por piorar os resultados. Os autores da ResNet mostraram que uma rede simples de 56 camadas tinha um erro de treino superior ao de uma rede de 20 camadas, pelo que o sobreajuste não podia explicar a queda de desempenho. A rede mais profunda podia igualar a mais superficial definindo as camadas adicionais como identidade, mas o gradiente descendente não encontrava essa solução. Os autores chamaram a isto o problema da degradação. O problema do gradiente evanescente já tinha sido resolvido em grande parte através da inicialização normalizada dos pesos e da normalização em lote; assim, as redes simples profundas convergiam, mas para soluções piores.

Como funcionam os blocos residuais#

Um bloco residual calcula y = F(x) + x, em que x é a entrada do bloco e F é uma pequena sequência de camadas, normalmente duas ou três convoluções com normalização em lote e ReLU. Se o melhor mapeamento para o bloco estiver próximo de um mapeamento identidade, as camadas só têm de aproximar F de zero, o que é muito mais fácil do que aprender a identidade a partir do zero. O atalho também proporciona aos gradientes um caminho direto de retropropagação através de cada bloco. Os atalhos identidade não adicionam parâmetros e exigem quase nenhum cálculo. Quando um bloco altera o número de canais ou reduz a resolução com um stride de 2, x deixa de ter a mesma forma que F(x), e uma convolução 1×1 projeta o atalho para a nova forma.

ResNet-18 e ResNet-34 usam uma sequência do bloco básico de duas convoluções. ResNet-50, ResNet-101 e ResNet-152 usam um bloco gargalo com três convoluções: uma convolução 1×1 reduz os canais, uma convolução 3×3 processa-os e uma segunda convolução 1×1 repõe-nos, mantendo os modelos profundos a um custo acessível. A ResNet-50 tem cerca de 25.6 milhões de parâmetros. O artigo original também treinou uma rede de 1 202 camadas no CIFAR-10 até obter um erro de treino inferior a 0.1%, embora o erro de teste de 7.93% fosse superior aos 6.43% de uma rede de 110 camadas; os autores atribuíram essa diferença ao sobreajuste no conjunto de dados pequeno.

Variantes da ResNet#

  • ResNet com pré-ativação: Num artigo de 2016, os mesmos autores moveram a normalização em lote e a ReLU para antes de cada convolução, deixando o caminho do atalho como uma identidade pura, e treinaram uma rede de 1 001 camadas no CIFAR-10.
  • ResNeXt: Divide cada bloco gargalo em muitos caminhos paralelos de baixa largura, chamados cardinalidade, o que aumenta a precisão sem elevar o custo computacional.
  • Wide ResNet: Usa menos blocos, mas mais largos, mostrando que a largura pode substituir parte da profundidade.
  • ResNets modernizadas: A ConvNeXt (2022) atualizou o design da ResNet com kernels maiores, normalização por camada e ativações GELU para competir com transformers de visão.

Utilizar uma ResNet pré-treinada#

As ResNets pré-treinadas continuam a ser referências comuns e backbones para aprendizagem por transferência. Os modelos ResNet do torchvision incluem pesos do ImageNet e o pré-processamento correspondente, pelo que classificar uma imagem requer apenas algumas linhas:

import urllib.request

import torch
from torchvision.io import decode_image
from torchvision.models import ResNet50_Weights, resnet50

# Load ResNet-50 with ImageNet weights and its matching preprocessing
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
preprocess = weights.transforms()

# Download and decode a sample image
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = decode_image(torch.frombuffer(bytearray(data), dtype=torch.uint8))

# Classify the image and report the most likely ImageNet class
with torch.no_grad():
    probs = model(preprocess(image).unsqueeze(0)).softmax(dim=1)
score, index = probs.max(dim=1)
print(f"{weights.meta['categories'][index.item()]}: {score.item():.2f}")

O código apresenta minibus: 0.25, a classe mais próxima, entre as 1 000 classes do ImageNet, do autocarro urbano na fotografia. Para uma tarefa personalizada, substituir a última camada totalmente ligada e ajustar o modelo com novos rótulos permite reutilizar as características aprendidas pelas etapas residuais com o ImageNet.

  • Redes simples, como VGG: A VGG encadeia convoluções 3×3 sem atalhos e chega a um máximo de 19 camadas de pesos. A ResNet-152 é oito vezes mais profunda e tem menor complexidade do que a VGG-19.
  • Redes Highway: Desenvolvidas ao mesmo tempo que a ResNet, adicionam portas aprendidas que podem fechar o atalho. Os atalhos identidade da ResNet nunca se fecham e não adicionam parâmetros.
  • DenseNet: Concatena as saídas de todas as camadas anteriores de um bloco, em vez de adicionar um único atalho, reutilizando características à custa do aumento do número de canais.
  • U-Net: As suas ligações de salto transportam mapas de características do codificador para o descodificador e concatenam-nos aí, ligando etapas distantes em vez de envolver blocos individuais.
  • Transformers de visão (ViT): Substituem as convoluções por autoatenção, mas mantêm ligações residuais em torno de cada subcamada de atenção e de alimentação direta, como acontece em todos os transformers.

Ligações residuais em modelos modernos#

A ideia residual sobreviveu às arquiteturas ResNet específicas. Cada camada de um modelo de linguagem de grande escala (LLM) adiciona as suas saídas de atenção e de alimentação direta a um fluxo residual contínuo, e a maioria dos detetores CNN constrói os seus backbones com blocos residuais. No YOLO26, os blocos C3k2 são construídos com módulos gargalo que devolvem x + F(x) sempre que os canais de entrada e de saída coincidem; o pacote Ultralytics também inclui configurações do RT-DETR da Baidu com backbones ResNet-50 e ResNet-101. O artigo sobre a ResNet ganhou o prémio de Melhor Artigo da CVPR 2016, e uma análise publicada na Nature em 2025 classificou-o como o artigo mais citado do século XXI.

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