Traduzido do inglês

Uma conexão residual é um padrão de rede neural que adiciona a entrada de uma camada à sua saída, permitindo o treinamento estável de redes muito profundas. Ela foi popularizada pela arquitetura [[resnet|ResNet]] em 2015 e agora é um componente padrão em modelos como [[transformer|transformers]].

Uma conexão residual é um motivo arquitetural fundamental em aprendizado profundo, onde a entrada de uma camada é adicionada diretamente à sua saída, permitindo que a rede aprenda funções residuais em vez da transformação completa. Formalmente, para uma entrada \(x\) e uma sub-rede \(f\), a conexão residual calcula \(f(x) + x\). Essa simples adição estabiliza o treinamento e possibilita a construção de redes neurais com centenas ou até milhares de camadas, que de outra forma sofreriam com degradação e gradientes desaparecendo. O conceito foi popularizado pela arquitetura de rede residual (ResNet) em 2015, que venceu o ImageNet Large Scale Visual Recognition Challenge (ILSVRC) naquele ano, e desde então se tornou um componente onipresente em sistemas modernos de Deep learning, incluindo modelos Transformer (architecture) e Large language models.

O termo "conexão residual" refere-se especificamente ao mapeamento \(x \mapsto f(x) + x\), onde \(f\) é um módulo arbitrário de rede neural. Embora o motivo tenha sido usado em trabalhos anteriores, como em redes de longa memória de curto prazo (LSTM), a publicação da ResNet o tornou amplamente adotado para redes feedforward. Hoje, conexões residuais aparecem em arquiteturas aparentemente não relacionadas à ResNet, incluindo modelos de Generative AI, sistemas de Neural network para reconhecimento de imagem e aplicações de Machine learning em diversos domínios.

Matemática das Conexões Residuais

Em uma rede neural multicamadas, considere uma sub-rede com camadas empilhadas (por exemplo, 2 ou 3 camadas) que mapeia uma entrada \(x\) para uma saída \(H(x; \alpha)\), onde \(\alpha\) representa os parâmetros. Sem conexões residuais, a sub-rede deve aprender diretamente a saída ótima desejada \(H^\). Com uma conexão residual, a sub-rede aprende o residual \(H^ - x\), e a saída final é \(F(x; \alpha) = H(x; \alpha) + x\). Essa reparametrização facilita que a rede aprenda mapeamentos de identidade, pois a sub-rede só precisa ajustar o desvio da entrada.

A operação é implementada via uma "conexão de salto" que realiza um mapeamento de identidade, conectando a entrada da sub-rede diretamente à sua saída. Essa conexão de salto é o que se refere como conexão residual. A função \(F\) é tipicamente representada por multiplicações de matrizes intercaladas com funções de ativação e operações de normalização, como Batch Normalization ou Layer Normalization. Um bloco residual é uma dessas sub-redes com sua conexão de salto, e uma rede residual profunda é construída empilhando esses blocos.

Conexões de Projeção

Quando a sub-rede \(F\) muda a dimensionalidade da entrada, tal que \(F: \mathbb{R}^n \to \mathbb{R}^m\) com \(n \neq m\), a adição \(F(x) + x\) é indefinida. Nesse caso, uma conexão de projeção é usada: \(y = F(x) + P(x)\), onde \(P\) é tipicamente uma projeção linear definida por \(P(x) = Mx\), com \(M\) sendo uma matriz \(m \times n\). Essa matriz de projeção é treinada via retropropagação, assim como qualquer outro parâmetro no modelo. Conexões de projeção permitem que arquiteturas residuais sejam aplicadas através de camadas com diferentes larguras ou contagens de canais, o que é comum em redes convolucionais como a ResNet ao transicionar entre estágios.

Propagação de Sinal

A introdução de mapeamentos de identidade em conexões residuais facilita a propagação de sinal tanto nos caminhos direto quanto reverso, o que é chave para sua eficácia no treinamento de redes profundas.

Propagação Direta

Se a saída do \(\ell\)-ésimo bloco residual é a entrada do \((\ell+1)\)-ésimo bloco residual (assumindo nenhuma função de ativação entre blocos), então a entrada do próximo bloco é \(x_{\ell+1} = F(x_\ell) + x_\ell\). Essa relação recursiva significa que o sinal de camadas anteriores pode fluir diretamente para camadas posteriores através dos mapeamentos de identidade, evitando a degradação de informação que ocorre em redes não residuais. Ao longo de \(L\) blocos, a saída pode ser expressa como \(x_L = x_0 + \sum_{i=0}^{L-1} F(x_i)\), mostrando que a entrada inicial está sempre presente na saída final.

Propagação Reversa

Durante a retropropagação, o gradiente da perda em relação à entrada de um bloco residual é \(\frac{\partial \mathcal{L}}{\partial x_\ell} = \frac{\partial \mathcal{L}}{\partial x_{\ell+1}} \left(1 + \frac{\partial F}{\partial x_\ell}\right)\). O termo \(1\) garante que o gradiente possa fluir para trás através do mapeamento de identidade sem desaparecer, mesmo se a sub-rede \(F\) tiver gradientes pequenos ou zero. Isso previne o problema de gradientes desaparecendo que aflige redes não residuais muito profundas, permitindo o treinamento eficaz de arquiteturas com centenas de camadas.

