Glossário

Retropropagação

Aprende como a retropropagação treina redes neurais, reduz as taxas de erro e alimenta eficazmente as aplicações de IA, como o reconhecimento de imagens e a PNL.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Backpropagation, abreviação de "backward propagation of errors" (propagação de erros para trás), é um algoritmo fundamental usado para treinar redes neurais artificiais, especialmente no aprendizado profundo. É o motor que permite que os modelos aprendam com os seus erros, calculando de forma eficiente quanto cada parâmetro (peso e polarização) na rede contribuiu para o erro global nas previsões. Esta informação é depois utilizada por algoritmos de otimização para ajustar os parâmetros e melhorar o desempenho do modelo ao longo do tempo durante o treino do modelo.

Como funciona a retropropagação

O processo envolve duas fases principais após uma previsão inicial:

  1. Passa adiante: Os dados de entrada são alimentados através da rede, camada a camada, activando os neurónios e aplicando os pesos do modelo até ser gerado um resultado (previsão).
  2. Cálculo do erro: A diferença entre a previsão da rede e o valor-alvo real (verdade terrestre) é calculada usando uma função de perda. Essa perda quantifica o quanto a previsão estava errada. Um recurso comum para entender isso é o capítulo do livro Deep Learning sobre MLP.
  3. Passa para trás: É aqui que a retropropagação realmente acontece. A partir da camada de saída, o algoritmo calcula o gradiente da função de perda em relação aos weights and biases de cada camada. Usa a regra da cadeia do cálculo para propagar eficientemente o sinal de erro para trás através da rede, camada por camada. Determina o quanto cada parâmetro precisa ser alterado para reduzir o erro geral. Visualizações como as de "Cálculo em gráficos computacionais" podem ajudar a ilustrar esse fluxo.
  4. Atualização dos pesos: Os gradientes calculados são depois utilizados por um algoritmo de otimização, como o Gradient Descent ou variantes mais avançadas como o Adam, para atualizar os weights and biases da rede, levando o modelo a fazer melhores previsões na iteração seguinte.

Importância na aprendizagem profunda

A retropropagação é fundamental para o sucesso da aprendizagem profunda moderna. Permite o treinamento de arquiteturas muito profundas e complexas, como as Redes Neurais Convolucionais (CNNs), usadas extensivamente em visão computacional, e as Redes Neurais Recorrentes (RNNs), usadas para dados sequenciais como texto. Sem uma forma eficiente de calcular gradientes como a retropropagação fornece, o treinamento desses modelos grandes seria computacionalmente inviável. Permite que os modelos aprendam automaticamente caraterísticas e relações complexas a partir de grandes quantidades de dados, formando a base de muitos avanços de IA desde a sua popularização na década de 1980, detalhados em recursos que abrangem a história da Aprendizagem Profunda.

Aplicações no mundo real

A retropropagação é implicitamente utilizada sempre que um modelo de aprendizagem profunda é treinado. Aqui estão dois exemplos:

  1. Deteção de objectos: Modelos como Ultralytics YOLO são treinados utilizando a retropropagação. Quando o modelo identifica incorretamente um objeto ou coloca uma caixa delimitadora de forma incorrecta numa imagem de conjuntos de dados como o COCO, a retropropagação calcula os gradientes necessários para ajustar os pesos do modelo, melhorando a sua capacidade de efetuar a deteção de objectos com precisão.
  2. Processamento de linguagem natural (PNL): O treino de grandes modelos de linguagem como o BERT ou o GPT para tarefas como a tradução automática ou a análise de sentimentos baseia-se fortemente na retropropagação. Ajusta os parâmetros do modelo para minimizar a diferença entre o texto gerado e o resultado desejado, permitindo que estes modelos compreendam e gerem linguagem semelhante à humana. O grupo de PNL de Stanford fornece muitos recursos sobre estes tópicos.

Conceitos relacionados

Embora intimamente relacionado, o Backpropagation é diferente do Gradient Descent. O Backpropagation é o algoritmo específico para calcular os gradientes da função de perda em relação aos parâmetros da rede. O Gradiente Descendente (e suas variantes) é o algoritmo de otimização que usa esses gradientes calculados para atualizar iterativamente os parâmetros e minimizar a perda. A retropropagação pode, às vezes, sofrer de problemas como o problema do gradiente de desaparecimento, especialmente em redes muito profundas, embora técnicas como o uso de funções de ativação ReLU e conexões residuais ajudem a atenuar esse problema.

Lê tudo