Algoritmo de descida de gradiente: metodologia, variantes e melhores práticas
Publicados: 2020-07-28A otimização é parte integrante do aprendizado de máquina. Quase todos os algoritmos de aprendizado de máquina têm uma função de otimização como um segmento crucial. Como a palavra sugere, a otimização no aprendizado de máquina é encontrar a solução ideal para a declaração de um problema.
Neste artigo, você lerá sobre um dos algoritmos de otimização mais usados, o gradiente descendente. O algoritmo de gradiente descendente pode ser usado com qualquer algoritmo de aprendizado de máquina e é fácil de compreender e implementar. Então, o que exatamente é gradiente descendente? Ao final deste artigo, você terá uma compreensão mais clara do algoritmo de gradiente descendente e como ele pode ser usado para atualizar os parâmetros do modelo.
Índice
Gradiente descendente
Antes de se aprofundar no algoritmo de gradiente descendente, você deve saber o que é a função de custo. A função de custo é uma função usada para medir o desempenho do seu modelo para um determinado conjunto de dados. Ele encontra a diferença entre o valor previsto e o valor esperado, quantificando assim a margem de erro.
O objetivo é reduzir a função custo para que o modelo seja preciso. Para atingir esse objetivo, você precisa encontrar os parâmetros necessários durante o treinamento do seu modelo. Descida de gradiente é um desses algoritmos de otimização usado para encontrar os coeficientes de uma função para reduzir a função de custo. O ponto em que a função de custo é mínimo é conhecido como mínimo global.
Fonte
A intuição por trás do algoritmo Gradient Descent
Suponha que você tenha uma tigela grande semelhante a algo em que você tem suas frutas. Essa tigela é o gráfico para a função de custo. O fundo da tigela é o melhor coeficiente para o qual a função de custo é mínima. Valores diferentes são usados como coeficientes para calcular a função de custo. Este passo é repetido até que os melhores coeficientes sejam encontrados.

Você pode imaginar a descida do gradiente como uma bola rolando por um vale. O vale é o gráfico para a função de custo aqui. Você quer que a bola chegue ao fundo do vale, onde o fundo do vale representa a função de menor custo. Dependendo da posição inicial da bola, ela pode repousar em muitos fundos do vale. No entanto, esses fundos podem não ser os pontos mais baixos e são conhecidos como mínimos locais.
Fonte
Leia: Impulsionando o aprendizado de máquina: o que é, funções, tipos e recursos
Algoritmo de Descida Gradiente - Metodologia
O cálculo do gradiente descendente começa com os valores iniciais dos coeficientes para a função sendo definidos como 0 ou um pequeno valor aleatório.
coeficiente = 0 (ou um valor pequeno)
- A função de custo é calculada colocando esse valor do coeficiente na função.
Função de custo = f(coeficiente)
- Sabemos pelo conceito de cálculo que a derivada de uma função é a inclinação da função. Calcular a inclinação ajudará você a descobrir a direção para mover os valores dos coeficientes. A direção deve ser tal que você obtenha um custo (erro) menor na próxima iteração.
del = derivada(função de custo)
- Depois de conhecer a direção da descida da encosta, você atualiza os valores dos coeficientes de acordo. Uma taxa de aprendizado (alfa) pode ser selecionada para controlar o quanto esses coeficientes mudarão em cada iteração. Você precisa ter certeza de que essa taxa de aprendizado não é muito alta nem muito baixa.
coeficiente = coeficiente – (alfa * del)

- Este processo é repetido até que a função de custo se torne 0 ou muito próxima de 0.
f(coeficiente) = 0 (ou próximo de 0)
A seleção da taxa de aprendizagem é importante. A seleção de uma taxa de aprendizado muito alta pode ultrapassar os mínimos globais. Pelo contrário, uma taxa de aprendizado muito baixa pode ajudá-lo a alcançar os mínimos globais, mas a convergência é muito lenta, levando muitas iterações.
Fonte
Variantes do algoritmo de descida de gradiente
Descida do gradiente em lote
Descida de gradiente em lote é uma das variantes mais usadas do algoritmo de descida de gradiente. A função de custo é calculada em todo o conjunto de dados de treinamento para cada iteração. Um lote é referido como uma iteração do algoritmo, e esta forma é conhecida como gradiente descendente de lote.

Descida do Gradiente Estocástico
Em alguns casos, o conjunto de treinamento pode ser muito grande. Nesses casos, a descida do gradiente em lote levará muito tempo para ser computada, pois uma iteração precisa de uma previsão para cada instância no conjunto de treinamento. Você pode usar a descida de gradiente estocástica nessas condições em que o conjunto de dados é enorme. No gradiente descendente estocástico, os coeficientes são atualizados para cada instância de treinamento e não no final do lote de instâncias.
Descida de gradiente de mini lote
Tanto a descida de gradiente em lote quanto a descida de gradiente estocástica têm seus prós e contras. No entanto, usar uma mistura de gradiente descendente em lote e gradiente descendente estocástico pode ser útil. Na descida de gradiente de minilote, nem todo o conjunto de dados é usado nem você usa uma única instância por vez. Você leva em consideração um grupo de exemplos de treinamento. O número de exemplos neste grupo é menor que todo o conjunto de dados e esse grupo é conhecido como minilote.
Práticas recomendadas para algoritmo de descida de gradiente
- Mapear custo versus tempo: plotar o custo em relação ao tempo ajuda a visualizar se o custo está diminuindo ou não após cada iteração. Se o custo permanecer inalterado, tente atualizar a taxa de aprendizado.
- Taxa de aprendizado: A taxa de aprendizado é muito baixa e geralmente é selecionada como 0,01 ou 0,001. Você precisa tentar e ver qual valor funciona melhor para você.
- Redimensionar entradas: O algoritmo de gradiente descendente minimizará a função de custo mais rapidamente se todas as variáveis de entrada forem redimensionadas para o mesmo intervalo, como [0, 1] ou [-1, 1].
- Menos passagens: Normalmente, o algoritmo de descida de gradiente estocástico não precisa de mais de 10 passagens para encontrar os melhores coeficientes.
Confira: 25 perguntas e respostas da entrevista de aprendizado de máquina
Empacotando
Você conhece o papel do gradiente descendente na otimização de um algoritmo de aprendizado de máquina. Um fator importante a ter em mente é escolher a taxa de aprendizado certa para seu algoritmo de descida de gradiente para uma previsão ideal.
O upGrad fornece um PG Diploma em Machine Learning e IA e um Master of Science em Machine Learning e IA que podem orientá-lo na construção de uma carreira. Esses cursos explicarão a necessidade de Aprendizado de Máquina e outras etapas para reunir conhecimento neste domínio, abrangendo conceitos variados, desde algoritmos de descida de gradiente até Redes Neurais.