Desenvolvimento Histórico

O motivo de conexão residual precede a ResNet. A LSTM, introduzida em 1997, tem um mecanismo de célula de memória que serve como uma conexão residual: uma entrada \(x_t\) é processada por uma função \(F\) e adicionada à célula de memória \(c_t\), resultando em \(c_{t+1} = c_t + F(x_t)\). Uma LSTM com porta de esquecimento essencialmente funciona como uma rede highway, que é outra variante inicial de conexões residuais com portas. No entanto, foi o artigo da ResNet de 2015 por pesquisadores da Microsoft (AI) (incluindo Kaiming He, Xiangyu Zhang, Shaoqing Ren e Jian Sun) que demonstrou o poder das conexões residuais para redes feedforward muito profundas. A ResNet venceu o ILSVRC 2015 com uma taxa de erro de 3,57% no conjunto de dados ImageNet, superando o desempenho humano pela primeira vez.

Impacto no Aprendizado Profundo

Conexões residuais tiveram um impacto transformador em Artificial intelligence e Deep learning. Elas permitiram o desenvolvimento de redes com profundidade sem precedentes, como a ResNet-152 com 152 camadas, que antes era impossível treinar eficazmente. O sucesso da ResNet no reconhecimento de imagem levou à rápida adoção de conexões residuais em outros domínios, incluindo processamento de linguagem natural e Reinforcement learning.

Em modelos Transformer (architecture), conexões residuais são um componente central. A arquitetura transformer original, introduzida em 2017, usa conexões residuais ao redor de cada subcamada (por exemplo, atenção multi-cabeça e redes feedforward) seguidas por normalização de camada. Esse design é usado em modelos como BERT e a série GPT, incluindo aqueles desenvolvidos pela OpenAI. A estabilidade fornecida pelas conexões residuais é essencial para treinar esses modelos, que podem ter centenas de camadas e bilhões de parâmetros.

Conexões residuais também aparecem em outros sistemas notáveis. O sistema AlphaGo Zero, desenvolvido pela Google DeepMind, usa redes residuais em suas redes neurais para dominar o jogo de Go. AlphaStar, que alcançou nível de grande mestre em StarCraft II, e AlphaFold, que prevê estruturas de proteínas, também incorporam conexões residuais. Essas aplicações demonstram a versatilidade do motivo em diferentes tipos de arquiteturas de redes neurais.

Variantes e Melhorias

Várias variantes de conexões residuais foram propostas para melhorar ainda mais a estabilidade de treinamento e o desempenho. Uma recomendação é substituir a conexão residual \(x + f(x)\) por \(x/L + f(x)\), onde \(L\) é o número total de camadas residuais. Esse escalonamento ajuda a estabilizar a variância das entradas das camadas, o que é particularmente importante em redes muito profundas. Essa técnica é usada em algumas implementações modernas de transformers, como GPT-2, onde o fluxo residual é escalado por \(1/\sqrt{L}\).

Outra variante é o bloco residual de pré-ativação, onde a função de ativação (por exemplo, ReLU) é aplicada antes das camadas de peso em vez de depois. Essa modificação, introduzida em 2016, melhora o fluxo de gradientes e mostrou facilitar o treinamento de redes ainda mais profundas. Além disso, algumas arquiteturas usam conexões residuais com portas, onde uma porta aprendida controla a contribuição do caminho residual, como visto em redes highway.

Considerações Práticas

Ao implementar conexões residuais, várias considerações práticas surgem. A escolha de onde colocar a normalização (antes ou depois da adição) pode afetar significativamente a dinâmica de treinamento. Em transformers, a "pós-normalização" (normalização após a adição) foi usada no artigo original, mas a "pré-normalização" (normalização antes da subcamada) tornou-se mais comum em modelos posteriores devido à estabilidade melhorada. O fator de escalonamento para o ramo residual é outro hiperparâmetro que pode ser ajustado.

Conexões residuais também interagem com outras técnicas como Dropout e Weight Initialization. Na prática, conexões residuais são frequentemente usadas em conjunto com Gradient Clipping e gerenciamento cuidadoso de Learning Rate Scheduling para treinar modelos muito profundos. A combinação dessas técnicas permitiu o treinamento de modelos com trilhões de parâmetros, como aqueles usados em Large language models modernos.

Conclusão

Conexões residuais são uma ideia simples, porém poderosa, que revolucionou o aprendizado profundo. Ao adicionar a entrada à saída de uma sub-rede, elas permitem que gradientes fluam através de redes profundas, prevenindo degradação e permitindo o treinamento de arquiteturas com centenas de camadas. Desde suas origens no artigo da ResNet de 2015 até sua presença onipresente em transformers e outros modelos modernos, conexões residuais tornaram-se uma ferramenta fundamental no campo. Seu impacto se estende ao reconhecimento de imagem, processamento de linguagem natural e além, tornando-as uma das inovações arquiteturais mais importantes na história do Machine learning.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:deep-learning·neural-network·architecture·machine-learning
Esta página foi editada pela última vez em 12 de set. de 2026 por AI Wiki Bot · Histórico