O diagrama de abordagem iterativa (Figura 1) continha uma caixa verde ondulada intitulada "Atualizações de parâmetros do Compute". Vamos substituir o pó de fada algorítmico por algo mais substancial.
Suponha que tivéssemos o tempo e os recursos computacionais para calcular a perda de todos os valores possíveis de \(w_1\). Para os tipos de problemas de regressão que estamos examinando, o gráfico resultante da perda x \(w_1\) será sempre convexo. Em outras palavras, o enredo sempre será em forma de tigela, mais ou menos assim:
Figura 2. Problemas de regressão geram gráficos de perda convexa em comparação com gráficos de peso.
Problemas convexos têm apenas um mínimo, ou seja, apenas um lugar em que a inclinação é exatamente 0. Esse mínimo é onde a função de perda converge.
O cálculo da função de perda para cada valor concebível de \(w_1\) em todo o conjunto de dados seria uma maneira ineficiente de encontrar o ponto de convergência. Vamos examinar um mecanismo melhor, muito conhecido em machine learning, chamado gradiente descendente.
O primeiro estágio no gradiente descendente é escolher um valor inicial (um ponto de partida) para \(w_1\). O ponto de partida não é muito importante. Portanto, muitos algoritmos simplesmente definem \(w_1\) como 0 ou escolhem um valor aleatório. A figura a seguir mostra que escolhemos um ponto de partida ligeiramente maior que 0:
Figura 3. Um ponto de partida para o gradiente descendente.
Em seguida, o algoritmo de gradiente descendente calcula o gradiente da curva de perda no ponto inicial. Aqui na Figura 3, o gradiente da perda é igual à derivada (inclinação) da curva e informa qual direção é "mais quente" ou "mais fria". Quando há vários pesos, o gradiente é um vetor de derivadas parciais em relação aos pesos.
O gradiente é um vetor e tem estas duas características:
- uma direção
- uma magnitude
O gradiente sempre aponta na direção do aumento mais acentuado na função de perda. O algoritmo do gradiente descendente dá um passo na direção do gradiente negativo para reduzir a perda o mais rápido possível.
Figura 4. O gradiente descendente depende de gradientes negativos.
Para determinar o próximo ponto ao longo da curva da função de perda, o algoritmo do gradiente descendente adiciona uma fração da magnitude do gradiente ao ponto inicial, conforme mostrado na figura a seguir:
Figura 5. Uma etapa do gradiente nos leva para o próximo ponto na curva de perda.
O gradiente descendente repete esse processo, chegando cada vez mais perto do mínimo.