Pesquisa · Mapa mental

Retropropagação

A retropropagação (backpropagation) é um método fundamental no aprendizado de máquina para treinar redes neurais. Ela calcula eficientemente o gradiente da função de perda em relação aos parâmetros da rede, permitindo ajustar os pesos e vieses para melhorar a precisão do modelo. Essencialmente, a retropropagação propaga o erro da saída para a entrada, camada por camada, utilizando a regra da cadeia para determinar como cada parâmetro contribui para o erro total.

Fonte: Wikipédia (pt)Texto didático por IAAtualizado em 29/09/2026

Pontos-chave

  • A retropropagação calcula o gradiente da função de perda em redes neurais feedforward.
  • Utiliza a regra da cadeia para propagar o erro da saída para a entrada.
  • Permite o ajuste eficiente dos pesos e vieses da rede.
  • É um caso especial de diferenciação automática (acumulação reversa).
  • Funções de ativação diferenciáveis são cruciais para sua aplicação.
01

Visão Geral da Retropropagação

A retropropagação é um algoritmo para calcular o gradiente da função de perda em relação aos pesos de uma rede neural feedforward. Ela é amplamente utilizada para treinar redes neurais, ajustando seus parâmetros para minimizar o erro entre a saída prevista e a saída desejada. Para isso, a rede processa um conjunto de pares de entrada-saída, calculando a perda para cada par. A retropropagação não depende de uma função de perda ou de ativação específica, desde que ambas possam ser avaliadas eficientemente e suas derivadas calculadas. Funções de ativação comuns incluem sigmoide, tanh e ReLU, entre outras.

02

Multiplicação de Matrizes

No contexto de redes neurais feedforward simples, onde cada camada se conecta apenas à próxima, a retropropagação pode ser compreendida através da multiplicação de matrizes. O processo avalia a derivada da função de custo como um produto de derivadas de cada camada, da direita para a esquerda. O gradiente dos pesos em cada camada é obtido por uma modificação dos produtos parciais, conhecido como 'erro retropropagado'. Para realizar a retropropagação, é necessário armazenar em cache as ativações de cada camada e as derivadas das funções de ativação para uso na passagem reversa.

03

Retropropagação e Grafos

Para arquiteturas de rede mais complexas ou gerais, a retropropagação pode ser vista como um caso específico da diferenciação automática, utilizando o método de acumulação reversa (ou 'modo reverso'). Isso permite o cálculo eficiente de gradientes em grafos computacionais de qualquer estrutura.

04

Intuição e Motivação

A retropropagação é motivada pela necessidade de treinar redes neurais multicamadas para aprender mapeamentos arbitrários de entrada para saída. O aprendizado é visto como um problema de otimização, onde o objetivo é minimizar a diferença entre a saída prevista por um neurônio e a saída correta. Uma função de perda mede essa discrepância, e algoritmos como a descida de gradiente usam essa medida para ajustar os pesos.

Motivação

O objetivo principal do aprendizado supervisionado é encontrar uma função que mapeie corretamente as entradas para suas saídas. A retropropagação visa treinar redes neurais multicamadas para que elas desenvolvam representações internas adequadas, permitindo aprender qualquer mapeamento de entrada-saída desejado.

Aprendizado como Otimização

Para entender a retropropagação, é útil pensar no aprendizado como um processo de otimização. Em uma rede simples, os pesos são inicializados aleatoriamente. A rede aprende a partir de exemplos de treinamento (pares de entrada-saída correta). Uma função de perda quantifica a diferença entre a saída calculada e a saída correta. Para regressão, o erro quadrático é comum; para classificação, a entropia cruzada.

05

Derivação Matemática

A retropropagação é usada para calcular a derivada da função de perda em relação aos pesos da rede, um passo essencial na descida de gradiente. Utilizando a regra da cadeia, o gradiente é calculado para cada peso. A derivada da saída de um neurônio em relação à sua entrada é dada pela derivada da função de ativação. Isso explica por que funções de ativação diferenciáveis são importantes, embora variantes como a ReLU, não diferenciável em um ponto, também sejam usadas.

Encontrando a Derivada do Erro

O cálculo da derivada parcial do erro em relação a um peso específico (w_ij) é realizado aplicando a regra da cadeia duas vezes. O último fator na equação envolve a derivada da função de ativação do neurônio, destacando a necessidade de que essa função seja diferenciável. Para a camada de entrada, a saída do neurônio anterior é simplesmente a entrada da rede.

06

História da Retropropagação

A retropropagação, embora formalizada em sua forma moderna mais tarde, tem raízes em conceitos matemáticos anteriores, como a regra da cadeia. Sua aplicação a redes neurais foi desenvolvida e refinada ao longo do tempo, com marcos importantes em sua publicação e aplicações práticas que demonstraram sua eficácia.

07

Função de perda

A função de perda é uma função que mapeia valores de uma ou mais variáveis para um número real representando intuitivamente algum "custo" associado a esses valores. Para a retropropagação, a função de perda calcula a diferença entre a saída da rede e a sua saída esperada, depois que um exemplo de treinamento se propagou pela rede.

Pressupostos

