Evitando o sobreajuste

Introdução ao Aprendizado Profundo com o PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Razões para sobreajuste

  • Sobreajuste: o modelo não generaliza para dados não vistos
    • Modelo memoriza dados de treinamento
    • Bom desempenho nos dados de treinamento, mas ruim nos dados de validação
  • Possíveis causas:
Problema Soluções
Conjunto de dados não é grande o suficiente Obter mais dados / usar aumento de dados
O modelo tem capacidade excessiva Reduzir tamanho do modelo/adicionar dropout
Pesos são muito grandes Decaimento de peso
Introdução ao Aprendizado Profundo com o PyTorch

Evitando o sobreajuste

Estratégias:

  • Reduzir tamanho do modelo ou adicionar camada de dropout
  • Decaimento de peso para forçar parâmetros a permanecerem pequenos
  • Obter novos dados ou aumentar dados
Introdução ao Aprendizado Profundo com o PyTorch

"Regularização" usando uma camada de dropout

  • Zera aleatoriamente elementos do tensor de entrada durante treinamento
model = nn.Sequential(nn.Linear(8, 4),
                      nn.ReLU(),
                      nn.Dropout(p=0.5))
features = torch.randn((1, 8))
print(model(features))
tensor([[1.4655, 0.0000, 0.0000, 0.8456]], grad_fn=<MulBackward0>)
  • Dropout é adicionado após a função de ativação
  • Comportamento diferente no treinamento e na avaliação: use model.train() para treinamento e model.eval() para desativar o dropout durante a avaliação.
Introdução ao Aprendizado Profundo com o PyTorch

Regularização com decaimento de peso

optimizer = optim.SGD(model.parameters(), lr=0.001, weight_decay=0.0001)

  • Controlado pelo parâmetro weight_decay no otimizador, definido como um valor pequeno (ex.: 0.0001)
  • Decaimento de peso incentiva pesos menores ao adicionar uma penalidade durante a otimização
  • Ajuda a reduzir sobreajuste, mantendo os pesos menores e melhorando a generalização
Introdução ao Aprendizado Profundo com o PyTorch

Aumento de dados

exemplos de aumento de dados

Introdução ao Aprendizado Profundo com o PyTorch

Vamos praticar!

Introdução ao Aprendizado Profundo com o PyTorch

Preparing Video For Download...