Pular para o conteúdo principal

Arquitetura ResNet: redes residuais e conexões de atalho

Um mergulho na arquitetura ResNet, mostrando como o aprendizado residual e as conexões de atalho resolvem os problemas de gradiente que desaparece e degradação que dificultam o treinamento de redes neurais profundas.
Atualizado 4 de mai. de 2026  · 12 min lido

Redes neurais mais profundas deveriam ter um desempenho melhor. Mas, na prática, nem sempre é assim.

A partir de certa profundidade, a acurácia pode até começar a cair. Não porque o modelo está sofrendo overfitting — mas porque o próprio treinamento entra em colapso. Os gradientes tendem a desaparecer antes de alcançar as camadas iniciais, e essas camadas param de aprender. Você poderia supor que adicionar mais camadas resolveria, porém isso geralmente piora o problema.

A ResNet resolveu isso com a ideia central de conexões de atalho (skip connections). Em vez de forçar cada camada a aprender tudo do zero, ela permite que a rede salte camadas e some a entrada diretamente à saída.

Neste artigo, vou explicar como a ResNet funciona, como é sua arquitetura e por que ela ainda é uma das preferidas no deep learning moderno.

Quer ver a ResNet na prática? Resolva nosso exercício de classificação de imagens com ResNet como parte do curso Deep Learning for Images with PyTorch.

O que é a arquitetura ResNet?

ResNet — abreviação de Residual Network — é uma arquitetura de rede neural criada para tornar viável o treinamento de redes profundas.

A ideia foi apresentada pela Microsoft Research lá em 2015. O algoritmo usa conexões residuais para contornar os problemas de treinamento que limitavam as redes profundas na época. A sacada é simples, mas, depois dessa descoberta, passou a ser possível treinar com confiabilidade redes com 50, 101 ou até 152 camadas — sem ver o desempenho degradar.

Antes da ResNet, chegar tão fundo não era realmente uma opção.

Por que redes profundas são difíceis de treinar

Mais camadas deveriam significar mais chance de aprendizado. Na prática, depois de certa profundidade, tudo começa a desandar.

Existem dois problemas principais aqui.

O primeiro é o problema do gradiente que desaparece. Redes neurais aprendem enviando sinais de erro para trás na rede — processo chamado de backpropagation. Cada camada ajusta seus pesos com base nesse sinal. Mas, conforme o sinal viaja por muitas camadas, ele é multiplicado por números pequenos repetidas vezes e encolhe. Quando chega às camadas iniciais, quase nada sobra. Essas camadas deixam de atualizar — e, portanto, de aprender.

O segundo é o problema da degradação. Esse é contraintuitivo. Você esperaria que uma rede com 56 camadas tivesse, no mínimo, o mesmo desempenho de uma com 20 — afinal, tem mais capacidade. Mas os pesquisadores observaram o oposto. A rede mais profunda foi pior, até mesmo nos dados de treino. Isso descarta o overfitting como causa. O modelo não está memorizando demais; ele está com dificuldade de otimização.

Esse é o ponto-chave. Não são problemas de generalização que você resolve com dropout ou regularização. São problemas de otimização — a rede não consegue encontrar bons pesos para começar.

As ResNets foram projetadas para resolver esses dois problemas. Vou te mostrar como.

A ideia central: aprendizado residual

Redes neurais tradicionais tentam aprender um mapeamento direto da entrada para a saída. Cada camada observa o que entrou e tenta inferir o que deve sair. Isso funciona bem em redes rasas. Mas, ao aprofundar, você esbarra nos dois problemas que vimos.

Na ResNet, em vez de pedir a cada bloco que aprenda o mapeamento completo, fazemos uma pergunta mais simples: o que eu preciso somar à entrada para chegar à saída correta?

Essa diferença é chamada de resíduo.

Então, em vez de aprender:

Residual learning (1)

Residual learning (1)

A rede aprende:

Residual learning (2)

Residual learning (2)

Onde F(input) é o resíduo — a pequena correção que a rede precisa fazer. Se a camada não precisar mudar nada, ela pode levar F(input) a zero e simplesmente repassar a entrada sem alterações.