A expressão matemática da função de perda deve satisfazer duas condições para que possa ser usada na retropropagação. O primeiro é que ela pode ser escrita como uma média E = 1 n ∑ x E x {\textstyle E={\frac {1}{n}}\sum _{x}E_{x}} sobre as funções de erro E x {\textstyle E_{x}} , para n {\textstyle n} exemplos de treinamento individuais, x {\textstyle x} . A razão para este pressuposto é que o algoritmo de retropropagação calcula o gradiente da função de erro para um único exemplo de treinamento, o qual precisa ser generalizado para a função de erro geral. O segundo pressuposto é que ela pode ser escrita como uma função das saídas da rede neural.

Exemplo de função de perda

Sejam y , y ′ {\displaystyle y,y'} vetores em R n {\displaystyle \mathbb {R} ^{n}} . Selecione uma função de erro E ( y , y ′ ) {\displaystyle E(y,y')} que meça a diferença entre duas saídas. A escolha padrão é o quadrado da distância euclidiana entre os vetores y {\displaystyle y} e y ′ {\displaystyle y'} : E ( y , y ′ ) = 1 2 ‖ y − y ′ ‖ 2 {\displaystyle E(y,y')={\tfrac {1}{2}}\lVert y-y'\rVert ^{2}} A função de erro sobre n {\textstyle n} exemplos de treinamento pode então ser escrita como uma média das perdas sobre exemplos individuais: E = 1 2 n ∑ x ‖ ( y ( x ) − y ′ ( x ) ) ‖ 2 {\displaystyle E={\frac {1}{2n}}\sum _{x}\lVert (y(x)-y'(x))\rVert ^{2}}

08

História

Precursores

A retropropagação foi derivada repetidamente, pois é essencialmente uma aplicação eficiente da regra da cadeia (escrita pela primeira vez por Gottfried Wilhelm Leibniz em 1676) para as redes neurais. A terminologia "correção de erro de retropropagação" foi introduzida em 1962 por Frank Rosenblatt, mas ele não sabia como implementá-la. De qualquer forma, ele apenas estudou neurônios cujas saídas eram níveis discretos, que tinham apenas derivadas nulas, tornando a retropropagação impossível. Precursores da retropropagação apareceram na teoria do controle ótimo desde a década de 1950. Yann LeCun et al creditam o trabalho da década de 1950 de Pontryagin e outros na teoria do controle ótimo, especialmente o método do estado adjunto, por ser uma versão em tempo contínuo da retropropagação. Hecht-Nielsen credita o algoritmo de Robbins-Monro (1951) e o Applied Optimal Control (1969) de Arthur Bryson e Yu-Chi Ho como presságios da retropropagação. Outros precursores foram Henry J. Kelley em 1960, e Arthur E. Bryson (1961). Em 1962, Stuart Dreyfus publicou uma derivação mais simples baseada apenas na regra da cadeia. Em 1973, ele adaptou parâmetros de controladores proporcionalmente aos gradientes de erro. Ao contrário da retropropagação moderna, esses precursores usaram cálculos de matriz Jacobiana padrão de um estágio para o anterior, não abordando ligações diretas por vários estágios nem os potenciais ganhos de eficiência adicionais devido à esparsidade da rede.

Retropropagação moderna

A retropropagação moderna foi publicada pela primeira vez por Seppo Linnainmaa como "modo reverso da diferenciação automática" (1970) para redes conectadas discretas de funções aninhadas diferenciáveis. Em 1982, Paul Werbos aplicou a retropropagação a MLPs da maneira que se tornou padrão. Werbos descreveu como desenvolveu a retropropagação em uma entrevista. Em 1971, durante o seu doutorado, desenvolveu a retropropagação para matematizar o "fluxo de energia psíquica" de Freud. Ele enfrentou repetidas dificuldades em publicar o trabalho, conseguindo apenas em 1981. Ele também afirmou que "a primeira aplicação prática da retropropagação foi para estimar um modelo dinâmico para prever o nacionalismo e as comunicações sociais em 1974" por ele.

Sucessos iniciais

Várias aplicações no treinamento de redes neurais através da retropropagação contribuíram para a sua aceitação, por vezes alcançando popularidade fora dos círculos de pesquisa. Em 1987, a NETtalk aprendeu a converter texto em inglês em pronúncia. Sejnowski tentou treiná-la tanto com a retropropagação quanto com a máquina de Boltzmann, mas concluiu que a retropropagação era significativamente mais rápida e, por isso, utilizou-a para a NETtalk final.: O programa NETtalk tornou-se um sucesso popular, aparecendo no programa Today. Em 1989, Dean A. Pomerleau publicou o ALVINN, uma rede neural treinada para conduzir autonomamente usando a retropropagação.

Após a retropropagação

Durante a década de 2000 o método perdeu popularidade, mas retornou na década de 2010, beneficiando de sistemas de computação baseados em GPUs que eram potentes e baratos. Isto verificou-se especialmente na identificação de voz, visão computacional, processamento de linguagem natural e em pesquisas de aprendizagem de estrutura linguística (onde tem sido utilizado para explicar uma variedade de fenómenos relacionados com a aprendizagem da primeira e segunda língua.) Sugeriu-se que a retropropagação de erros explica os componentes do potencial relacionado a eventos (ERP) do cérebro humano, como o N400 e o P600. Em 2023, um algoritmo de retropropagação foi implementado num processador fotônico por uma equipa da Universidade de Stanford.

Vídeos recomendados

Fontes consultadas

Continue pesquisando