Descida de gradiente e descida de gradiente estocástica na aprendizagem automática

Gradient Descent vs SGD
Algoritmos de otimização na aprendizagem automática
Treino eficiente de modelos

Atualizado em June 05, 20244 Minutos Leia

Explorando Gradient Descent e SGD: Algoritmos chave para a otimização da aprendizagem automática cover image

A descida de gradiente e a descida de gradiente estocástica (SGD) são algoritmos de otimização utilizados para minimizar uma função, normalmente associada à minimização do erro num modelo.

As principais diferenças entre os dois são as seguintes:

Descida de gradiente (GD)

  • Na descida de gradiente padrão, o algoritmo calcula o gradiente da função de custo utilizando todo o conjunto de dados de treino.

  • Actualiza os parâmetros do modelo através de passos proporcionais ao negativo do gradiente de todo o conjunto de dados.

  • Este método garante a convergência para o mínimo (dadas certas condições como a convexidade e taxas de aprendizagem adequadas) mas pode ser computacionalmente dispendioso para grandes conjuntos de dados.

Descida de gradiente estocástica (SGD)

  • Na descida gradiente estocástica, o algoritmo actualiza os parâmetros do modelo utilizando o gradiente da função de custo para cada exemplo de treino individual.

  • Faz actualizações frequentes com base em exemplos de treino únicos ou em pequenos lotes, o que o torna muito mais rápido do que a descida de gradiente para grandes conjuntos de dados.

  • No entanto, devido às suas actualizações com ruído, o SGD tem mais flutuações e não converge necessariamente para o mínimo absoluto

Quando utilizar um em vez do outro:

  • Descida de gradiente (GD): É adequado quando o conjunto de dados é relativamente pequeno e pode caber na memória. Se a função de custo for suave e bem comportada, o GD pode convergir eficientemente para o mínimo.

  • Descida de gradiente estocástica (SGD): É preferível quando se lida com grandes conjuntos de dados em que o cálculo de gradientes para todo o conjunto de dados se torna computacionalmente dispendioso. Também é útil em cenários em que a função de custo tem muitos mínimos locais, uma vez que o ruído do SGD nas actualizações pode ajudar a escapar a mínimos locais pouco profundos. Além disso, o SGD é normalmente utilizado no treino de redes neurais devido aos seus vastos conjuntos de dados e espaços de parâmetros de elevada dimensão.

Além disso, variações como a descida de gradiente em mini-batch, que equilibra as vantagens do GD e do SGD ao considerar um subconjunto dos dados para cada atualização, são frequentemente utilizadas na prática. A escolha entre estes algoritmos depende frequentemente dos recursos computacionais, da dimensão do conjunto de dados e das características específicas do problema.

Considere uma carreira tecnológica - Saiba mais sobre os bootcamps online do CLA

Career Services background pattern

Serviços de carreira

Contact Section background image

Vamos manter-nos em contacto

Code Labs Academy © 2025 Todos os direitos reservados.