Pode parecer um detalhe, mas muda o que a rede precisa aprender. Aprender uma pequena correção é um problema de otimização muito mais simples do que aprender uma transformação completa do zero — e é isso que torna redes mais profundas treináveis.

O que são conexões de atalho na ResNet?

Uma conexão de atalho é exatamente isso: um caminho direto que ignora uma ou mais camadas e envia a entrada para um ponto mais adiante na rede.

Em uma rede tradicional, os dados fluem por cada camada em sequência. Toda camada transforma a entrada e passa o resultado para a próxima. As conexões de atalho pegam a entrada original e a somam diretamente à saída de uma camada mais à frente no bloco.

Aqui vai uma forma simples de visualizar:

Skip connection graph example

Skip connection graph example

A entrada x percorre dois caminhos ao mesmo tempo. Um passa pelas camadas convolucionais, que aprendem o resíduo F(x). O outro ignora essas camadas e se conecta diretamente à etapa de soma. A saída final é F(x) + x.

Esse atalho é crucial no treinamento. Durante a backpropagation, os gradientes podem retornar pela conexão de atalho, sem passar pelas camadas intermediárias. Isso dá às camadas iniciais um sinal mais limpo e forte para aprender — exatamente o que faltava nas redes profundas antes da ResNet.

Estrutura de um bloco ResNet

Um bloco residual é a unidade que se repete em uma ResNet. Se você entende um bloco, entende a rede toda.

Veja o que acontece dentro de um único bloco:

  1. A entrada x entra no bloco e se divide em dois caminhos

  2. Um caminho passa por duas camadas convolucionais, cada uma seguida por batch normalization e uma ativação ReLU

  3. O outro caminho ignora essas camadas — essa é a conexão de atalho

  4. Os dois caminhos se encontram na operação de soma, onde a entrada original é somada à saída das camadas convolucionais

  5. Uma ativação ReLU final é aplicada ao resultado

Ou em diagrama:

ResNet block diagram

ResNet block diagram

A conexão de atalho aqui é chamada de mapeamento identidade — a entrada passa inalterada e é somada diretamente à saída aprendida. É o atalho mais simples possível, sem transformação e sem parâmetros extras.

Mas, para a soma funcionar, ambos os caminhos precisam produzir tensores com o mesmo formato. Se as camadas convolucionais mudam as dimensões espaciais ou o número de canais, a entrada x não pode ser somada. Nesses casos, a ResNet aplica um atalho por projeção — uma convolução 1×1 no caminho de atalho que reajusta x para coincidir.

A maioria dos blocos em uma ResNet usa atalhos identidade. Atalhos por projeção aparecem apenas quando há mudança de dimensão, geralmente quando a rede muda de estágio.

Tipos de arquiteturas ResNet

A ResNet possui alguns variantes padrão, cada um nomeado pelo número total de camadas. A escolha certa depende do que você está otimizando — velocidade, acurácia ou um meio-termo.

ResNet architecture comparison

ResNet architecture comparison

ResNet-18 e ResNet-34 usam o bloco básico padrão — duas camadas convolucionais 3×3 com uma conexão de atalho. São rápidas e baratas de executar, ótimas para prototipagem ou quando o hardware é limitado.

A partir da ResNet-50, entra um design diferente chamado bloco bottleneck, que usa três camadas em vez de duas. Essa mudança facilita treinar redes mais profundas sem um aumento proporcional no custo computacional. Você vai ver como isso funciona na próxima seção.

ResNet-101 e ResNet-152 vão além, ao custo de tempos de treino maiores e uso de memória mais alto. São comuns em pesquisa e em produção quando a acurácia importa mais que a velocidade.

Para a maioria dos trabalhos práticos, ResNet-50 é o ponto de partida padrão. Ela equilibra bem profundidade e custo, e é amplamente suportada em todos os frameworks de deep learning.

Arquitetura bottleneck da ResNet

As ResNets mais profundas não usam o mesmo design de bloco das mais rasas. A partir da ResNet-50, a arquitetura troca para um bloco bottleneck, um design de três camadas que mantém o custo computacional sob controle conforme a profundidade aumenta.

