O que é o gradiente descendente?
Aplicar o gradiente descendente com watsonx.ai Inscreva-se para receber atualizações sobre tópicos de IA
Ilustração com colagem de pictogramas de nuvens, gráfico de pizza, pictogramas gráficos sobre o seguinte
O que é o gradiente descendente?

O gradiente descendente é um algoritmo de otimização que costuma ser usado para treinar modelos de aprendizado de máquina e redes neurais. Ele treina modelos de aprendizado de máquina minimizando os erros entre os resultados previstos e os reais.

Os dados de treinamento ajudam esses modelos a aprender com o tempo, e a função de custo na gradiente descendente atua especificamente como um barômetro, medindo sua precisão a cada iteração de atualizações de parâmetros. Até que a função esteja próxima ou igual a zero, o modelo continuará ajustando seus parâmetros para produzir o menor erro possível. Quando os modelos de aprendizado de máquina são otimizados quanto à precisão, eles podem ser ferramentas poderosas para aplicações de inteligência artificial (IA) e ciência da computação.

IBM é eleita a líder pela Gartner

Leia por que a IBM foi escolhida como líder no relatório Gartner Magic Quadrant™ de 2023 em serviços de desenvolvedor de IA em nuvem.

Conteúdo relacionado

Cadastre-se para receber o e-book no Presto

Como funciona o gradiente descendente?

Antes de nos aprofundarmos no gradiente descendente, pode ser útil revisar alguns conceitos de regressão linear. Você deve se lembrar da seguinte fórmula para a inclinação de uma linha, que é y = mx + b, em que m representa a inclinação e b é a interceptação no eixo y.

Você também deve se lembrar de ter traçado um gráfico de dispersão em estatística e encontrado a linha de melhor ajuste, o que exigiu o cálculo do erro entre a saída real e a saída prevista (y-hat) usando a fórmula de erro quadrático médio. O algoritmo do gradiente descendente se comporta de maneira semelhante, mas é baseado em uma função convexa.

O ponto de partida é apenas um ponto arbitrário para avaliarmos o desempenho. A partir desse ponto de partida, encontraremos a derivada (ou inclinação) e, a partir daí, podemos usar uma linha tangente para observar o nível da inclinação. A inclinação informará as atualizações dos parâmetros, ou seja, os pesos e a tendência. A inclinação no ponto de partida será mais íngreme, mas à medida que novos parâmetros são gerados, a inclinação deve reduzir gradualmente até atingir o ponto mais baixo da curva, conhecido como ponto de convergência.

Similar ao processo de encontrar a linha de melhor ajuste na regressão linear, o objetivo do gradiente descendente é minimizar a função de custo ou o erro entre o y previsto e o y real. Para fazer isso, são necessários dois pontos de dados: uma direção e uma taxa de aprendizado. Esses fatores determinam os cálculos das derivadas parciais das iterações futuras, o que permite alcançar gradualmente o mínimo local ou global (ou seja, o ponto de convergência).

  • A taxa de aprendizado (também chamada de tamanho da etapa ou alfa) é o tamanho das etapas necessárias para atingir o mínimo. Normalmente, esse é um valor pequeno e é avaliado e atualizado com base no comportamento da função de custo. Altas taxas de aprendizado resultam em etapas maiores, mas correm o risco de ultrapassar o mínimo. Por outro lado, uma taxa de aprendizado baixa tem tamanhos de etapas pequenos. Embora tenha a vantagem de maior precisão, o número de iterações compromete a eficiência geral, pois precisa de mais tempo e mais cálculos para atingir o mínimo.
  • A função de custo (ou perda) mede a diferença, ou erro, entre o y real e o y previsto na sua posição atual. Isso melhora a eficácia do modelo de aprendizado de máquina, fornecendo feedback ao modelo para que ele possa ajustar os parâmetros para minimizar o erro e encontrar o mínimo local ou global. Ele itera continuamente, movendo-se ao longo da direção da descida mais íngreme (ou do gradiente negativo) até que a função de custo esteja próxima ou em zero. Neste ponto, o modelo parará de aprender. Além disso, embora os termos função de custo e função de perda sejam considerados sinônimos, há uma pequena diferença entre eles. Vale a pena observar que uma função de perda se refere ao erro de um exemplo de treinamento, enquanto uma função de custo calcula o erro médio em todo um conjunto de treinamento.
Tipos de gradiente descendente

Existem três tipos de algoritmos de aprendizagem de gradiente descendente: gradiente descendente em lote, gradiente descendente estocástico e gradiente descendente em minilote.

Gradiente descendente em lote

