O que é o gradiente descendente?

O que é o gradiente descendente?

O gradiente descendente é um algoritmo de otimização comumente usado para treinar modelos de aprendizado de máquinaredes neurais. Ele treina modelos de aprendizado de máquina ao minimizar os erros entre os resultados previstos e os reais.

Os dados de treinamento ajudam esses modelos a aprender ao longo do tempo, e a função de custo dentro da descida do gradiente atua especificamente como um barômetro, avaliando sua precisão a cada iteração de atualização de parâmetros. Até que a função esteja próxima ou igual a zero, o modelo continuará ajustando seus parâmetros para obter o menor erro possível. Uma vez que os modelos de aprendizado de máquina são otimizados para precisão, eles podem se tornar ferramentas poderosas para aplicações de inteligência artificial (IA) e ciência da computação.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

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 usado para avaliar o desempenho. A partir desse ponto inicial, encontramos a derivada (ou inclinação) e, a partir dela, podemos usar uma linha tangente para observar a inclinação da curva. A inclinação informará as atualizações nos parâmetros, ou seja, os pesos e o viés. A inclinação no ponto de partida será mais acentuada, mas à medida que novos parâmetros são gerados, a inclinação deve gradualmente diminuir 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.

Descida gradiente estocástica

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 de 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.

Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

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 que desaparecem e explodem

Em redes neurais mais profundas, particularmente redes neurais recorrentes, podemos também encontrar dois outros problemas ao treinar o modelo com descida do gradiente 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
IBM watsonx.ai

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

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

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