O bloco usa três convoluções em sequência:

  • Convolução 1×1 — reduz o número de canais, deixando a entrada menor
  • Convolução 3×3 — faz o aprendizado de atributos nessa representação reduzida
  • Convolução 1×1 — expande os canais de volta ao tamanho original

As convoluções 1×1 de entrada e saída atuam como um gargalo — daí o nome. Elas comprimem os dados antes da convolução 3×3 (mais cara) e depois os restauram.

Uma convolução 3×3 com muitas canais é pesada computacionalmente. Ao reduzir os canais antes, o bloco bottleneck permite que a camada 3×3 trabalhe sobre uma entrada bem menor. O resultado é um bloco que aprofunda sem um salto proporcional no custo de computação.

A conexão de atalho funciona do mesmo jeito do bloco básico — a entrada é somada à saída antes da ativação final. A única diferença é que quase sempre é necessário um atalho por projeção aqui, já que as dimensões de canais mudam dentro do bloco.

Como a ResNet resolve o problema do gradiente que desaparece

O problema do gradiente que desaparece é, no fundo, uma questão de distância. Quanto mais longe o gradiente precisa viajar pela rede, mais ele encolhe — e, quando chega às camadas iniciais, resta pouco para aprender.

As conexões de atalho contornam isso oferecendo um caminho mais curto para os gradientes.

Durante a backpropagation, os gradientes não precisam passar por todas as camadas em sequência. Eles podem voltar pela conexão de atalho, ignorando completamente as camadas convolucionais. Esse atalho mantém o gradiente grande o suficiente para realmente atualizar as camadas iniciais.

Isso também muda o que cada bloco precisa aprender. Em vez de encontrar uma transformação completa do zero, a rede só precisa aprender uma pequena correção sobre a entrada. É um problema de otimização muito mais simples, permitindo aumentar a profundidade sem tornar o treinamento instável.

Resumindo: redes que antes eram profundas demais para treinar com confiabilidade tornam-se treináveis.

ResNet vs. arquiteturas CNN tradicionais

CNNs tradicionais e ResNets aprendem atributos de imagens, mas fazem isso de maneiras diferentes.

Em uma CNN tradicional, os dados fluem em linha reta pelas camadas. Cada camada pega a saída da anterior, aplica uma transformação e passa adiante. Isso funciona bem até certo ponto. Depois de uma certa profundidade, a estrutura sequencial fica pouco confiável na backpropagation — os gradientes diminuem, as camadas iniciais param de aprender e a acurácia começa a cair.

A ResNet não segue uma linha reta. As conexões de atalho permitem que a entrada ignore uma ou mais camadas e seja somada diretamente à saída mais à frente no bloco. A rede ainda aprende transformações, mas também tem um caminho direto para dados e gradientes fluírem.

Veja como as duas abordagens se comparam:

ResNet versus traditional CNN

ResNet versus traditional CNN

As conexões de atalho ajudam tanto com os gradientes quanto com a suavização da otimização, o que faz a rede encontrar bons pesos mais rápido e com mais confiabilidade.

Aplicações da arquitetura ResNet

A arquitetura ResNet aparece em uma grande variedade de tarefas do mundo real.

Classificação de imagens foi onde a ResNet começou. Ela venceu o ImageNet Large Scale Visual Recognition Challenge em 2015 e ainda é escolha certeira para classificar imagens em categorias, seja em exames médicos, imagens de satélite ou fotos de produtos.

Detecção de objetos frequentemente usa ResNets. Frameworks como Faster R-CNN e Mask R-CNN combinam ResNet com uma cabeça de detecção que identifica e localiza objetos na imagem. A ResNet faz a extração de atributos e a cabeça de detecção faz o restante.

Transfer learning é onde a ResNet fica realmente útil para a maioria dos cientistas de dados. Em vez de treinar do zero — o que leva dias e exige muitos dados — você carrega uma ResNet pré-treinada no ImageNet e faz fine-tuning no seu conjunto de dados. Os pesos pré-treinados já codificam atributos de baixo nível, como bordas, texturas e formas, então você já começa em outro patamar.

