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

A retropropagação, abreviatura de "backward propagation of errors", é um algoritmo fundamental para o treino de redes neuronais artificiais (NN), especialmente no domínio da aprendizagem profunda (DL). Funciona como o mecanismo central que permite que os modelos aprendam com seus erros durante o processo de treinamento do modelo. O algoritmo calcula com eficiência a contribuição de cada parâmetro (como pesos e vieses do modelo ) dentro da rede para o erro geral observado nas previsões do modelo. Esta informação de gradiente é então utilizada por algoritmos de otimização para ajustar os parâmetros iterativamente, melhorando progressivamente o desempenho e a precisão do modelo.

Como funciona a retropropagação

O processo de retropropagação segue normalmente uma passagem inicial para a frente, em que os dados de entrada fluem através da rede para gerar uma previsão. Depois de comparar a previsão com o valor-alvo real usando uma função de perda, o algoritmo de retropropagação é executado em duas fases principais:

  1. Passa adiante: Os dados de entrada são introduzidos na rede neural, passando por camadas de neurónios, cada uma aplicando os seus pesos, polarizações e uma função de ativação (como ReLU ou Sigmoide), até ser gerada uma previsão de saída.
  2. Passa para trás: O algoritmo calcula o erro (a diferença entre a previsão e o valor real) usando a função de perda escolhida. Em seguida, propaga esse sinal de erro para trás através da rede, camada por camada. Usando a regra da cadeia do cálculo, calcula o gradiente da função de perda em relação a cada peso e viés na rede. Esse gradiente representa o quanto uma pequena alteração em cada parâmetro afetaria o erro geral. Para uma compreensão visual, recursos como "Calculus on Computational Graphs" oferecem explicações úteis.

Depois que os gradientes são calculados, um algoritmo de otimização, como o Gradient Des cent ou variantes como o Stochastic Gradient Descent (SGD) ou o otimizador Adam, usa esses gradientes para atualizar os weights and biases da rede. O objetivo é minimizar a função de perda, ensinando efetivamente a rede a fazer previsões melhores em épocas sucessivas.

Importância na aprendizagem profunda

A retropropagação é indispensável para a aprendizagem profunda moderna. A sua eficiência no cálculo de gradientes torna o treino de arquitecturas muito profundas e complexas computacionalmente viável. Isso inclui modelos como Redes Neurais Convolucionais (CNNs), que se destacam em tarefas de visão computacional (CV), e Redes Neurais Recorrentes (RNNs), comumente usadas para dados sequenciais, como no Processamento de Linguagem Natural (PLN). Sem a retropropagação, o ajuste de milhões de parâmetros em modelos grandes como o GPT-4 ou aqueles treinados em conjuntos de dados maciços como o ImageNet seria impraticável. Capacita os modelos a aprender automaticamente caraterísticas complexas e representações hierárquicas de dados, sustentando muitos avanços de IA desde a sua popularização, conforme detalhado nos recursos que cobrem a história da Aprendizagem Profunda. Frameworks como PyTorch e TensorFlow dependem fortemente de mecanismos de diferenciação automática que implementam a retropropagação.

Algoritmos de retropropagação vs. algoritmos de otimização

É importante distinguir a retropropagação dos algoritmos de otimização. A retropropagação é o método utilizado para calcular os gradientes (a contribuição do erro de cada parâmetro). Os algoritmos de otimização, por outro lado, são as estratégias que utilizam estes gradientes calculados para atualizar os parâmetros do modeloweights and biases) de forma a minimizar a perda. A retropropagação fornece a direção para a melhoria, enquanto o optimizador determina o tamanho do passo(taxa de aprendizagem) e a forma da atualização.

Aplicações no mundo real

A retropropagação é implicitamente utilizada sempre que um modelo de aprendizagem profunda é submetido a treino. Aqui tens dois exemplos concretos:

  1. Deteção de objectos com o Ultralytics YOLO: Quando treinas um Ultralytics YOLO do Ultralytics (como o YOLOv8 ou YOLO11) para deteção de objetos em um conjunto de dados como COCO, a retropropagação é usada em cada iteração de treinamento. Depois de o modelo prever as caixas delimitadoras e as classes, calcula a perda (por exemplo, comparando as caixas previstas com a verdade terrestre). A retropropagação calcula os gradientes para todos os pesos ao longo da espinha dorsal do modelo e da cabeça de deteção. Um optimizador utiliza então estes gradientes para ajustar os pesos, melhorando a capacidade do modelo para localizar e classificar objectos com precisão. Os utilizadores podem tirar partido de plataformas como o Ultralytics HUB para gerir este processo de formação, beneficiando de implementações eficientes de retropropagação. Isto é crucial para aplicações que vão desde veículos autónomos a sistemas de segurança.
  2. Modelos de processamento de linguagem natural: Os modelos de linguagem de grande dimensão (LLMs), como os modelos BERT e GPT, são treinados utilizando a retropropagação. Por exemplo, numa tarefa de análise de sentimentos, o modelo prevê o sentimento (positivo, negativo, neutro) de um determinado texto. A diferença entre o sentimento previsto e o rótulo real resulta num valor de erro. A retropropagação calcula o quanto cada parâmetro da vasta rede contribuiu para esse erro. Os algoritmos de otimização actualizam então estes parâmetros, permitindo que o modelo compreenda melhor as nuances linguísticas, o contexto e o sentimento ao longo da formação. Grupos de investigação académica como o grupo de PNL de Stanford exploram e aperfeiçoam continuamente estas técnicas.
Lê tudo