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


Career Services background pattern

Serviços de carreira

Contact Section background image

Vamos manter-nos em contacto

Code Labs Academy © 2024 Todos os direitos reservados.