Extração de atributos segue uma lógica parecida. Você passa as imagens por uma ResNet pré-treinada e extrai a saída de uma das camadas finais. Essas saídas são representações densas e ricas das suas imagens, que podem alimentar um classificador mais simples ou um algoritmo de clusterização.

Em todos esses casos, a ResNet funciona como ponto de partida pré-treinado. A maioria dos frameworks de deep learning já traz pesos de ResNet prontos, o que a torna uma das arquiteturas mais fáceis para começar.

Vantagens e limitações da ResNet

A ResNet foi um grande avanço no deep learning — mas, como toda arquitetura, envolve trade-offs. Vou destacar algumas vantagens e desvantagens.

Vantagens

A mais óbvia é a profundidade. As conexões de atalho permitem treinar redes com 50, 100 ou até 150+ camadas sem cair no problema da degradação. Antes da ResNet, isso não era confiável.

O treinamento também fica mais estável. Os atalhos dão aos gradientes um caminho limpo de volta pela rede, o que significa menos ajuste fino, menos colapsos e resultados mais previsíveis em diferentes tarefas e datasets.

E a performance também é um ponto forte. Variantes da ResNet aparecem sempre entre as melhores em benchmarks de imagem, e modelos ResNet pré-treinados transferem bem para novos domínios — por isso continuam sendo ponto de partida padrão em tantos projetos de visão computacional.

Limitações

A ResNet é pesada computacionalmente. Variantes mais profundas, como ResNet-101 e ResNet-152, exigem muita memória e processamento, o que pode limitar quando o hardware é modesto ou quando você precisa de inferência rápida.

Ela também não é a melhor escolha para toda tarefa. Para datasets menores ou problemas simples, uma arquitetura mais leve costuma ir tão bem quanto a uma fração do custo. Partir de uma ResNet-50 por padrão nem sempre é o ideal.

E, em algumas frentes, a ResNet foi superada. Arquiteturas como EfficientNet alcançam melhor acurácia por parâmetro em tarefas de imagem, e transformers dominaram outras. A ResNet ainda é amplamente usada, mas não é mais a única opção séria.

ResNet no deep learning moderno

Onze anos após sua introdução, a arquitetura ResNet continua firme. Isso não é comum em deep learning.

A maioria dos profissionais ainda recorre à ResNet quando precisa de um baseline confiável para uma tarefa de visão computacional. Ela é bem compreendida, bem suportada em todos os grandes frameworks, e há pesos pré-treinados disponíveis em todas as bibliotecas principais. Então, quando você precisa de algo que funcione sem muita experimentação, a ResNet costuma ser a primeira opção.

Mas sua influência vai além de suas próprias variantes.

A ideia central da ResNet — adicionar um atalho em torno de camadas para ajudar o fluxo de informações e gradientes — se mostrou amplamente útil. A DenseNet ampliou essa ideia conectando cada camada a todas as outras, não só pulando uma ou duas. E, embora transformers tenham outra arquitetura, as conexões residuais dentro de cada bloco de transformer seguem o mesmo princípio introduzido pela ResNet.

Arquiteturas mais novas, como EfficientNet, ConvNeXt e vision transformers, elevaram a barra de desempenho em áreas específicas. Mas não substituíram a ResNet — elas se apoiaram no que ela estabeleceu.

Conclusão

A arquitetura ResNet gira em torno de uma coisa: conexões de atalho. Essa ideia resolveu dois problemas que travavam redes profundas — gradientes que desaparecem e degradação — e tornou prático treinar redes em profundidades que antes não eram possíveis.

A ideia de adicionar atalhos entre camadas virou um bloco padrão no deep learning moderno, aparecendo em DenseNet, transformers e na maioria das arquiteturas criadas depois de 2015.

Se você está trabalhando hoje com visão computacional, a ResNet ainda é um ponto de partida sólido. Não é a opção mais nova, mas é uma das mais confiáveis. Trate-a como baseline — você vai se surpreender como ela ainda consegue superar a concorrência em 2026.