O gradiente descendente em lote soma o erro de cada ponto em um conjunto de treinamento, atualizando o modelo somente depois que todos os exemplos de treinamento tiverem sido avaliados. Esse processo é conhecido como época de treinamento.

Embora esse agrupamento em lote proporcione eficiência computacional, ele ainda pode ter um longo tempo de processamento para grandes conjuntos de dados de treinamento, pois ainda precisa armazenar todos os dados na memória. O gradiente descendente em lote também costuma produzir um gradiente de erro estável e uma convergência, mas às vezes esse ponto de convergência não é o mais ideal, encontrando o mínimo local em vez do global.

Gradiente descendente estocástico
 

O gradiente descendente estocástico (SGD) executa uma época de treinamento para cada exemplo dentro do conjunto de dados e atualiza os parâmetros de cada exemplo de treinamento, um de cada vez. Como você só precisa manter um exemplo de treinamento, eles são mais fáceis de armazenar na memória. Embora essas atualizações frequentes possam oferecer mais detalhes e velocidade, elas podem resultar em perdas na eficiência computacional quando comparadas ao gradiente descendente em lote. Suas atualizações frequentes podem resultar em gradientes ruidosos, mas isso também pode ser útil para escapar do mínimo local e encontrar o global.

Gradiente descendente em minilote

O gradiente descendente em minilote combina conceitos do gradiente descendente em lote e do gradiente descendente estocástico. Ele divide o conjunto de dados de treinamento em lotes pequenos e executa atualizações em cada um desses lotes. Esta abordagem busca um equilíbrio entre a eficiência computacional do gradiente descendente em lote e a velocidade do gradiente descendente estocástico.

Desafios do gradiente descendente

Embora o gradiente descendente seja a abordagem mais comum para os problemas de otimização, ela tem seus próprios desafios. Alguns deles incluem:

Mínimos locais e pontos de sela

Para problemas convexos, o gradiente descendente pode encontrar o mínimo global com facilidade, mas à medida que surgem problemas não convexos, o gradiente descendente pode ter dificuldade para encontrar o mínimo global, onde o modelo obtém os melhores resultados.

Lembre-se de que quando a inclinação da função de custo é igual ou próxima de zero, o modelo para de aprender. Alguns cenários além do mínimo global também podem produzir esta inclinação, que são os mínimos locais e os pontos de sela. Os mínimos locais imitam a forma de um mínimo global, onde a inclinação da função de custo aumenta em ambos os lados do ponto atual. Porém, com pontos de sela, o gradiente negativo existe apenas em um lado do ponto, atingindo um máximo local de um lado e um mínimo local do outro. Seu nome é inspirado na sela de um cavalo.

Os gradientes ruidosos podem ajudar o gradiente a escapar dos mínimos locais e dos pontos de sela.

Gradientes de fuga e de explosão
 

Em redes neurais mais profundas, em particular nas redes neurais recorrentes, também podemos encontrar outros dois problemas quando o modelo é treinado com gradiente descendente e retropropagação.

  • Gradientes de fuga: ocorre quando o gradiente é muito pequeno. À medida que retrocedemos durante a retropropagação, o gradiente continua diminuindo, fazendo com que as camadas anteriores da rede aprendam mais lentamente do que as camadas posteriores. Quando isso acontece, os parâmetros de peso são atualizados até se tornarem insignificantes, ou seja, 0, resultando em um algoritmo que não está mais aprendendo.
  • Gradientes de explosão: acontece quando o gradiente é muito grande, criando um modelo instável. Nesse caso, os pesos do modelo ficarão muito grandes e, eventualmente, serão representados como NaN. Uma solução para esse problema é aproveitar uma técnica de redução de dimensionalidade, que pode ajudar a minimizar a complexidade do modelo.
  •  
Soluções relacionadas
Tecnologias orientadas por IA

Desde os fluxos de trabalho de negócios até as operações de TI, nós temos você coberto com automação alimentada por IA.Descubra como as empresas líderes estão se transformando.

Explore tecnologias orientadas por IA
Recursos Um algoritmo eficiente e distribuído de gradiente descendente estocástico para aplicações de deep learning

A IBM Research propõe um algoritmo de gradiente descendente estocástico distribuído e com sincronia em massa que permite a agregação esparsa de gradientes de aprendizes individuais.

Implementar o XGBoost em R

Implemente decision trees impulsionadas por gradiente usando o algoritmo XGBoost para executar uma tarefa de classificação.

Dê o próximo passo

Treine, valide, ajuste e implemente IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de próxima geração para construtores de IA. Crie aplicações de IA em menos tempo com menos dados.

Explore o watsonx.ai Agende uma demonstração em tempo real