Taxa de aprendizado e momentum

Introdução ao Aprendizado Profundo com o PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Atualização de pesos com SGD

  • Treinar uma rede neural = resolver um problema de otimização.

**Otimizador de descida do gradiente estocástico (SGD)

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Dois argumentos:
    • taxa de aprendizado: controla tamanho da etapa
    • momentum: adiciona inércia para evitar ficar preso
Introdução ao Aprendizado Profundo com o PyTorch

Impacto da taxa de aprendizado: taxa de aprendizado ideal

um exemplo de taxa de aprendizado ideal

  • Tamanho da etapa diminui perto de zero, conforme o gradiente fica menor
Introdução ao Aprendizado Profundo com o PyTorch

Impacto da taxa de aprendizado: taxa de aprendizado pequena

um exemplo de taxa de aprendizado pequena

Introdução ao Aprendizado Profundo com o PyTorch

Impacto da taxa de aprendizado: alta taxa de aprendizado

um valor real da taxa de aprendizado

Introdução ao Aprendizado Profundo com o PyTorch

Funções convexas e não convexas

Essa é uma função convexa.

um exemplo de função convexa

Essa é uma função não convexa.

um exemplo de função não convexa

  • Funções de perda não são convexas
Introdução ao Aprendizado Profundo com o PyTorch

Sem momentum

  • lr = 0.01 momentum = 0, após 100 etapas o mínimo encontrado para x = -1.23 e y = -0.14

um exemplo de otimizador preso em um mínimo local

Introdução ao Aprendizado Profundo com o PyTorch

Com momentum

  • lr = 0.01 momentum = 0.9, após 100 etapas o mínimo encontrado para x = 0.92 e y = -2.04

um exemplo de otimização com momentum

Introdução ao Aprendizado Profundo com o PyTorch

Resumo

$$

Taxa de aprendizado Momentum
Controla o tamanho da etapa Controla a inércia
Muito alto → desempenho ruim Ajuda a escapar do mínimo local
Muito baixo → treinamento lento Muito pequeno → o otimizador fica preso
Faixa típica: 0,01 ($10^{-2}$) e 0,0001 ($10^{-4}$) Faixa típica: 0.85 a 0.99
Introdução ao Aprendizado Profundo com o PyTorch

Vamos praticar!

Introdução ao Aprendizado Profundo com o PyTorch

Preparing Video For Download...