Como funciona o algoritmo de descida gradiente no aprendizado de máquina??

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon.

Introdução

Gradiente Descida é um dos algoritmos de aprendizagem de máquina mais usados na indústria. E, porém, confunde muitos recém-chegados.

Eu entendo, eu entendo.! A matemática por trás do aumento do gradiente não é fácil se você está apenas começando. Meu objetivo é ajudá-lo a obter uma intuição por trás da descida gradiente neste artigo..

máquina-aprendizagem-bibliotecas-c-3488948

Entenderemos rapidamente o papel de uma função de custo, a explicação da descida gradiente, como escolher o parâmetro de aprendizagem e o efeito de ultrapassagem na descida gradiente. Vamos começar!

O que é uma função de custo?

É um Função que mede o desempenho de um modelo para quaisquer dados. Função de custo quantifica o erro entre os valores previstos e os valores esperados e apresenta-o na forma de um único número real.

Depois de fazer uma hipótese com parâmetros iniciais, calculamos a função Custo. E com o objetivo de reduzir a função de custo, modificamos os parâmetros usando o algoritmo de descida gradiente nos dados dado. Aqui está a representação matemática para ele:

90857screenshot2041_li-6709060
Fonte: Coursera

O que é descida gradiente?

A pergunta do Milhão de Dólares!

Digamos que você está jogando um jogo onde os jogadores estão no topo de uma montanha e são convidados a chegar ao ponto mais baixo da montanha.. O que mais, estão vendados. Então, Que abordagem você acha que faria você chegar ao lago??

Pense um pouco sobre isso antes de ler..

A melhor maneira é observar o solo e encontrar onde a terra desce. A partir dessa posição, dar um passo em uma direção para baixo e iterar este processo até chegar ao ponto mais baixo.

70205gd20mountain-9757155Encontrando o ponto mais baixo em uma paisagem montanhosa. (Fonte: Fisseha Berhane)

Descida gradiente é um algoritmo de otimização iterativo para encontrar o mínimo local de uma função.

Para encontrar o mínimo local de uma função usando descida gradiente, devemos tomar medidas proporcionais ao negativo do gradiente (afastar-se do gradiente) da função no ponto atual. Se tomarmos medidas proporcionais ao gradiente positivo (movendo-se em direção ao gradiente), vamos nos aproximar de um máximo local da função, e o procedimento é chamado Ascensão gradiente.

Descida gradiente foi originalmente proposta por CAUCHY sobre 1847. Também é conhecida como a descida mais íngreme..

631731_p7z2bkhd0r-9uyn9thdasa-1647200
Fonte: Clarividente

O objetivo do algoritmo de descida gradiente é minimizar a função dada (por exemplo, função de custo). Para alcançar esse objetivo, realiza duas etapas iterativamente:

  1. Calcule o gradiente (pendente), a derivada de primeira ordem da função naquele ponto
  2. Dê um passo (Mover) na direção oposta ao gradiente, a direção oposta da inclinação aumenta a partir do ponto atual em tempos alfa o gradiente naquele ponto
36152captura de tela2043-5793508
Fonte: Coursera

Alfa é chamado Taxa de aprendizagem – um parâmetro de ajuste no processo de otimização. Decida a duração dos passos.

Algoritmo de descida gradiente plotando

Quando temos um único parâmetro (theta), podemos gráfico o custo da variável dependente no eixo y e no eixo x. Se houver dois parâmetros, podemos optar por um gráfico 3D, com custo em um eixo e ambos os parâmetros (Thetas) ao longo dos outros dois eixos.

42181enredo-3d-parabola-5821863
custo ao longo do eixo z e parâmetros (Thetas) ao longo do eixo x e y-eixo (fonte: porta de pesquisa)

Ele também pode ser visto usando Contornos. Isso mostra um gráfico 3D bidimensional com parâmetros ao longo de ambos os eixos e a resposta como um esboço.. O valor de resposta aumenta longe do centro e tem o mesmo valor junto com os anéis. A resposta é diretamente proporcional à distância de um ponto para o centro (ao longo de uma direção).

56656contorno-9605028
Descida de gradiente usando plot de contorno. (fonte: Coursera)

Alfa – A taxa de aprendizado

Temos a direção em que queremos nos mover, agora devemos decidir o tamanho do passo que devemos dar.

* Deve ser escolhido cuidadosamente para acabar com os mínimos locais.

  • Se a taxa de aprendizado é muito alta, Poderia EXAGERAR os mínimos e continuar saltando, sem atingir os mínimos
  • Se a taxa de aprendizado é muito pequena, treinamento pode ser muito longo.
43266imagens-2817704
Fonte: Coursera
  1. uma) A taxa de aprendizado é ótima, o modelo converge para um mínimo
  2. b) A taxa de aprendizado é muito pequena., leva mais tempo, mas converge para um mínimo
  3. c) A taxa de aprendizagem é maior do que o valor ideal, excede, mas converge (1 / C <η <2 / C)
  4. d) A taxa de aprendizado é muito grande, ultrapasse e diverge, se afasta dos baixos, o desempenho diminui na aprendizagem
40982épocas-1425409
Fonte: researchgate

Observação: À medida que o gradiente diminui à medida que se move em direção aos baixos locais, tamanho do passo diminui. Portanto, a taxa de aprendizagem (alfa) pode ser constante durante a otimização e não precisa variar iterativamente.

Mínimos locais

A função de custo pode consistir em muitos pontos mínimos. O gradiente pode resolver em qualquer um dos mínimos, que depende do ponto de partida (quer dizer, os parâmetros iniciais (theta)) e a taxa de aprendizado. Portanto, otimização pode convergir em diferentes pontos com diferentes pontos de partida e taxa de aprendizado.

90062gdopt-3765531
Função de convergência de custos com diferentes pontos de partida (Fonte: Gfycat)

Implementação de código de descida de gradiente em Python

23757gdalgo-8810942
Algoritmo de descida gradiente

Notas finais

Uma vez que sintonizamos o parâmetro de aprendizagem (alfa) e temos a taxa de aprendizado ideal, começamos a iterar até convergir para baixos locais.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.