Se você é novo em deep learning, mas já domina os fundamentos de Python, explore nosso curso Introduction to TensorFlow in Python — ele vai te colocar em dia com temas como ResNet em um fim de semana.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Cientista de dados sênior baseado na Croácia. Principal redator técnico com mais de 700 artigos publicados, gerando mais de 10 milhões de visualizações. Autor do livro Automação do aprendizado de máquina com TPOT.

FAQs

O que é ResNet e por que ela foi importante?

ResNet, sigla para Residual Network, é uma arquitetura de deep learning apresentada pela Microsoft Research em 2015. Ela resolveu dois problemas que dificultavam o treinamento de redes profundas: gradientes que desaparecem e o problema da degradação. O mecanismo de conexões de atalho tornou possível treinar, com confiabilidade, redes com 50, 100 ou até mais de 150 camadas pela primeira vez.

O que são conexões de atalho em uma rede neural?

Uma conexão de atalho é um caminho direto que ignora uma ou mais camadas e soma a entrada diretamente à saída de uma camada posterior. Isso dá tanto aos dados quanto aos gradientes um atalho pela rede, mantendo o sinal de gradiente forte o suficiente para atualizar as camadas iniciais durante o treinamento.

O que é o problema do gradiente que desaparece?

O problema do gradiente que desaparece acontece quando os gradientes encolhem ao viajar para trás por uma rede profunda. Quando o sinal chega às camadas iniciais, ele está pequeno demais para atualizá-las — o que faz com que elas parem de aprender. A ResNet resolve isso permitindo que os gradientes fluam de volta pelas conexões de atalho, ignorando as camadas intermediárias.

Qual é a diferença entre o bloco básico e o bloco bottleneck da ResNet?

O bloco básico usa duas camadas convolucionais 3×3 e aparece nas variantes mais rasas, como ResNet-18 e ResNet-34. O bloco bottleneck, usado na ResNet-50 e mais profundas, usa a sequência de convoluções 1×1 - 3×3 - 1×1 que reduz o custo ao comprimir os canais antes da cara convolução 3×3.

Como escolher a variante certa de ResNet para meu projeto?

Para a maioria dos projetos, a ResNet-50 é um ótimo padrão — equilibra bem profundidade, acurácia e custo computacional. ResNet-18 e ResNet-34 são opções mais rápidas quando o hardware é limitado, enquanto ResNet-101 e ResNet-152 fazem sentido quando a prioridade é acurácia e computação não é um gargalo.

Tópicos

Aprenda com a DataCamp

Curso

Introdução a Deep Learning em Python

4 h
262.9K
Aprenda os fundamentos das redes neurais e como criar modelos de aprendizado profundo usando o Keras 2.0 em Python.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O que são redes neurais?

As NNs são modelos computacionais inspirados no cérebro, usados no aprendizado de máquina para reconhecer padrões e tomar decisões.
Abid Ali Awan's photo

Abid Ali Awan

7 min

Tutorial

Dominando a retropropagação: Um guia abrangente para redes neurais

Mergulhe nos fundamentos da retropropagação em redes neurais com um guia prático para treinar e avaliar um modelo para um cenário de uso de classificação de imagens.
Zoumana Keita 's photo

Zoumana Keita

Tutorial

Introdução às redes neurais profundas

Compreensão das redes neurais profundas e sua importância no mundo moderno da aprendizagem profunda da inteligência artificial
Bharath K's photo

Bharath K

Tutorial

Uma introdução às redes neurais convolucionais (CNNs)

Um guia completo para entender as CNNs, seu impacto na análise de imagens e algumas estratégias importantes para combater o overfitting para aplicações robustas de CNNs e aprendizagem profunda.
Zoumana Keita 's photo

Zoumana Keita

Tutorial

Introdução às funções de ativação em redes neurais

Aprenda a navegar pelo cenário das funções de ativação comuns - desde a firme ReLU até a proeza probabilística da softmax.
Moez Ali's photo

Moez Ali

Tutorial

Criação de modelos de redes neurais (NN) em R

Neste tutorial, você aprenderá a criar um modelo de rede neural no R.
Abid Ali Awan's photo

Abid Ali Awan

Ver maisVer mais