O gradiente descendente é uma técnica matemática que encontra, de maneira iterativa, os pesos e o viés que produzem o modelo com a menor perda. O gradiente descendente encontra o melhor peso e viés repetindo o processo a seguir para diversas iterações definidas pelo usuário.
O modelo começa o treinamento com pesos aleatórios e vieses próximos de zero. e repete as seguintes etapas:
Calcule a perda com o peso e o viés atuais.
Determine a direção do movimento dos pesos e do viés que reduzem a perda.
Mova os valores de peso e viés um pouco na direção que reduz e perda de talentos.
Retorne à primeira etapa e repita o processo até que o modelo não possa reduzir o prejuízos adicionais.
O diagrama abaixo descreve os passos iterativos do gradiente descendente para encontrar os pesos e o viés que produzem o modelo com a menor perda.
Figura 12. O gradiente descendente é um processo iterativo que encontra os pesos e o viés que produzem o modelo com a menor perda.
Clique no ícone de adição para saber mais sobre a matemática por trás do gradiente descendente.
Em um nível concreto, podemos percorrer os degraus do gradiente descendente usando um pequeno conjunto de dados com sete exemplos para o peso de um carro em libras e a classificação de milhas por litro:
Libras em milhares (feature) | Milhas por litro (rótulo) |
---|---|
3.5 | 18 |
3,69 | 15 |
3,44 | 18 |
3,43 | 16 |
4,34 | 15 |
4,42 | 14 |
2,37 | 24 |
- O modelo começa o treinamento definindo o peso e o viés como zero:
- Calcule a perda do EQM com os parâmetros do modelo atual:
- Calcular a inclinação da tangente da função de perda em cada peso e o viés:
- Mova um pequeno valor na direção da inclinação negativa para chegar o próximo peso e viés. Por enquanto, vamos definir arbitrariamente o "pequena quantidade" como 0,01:
Clique no ícone de adição para saber como calcular a inclinação.
Para obter a inclinação das linhas tangentes ao peso e nós tomamos a derivada da função de perda com em relação ao peso e ao viés e, em seguida, resolver equações.
Escreveremos a equação para fazer uma previsão como:
$ f_{w,b}(x) = (w*x)+b $.
Escreveremos o valor real como: $ y $.
Calcularemos o EQM usando:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
em que $i$ representa o exemplo de treinamento $ith$ e $M$ representa
o número de exemplos.
A derivada da função de perda em relação ao peso é escrita como:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
e avalia como:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
Primeiro, somamos cada valor previsto menos o valor real e depois multiplicá-lo pelo dobro do valor do atributo. Em seguida, dividimos a soma pelo número de exemplos. O resultado é a inclinação da linha tangente ao valor do peso.
Se resolvermos esta equação com um peso e viés iguais a zero, obtemos -119,7 para a inclinação da linha.
Derivado de viés
A derivada da função de perda em relação ao
o viés é escrito da seguinte forma:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
e avalia como:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
Primeiro, somamos cada valor previsto menos o valor real e, em seguida, multiplicá-lo por dois. Depois, dividimos a soma pelo diversos exemplos. O resultado é a inclinação da linha tangente ao valor do viés.
Se resolvermos esta equação com um peso e viés iguais a zero, obtemos -34,3 para a inclinação da linha.
Use o novo peso e viés para calcular a perda e repetir. Conclusão processo de seis iterações, teríamos os seguintes pesos, vieses, e perdas:
Iteração | Peso | Viés | Perda (EQM) |
---|---|---|---|
1 | 0 | 0 | 303,71 |
2 | 1.2 | 0.34 | 170,67 |
3 | 2,75 | 0,59 | 67,3 |
4 | 3.17 | 0,72 | 50,63 |
5 | 3,47 | 0,82 | 42,1 |
6 | 3,68 | 0,9 | 37,74 |
A perda diminui a cada atualização de peso e viés. Neste exemplo, paramos após seis iterações. Na prática, um modelo até converge. Quando um modelo converge, as iterações adicionais não reduzem mais a perda porque o gradiente descendente descobriu os pesos e o viés que quase para minimizar a perda.
Se o modelo continuar treinando a convergência passada, a perda vai começar flutuam em pequenas quantidades, já que o modelo atualiza continuamente em torno dos valores mais baixos. Isso pode dificultar e verificar se o modelo realmente convergiu. Para confirmar o modelo convergir, você vai querer continuar treinando até que a perda tenha se estabilizaram.
Curvas de perda e convergência do modelo
Ao treinar um modelo, muitas vezes você vai observar uma perda curva para determinar se o modelo tem convergente. A curva de perda mostra como a perda muda durante o treinamento do modelo. Veja a seguir o que uma perda típica de uma curva. A perda está no eixo y e as iterações estão no eixo x:
Figura 13. Curva de perda mostrando o modelo convergindo em torno do Marca de mil iterações.
Observe que a perda diminui drasticamente durante as primeiras iterações, depois diminui gradualmente antes de se estabilizar em torno da milésima iteração marca Após mil iterações, podemos ter certeza de que o modelo tem convergiram.
Nas figuras a seguir, desenhamos o modelo em três pontos durante o treinamento processo: o começo, o meio e o fim. Visualizar o estado do modelo nos snapshots durante o processo de treinamento os pesos e o viés, reduzindo a perda e a convergência do modelo.
Nas figuras, usamos os pesos e o viés derivados em uma iteração específica para representam o modelo. No gráfico com os pontos de dados e o snapshot do modelo, linhas de perda azuis do modelo para os pontos de dados mostram a quantidade de perda. O quanto mais longas as linhas, maior a perda.
Na figura a seguir, podemos notar que, por volta da segunda iteração, o modelo não seria bom em fazer previsões por causa da grande quantidade de perdas.
Figura 14. Curva de perda e snapshot do modelo no início do o processo de treinamento.
Perto da 400a iteração, podemos ver que o gradiente descendente encontrou o o peso e o viés que produzem um modelo melhor.
Figura 15. Curva de perda e snapshot do modelo mais ou menos no meio do treinamento.
Por volta da 1.000a iteração, podemos ver que o modelo convergiu, para produzir um modelo com a menor perda possível.
Figura 16. Curva de perda e snapshot do modelo perto do final do treinamento de desenvolvimento de software.
Exercício: testar seu conhecimento
Convergência e funções convexas
As funções de perda para modelos lineares sempre produzem uma convexa. Como resultado de essa propriedade, quando um modelo de regressão linear converge, sabemos que o modelo encontramos os pesos e o viés que produzem a menor perda.
Se fizermos um gráfico da superfície de perda de um modelo com um atributo, veremos forma convexa. Veja a seguir a superfície de perda do conjunto de dados de milhas por galão usadas nos exemplos anteriores. O peso está no eixo X, a polarização está no eixo Y, e a perda está no eixo z:
Figura 17. Superfície de perda que mostra o formato convexo.
Neste exemplo, um peso de -5,44 e um viés de 35,94 produzem a menor perda. às 5,54:
Figura 18. Superfície de perda mostrando os valores de peso e viés que produzem a menor perda.
Um modelo linear converge quando encontra a perda mínima. Portanto, as iterações apenas causam o gradiente descendente para mover os valores de peso e viés para com valores muito pequenos em torno do mínimo. Se fizéssemos um gráfico dos pesos e dos pontos de viés durante o gradiente descendente, os pontos se parecem com uma bola rolando descendo um morro, e finalmente para no ponto em que não há mais inclinação para baixo.
Figura 19. Gráfico de perdas mostrando pontos do gradiente descendente parando no ponto mais baixo ponto no gráfico.
Observe que os pontos de perda pretos criam a forma exata da curva de perda: uma declínio acentuado antes de se inclinar gradualmente até atingirem o ponto mais baixo ponto na superfície de perda.
É importante observar que o modelo quase nunca encontra mínimo para cada peso e viés, mas encontra um valor muito próximo dele. Também é importante notar que o mínimo para os pesos e o viés não correspondem a perda zero, apenas o valor que produz a menor perda .
Usar os valores de peso e viés que produzem a menor perda. Neste caso, um peso de -5,44 e um viés de 35,94, podemos representar graficamente o modelo para ver como e que ele se ajuste aos dados:
Figura 20. Gráfico de modelo gerado usando os valores de peso e viés que produzem a menor perda.
Esse seria o melhor modelo para esse conjunto de dados porque nenhum outro peso e viés de rede produzem um modelo com menos perda.