Glossário

Descida de gradiente

Descobre como o Gradient Descent optimiza modelos de IA como Ultralytics YOLO , permitindo previsões precisas em tarefas que vão desde os cuidados de saúde até aos carros autónomos.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

O Gradient Descent é um algoritmo de otimização fundamental amplamente utilizado na aprendizagem automática (ML) e na inteligência artificial (IA). Serve como método principal para treinar muitos modelos, incluindo arquitecturas complexas de aprendizagem profunda como Ultralytics YOLO. O objetivo do Gradient Descent é ajustar iterativamente os parâmetros internos do modelo (frequentemente designados por pesos e enviesamentos do modelo ) para minimizar uma função de perda, que mede a diferença entre as previsões do modelo e os valores-alvo reais. Imagina que tentas encontrar o ponto mais baixo de um vale com os olhos vendados; o Gradient Descent guia-te avaliando o declive (gradiente) na tua posição atual e dando pequenos passos na direção descendente mais íngreme. Este processo iterativo permite que os modelos aprendam com os dados e melhorem a sua precisão de previsão.

Relevância na aprendizagem automática

O Gradient Descent é particularmente crucial para o treino de modelos sofisticados, como as redes neuronais (NNs), que constituem a base de muitas aplicações modernas de IA. Estes modelos, incluindo os utilizados para deteção de objectos, classificação de imagens e processamento de linguagem natural (PNL), têm frequentemente milhões ou mesmo milhares de milhões de parâmetros que necessitam de otimização. O Gradiente Descendente, juntamente com as suas variantes, fornece uma forma computacionalmente viável de navegar no complexo cenário de perdas (a superfície de alta dimensão que representa o valor da perda para todas as combinações possíveis de parâmetros) e encontrar valores de parâmetros que produzam um bom desempenho. Sem uma otimização eficaz através da Descida do Gradiente, o treino destes modelos de grande dimensão para níveis de precisão elevados seria impraticável. Os principais frameworks de ML, como PyTorch e TensorFlow dependem fortemente de várias implementações de Gradient Descent e algoritmos relacionados, como backpropagation, para calcular os gradientes necessários. Podes explorar as dicas de formação de modelos para obteres informações sobre como otimizar este processo.

Conceitos-chave e variantes

A ideia central do Gradient Descent consiste em calcular o gradiente (a direção da subida mais íngreme) da função de perda em relação aos parâmetros do modelo e, em seguida, dar um passo na direção oposta (descida). O tamanho deste passo é controlado pela taxa de aprendizagem, um hiperparâmetro crítico que determina a rapidez com que o modelo aprende. Uma taxa de aprendizagem demasiado pequena pode levar a uma convergência lenta, enquanto uma taxa demasiado grande pode fazer com que o processo de otimização ultrapasse o mínimo ou até mesmo divirja. Existem diversas variações do Gradient Descent, que diferem principalmente na quantidade de dados usados para calcular o gradiente em cada etapa:

  • Descida de gradiente em lote (BGD): Calcula o gradiente utilizando todo o conjunto de dados de treino. Isto fornece uma estimativa precisa do gradiente, mas pode ser computacionalmente muito caro e lento para grandes conjuntos de dados.
  • Descida de gradiente estocástica (SGD): Atualiza os parâmetros usando o gradiente calculado a partir de apenas um único exemplo de treinamento em cada etapa. É muito mais rápido e pode escapar de mínimos locais superficiais, mas as atualizações são ruidosas, levando a um caminho de convergência menos estável.
  • Descida de Gradiente em Mini-batch: Um compromisso entre BGD e SGD. Calcula o gradiente usando um subconjunto pequeno e aleatório (mini-lote) dos dados de treinamento (controlado pelo hiperparâmetro do tamanho do lote ). Equilibra a precisão da BGD com a eficiência da SGD e é a variante mais comum utilizada na aprendizagem profunda.
  • Optimizadores adaptativos: Algoritmos como Adam(link para o artigo), Adagrad e RMSprop ajustam automaticamente a taxa de aprendizagem para cada parâmetro durante o treinamento, muitas vezes levando a uma convergência mais rápida e a um melhor desempenho em comparação com o SGD básico ou o GD em mini-lote. Estes são frequentemente utilizados em plataformas como o Ultralytics HUB para modelos de treino. Mais detalhes sobre as variantes podem ser encontrados na página Gradient Descent da Wikipedia.

Diferenças em relação a conceitos relacionados

O Gradient Descent é um tipo específico de algoritmo de otimização, centrado na minimização iterativa de uma função de perda através do ajuste dos parâmetros do modelo utilizando gradientes. Difere de outros conceitos importantes no treinamento de modelos:

Aplicações no mundo real

O Gradient Descent é o motor por detrás dos modelos de treino de inúmeras aplicações de IA do mundo real, permitindo que os modelos aprendam a partir de grandes quantidades de dados em cenários de aprendizagem supervisionada e não só:

  1. Análise de imagens médicas: Na IA na área da saúde, o Gradient Descent treina Redes Neuronais Convolucionais (CNNs) para tarefas como a análise de imagens médicas. Por exemplo, optimiza modelos para detetar tumores ou anomalias em raios X, tomografias computorizadas ou ressonâncias magnéticas, minimizando a diferença entre a segmentação ou classificação prevista pelo modelo e a verdade fundamental fornecida pelos radiologistas(ver exemplo de publicação no blogue). Revistas como Radiology: Artificial Intelligence mostram esses avanços.
  2. Sistemas de recomendação: Empresas como a Netflix e a Amazon utilizam algoritmos de recomendação treinados com Gradient Descent. Estes algoritmos aprendem as preferências dos utilizadores e as caraterísticas dos itens, minimizando uma função de perda que prevê as classificações dos utilizadores ou a probabilidade de interação, o que lhes permite sugerir filmes, produtos ou conteúdos relevantes.
  3. Veículos autónomos: Os modelos utilizados em veículos autónomos para tarefas de perceção, como a identificação de peões, carros e faixas de rodagem utilizando caixas delimitadoras, são treinados utilizando Gradient Descent. Esta otimização é fundamental para a segurança e fiabilidade da tecnologia de condução autónoma, como se vê em sistemas desenvolvidos por empresas como a Waymo. Isto é altamente relevante para a IA no sector automóvel.
Lê tudo