Otimizar modelos usando o gradiente descendente

Concluído

Vimos como as funções de custo avaliam o desempenho dos modelos usando dados. O otimizador é a parte final do quebra-cabeça.

A função do otimizador é alterar o modelo de forma a melhorar o seu desempenho. Ele faz essa alteração inspecionando as saídas e os custos do modelo e sugerindo novos parâmetros para ele.

Por exemplo, em nosso cenário agropecuário, o modelo linear tem dois parâmetros: interceptação da linha e inclinação da linha. Se a interceptação da linha estiver errada, o modelo fará, em média, estimativas muito altas ou muito baixas de temperatura. Se a inclinação estiver configurada incorretamente, o modelo não fará um bom trabalho em demonstrar como as temperaturas têm mudado desde os anos 1950. O otimizador altera esses dois parâmetros para que eles façam um trabalho adequado de modelagem de temperaturas ao longo do tempo.

Diagrama que mostra a parte do otimizador do ciclo de vida de machine learning.

Descendente de gradiente

O algoritmo de otimização mais comum no momento é o gradiente descendente. Existem várias variantes desse algoritmo, mas todas usam os mesmos conceitos básicos.

O gradiente descendente usa cálculos para estimar como a alteração de cada parâmetro altera o custo. Por exemplo, o aumento de um parâmetro pode ser previsto para reduzir o custo.

O descendente de gradiente leva esse nome porque calcula o gradiente (inclinação) da relação entre cada parâmetro de modelo e seu custo. Os parâmetros são então alterados para reduzir essa inclinação.

Esse algoritmo é simples e poderoso, mas não há garantia de encontrar os parâmetros de modelo ideais que minimizem o custo. As duas principais fontes de erro são o mínimo local e a instabilidade.

Mínimos locais

Nosso exemplo anterior parecia fazer um bom trabalho, assumindo que o custo continuaria aumentando quando o parâmetro fosse menor que 0 ou maior que 10:

Gráfico de custo versus parâmetro de modelo, com uma mínima para o custo quando o parâmetro de modelo é cinco.

Esse trabalho não pareceria tão bom se parâmetros menores que zero ou maiores que 10 resultassem em custos mais baixos, como nesta imagem:

Gráfico de custo versus parâmetro de modelo, desta vez com uma mínima local de custo quando o parâmetro de modelo for cinco, mas um custo menor quando o parâmetro de modelo for o seis negativo.

No gráfico anterior, um valor de parâmetro de sete negativo seria uma solução melhor que cinco, porque tem um custo menor. O gradiente descendente não conhece o relacionamento completo entre cada parâmetro e o custo, representado pela linha pontilhada, com antecedência. Portanto, ele é propenso a encontrar a mínima local: estimativas de parâmetro que não são a melhor solução, mas o gradiente é zero.

Instabilidade

Um problema relacionado é que o descendente de gradiente às vezes apresenta instabilidade. Esta instabilidade geralmente ocorre quando o tamanho da etapa ou a taxa de aprendizado, o valor pelo qual cada parâmetro é ajustado a cada iteração, é muito grande. Os parâmetros são ajustados muito em cada etapa e o modelo fica pior a cada iteração:

Gráfico de custo versus parâmetro de modelo, que mostra a movimentação do custo em etapas grandes com uma diminuição mínima no custo.

Uma taxa de aprendizado mais lenta pode resolver esse problema, mas também pode introduzir outros. Em primeiro lugar, taxas de aprendizado mais lentas podem representar mais tempo de treinamento, pois são necessárias mais etapas. Em segundo lugar, etapas menores aumenta a probabilidade de que o treinamento se acomode em uma mínima local:

Gráfico de custo versus parâmetro de modelo, mostrando pequenas movimentações no custo.

Por outro lado, uma taxa de aprendizado mais rápida pode tornar mais fácil evitar os mínimos locais, pois as etapas maiores podem ignorar em direção aos máximos locais:

Gráfico de custo versus parâmetro de modelo, com movimentações regulares no custo até que uma mínima seja atingida.

Como veremos no próximo exercício, há um tamanho de etapa ideal para cada problema. Para encontrar esse tamanho ideal, costuma ser necessária experimentação.