Redes neurais residuais, comumente conhecidas como ResNet, são uma classe de arquiteturas de aprendizado profundo que permitem o treinamento de redes neurais muito profundas, introduzindo conexões de salto que adicionam a entrada de uma camada à sua saída. A arquitetura foi desenvolvida em 2015 para reconhecimento de imagens e venceu o Desafio de Reconhecimento Visual em Larga Escala da ImageNet (ILSVRC) daquele ano. A inovação-chave é a conexão residual, que permite que as camadas aprendam funções residuais em referência às entradas das camadas, estabilizando o treinamento e permitindo redes com centenas de camadas.
O motivo da conexão residual, definido como \(x \mapsto f(x) + x\), já havia sido usado em modelos anteriores, mas a publicação da ResNet o tornou amplamente popular para redes feedforward. Desde então, tornou-se um componente comum em muitas arquiteturas de redes neurais profundas, incluindo modelos de transformadores, como BERT e GPT, bem como em sistemas como AlphaGo Zero, AlphaStar e AlphaFold.
Conexão Residual
Em uma rede neural multicamadas, considere uma sub-rede com algumas camadas empilhadas, denotada como \(H(x; \alpha)\), onde \(x\) é a entrada e \(\alpha\) são os parâmetros. No aprendizado padrão, a sub-rede visa aproximar uma saída desejada \(H^(x)\). O aprendizado residual modifica a sub-rede para produzir \(F(x; \alpha) = H(x; \alpha) - x\), de modo que a função aprendida se torne \(H^(x) = F(x; \alpha) + x\). Isso é implementado por meio de 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 é chamada de conexão residual. A sub-rede, juntamente com a conexão de salto, forma um bloco residual. Uma rede residual profunda é construída empilhando vários desses blocos.
A conexão residual estabiliza o treinamento ao facilitar o fluxo do gradiente, o que é particularmente importante para redes com centenas de camadas. Redes de Memória de Curto Prazo Longo (LSTM) têm um mecanismo de memória que atua como uma conexão residual: em uma LSTM sem porta de esquecimento, a regra de atualização é \(c_{t+1} = c_t + F(x_t)\), onde \(c_t\) é o estado da célula e \(F\) é uma função da entrada. Uma LSTM com uma porta de esquecimento funciona de forma semelhante a uma rede de rodovia. Para estabilizar a variância, é recomendado escalar a conexão residual por \(1/L\), onde \(L\) é o número total de camadas residuais, resultando em \(x/L + F(x)\).
Conexão de Projeção
Quando a função \(F\) mapeia de \(\mathbb{R}^n\) para \(\mathbb{R}^m\) com \(n \neq m\), a adição \(F(x) + x\) é indefinida. Nesses casos, 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\). A matriz \(M\) é treinada por meio de retropropagação junto com os outros parâmetros do modelo.
Propagação de Sinal
O mapeamento de identidade nas conexões residuais facilita a propagação de sinal tanto nas direções direta quanto reversa. Na passagem direta, se a saída do \(\ell\)-ésimo bloco residual for a entrada para o bloco \((\ell+1)\)-ésimo (assumindo nenhuma ativação entre blocos), então a entrada para o próximo bloco é \(x_{\ell+1} = F(x_\ell) + x_\ell\). Essa estrutura aditiva permite que a informação flua diretamente através da rede, mitigando o problema do gradiente evanescente.
Impacto no Aprendizado Profundo
A introdução da ResNet em 2015 marcou um avanço significativo no aprendizado profundo. Antes da ResNet, treinar redes muito profundas era desafiador devido à degradação na precisão à medida que a profundidade aumentava. A estrutura de aprendizado residual da ResNet abordou isso reformulando as camadas como funções residuais de aprendizado, que são mais fáceis de otimizar. A arquitetura alcançou resultados de última geração no desafio ILSVRC 2015, com uma taxa de erro de 3,57% no conjunto de teste da ImageNet, superando o desempenho humano em algumas tarefas.
O sucesso da ResNet estimulou o desenvolvimento de arquiteturas ainda mais profundas, como ResNet-50, ResNet-101 e ResNet-152, que são amplamente usadas como redes de base em tarefas de visão computacional, como detecção de objetos e segmentação. O conceito de conexão residual foi adotado em vários outros domínios, incluindo processamento de linguagem natural e aprendizado por reforço.
Legado e Influência
A conexão residual tornou-se um bloco de construção fundamental no design moderno de redes neurais. É um componente-chave em arquiteturas de transformadores, que alimentam grandes modelos de linguagem, como GPT e BERT. A técnica também é usada em sistemas como AlphaGo Zero, AlphaStar e AlphaFold, demonstrando sua versatilidade em diferentes tipos de redes neurais.
A publicação do artigo da ResNet, intitulado "Deep Residual Learning for Image Recognition" (Aprendizado Residual Profundo para Reconhecimento de Imagens), foi escrita por Kaiming He, Xiangyu Zhang, Shaoqing Ren e Jian Sun. Tornou-se um dos artigos mais citados em visão computacional e aprendizado profundo, influenciando pesquisas subsequentes sobre arquitetura de redes e estabilidade de treinamento.