Mengatasi overfitting

Pengantar Deep Learning dengan PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Alasan terjadinya overfitting

  • Overfitting: model tidak menggeneralisasi ke data baru
    • Model menghafal data latih
    • Kinerja bagus pada data latih tapi buruk pada data validasi
  • Kemungkinan penyebab:
Masalah Solusi
Dataset tidak cukup besar Tambah data / gunakan augmentasi
Model terlalu besar Kecilkan model / tambahkan dropout
Bobot terlalu besar Weight decay
Pengantar Deep Learning dengan PyTorch

Mengatasi overfitting

Strategi:

  • Kecilkan model atau tambahkan layer dropout
  • Gunakan weight decay agar parameter tetap kecil
  • Dapatkan data baru atau lakukan augmentasi
Pengantar Deep Learning dengan PyTorch

"Regularization" dengan layer dropout

  • Secara acak men-nol-kan elemen tensor input saat training
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 ditambahkan setelah fungsi aktivasi
  • Berperilaku berbeda saat training vs. evaluasi - gunakan model.train() untuk training dan model.eval() untuk menonaktifkan dropout saat evaluasi
Pengantar Deep Learning dengan PyTorch

Regularization dengan weight decay

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

  • Diatur oleh parameter weight_decay pada optimizer, biasanya kecil (mis. 0.0001)
  • Weight decay mendorong bobot lebih kecil dengan menambahkan penalti saat optimisasi
  • Membantu mengurangi overfitting, menjaga bobot kecil dan meningkatkan generalisasi
Pengantar Deep Learning dengan PyTorch

Augmentasi data

contoh augmentasi data

Pengantar Deep Learning dengan PyTorch

Ayo berlatih!

Pengantar Deep Learning dengan PyTorch

Preparing Video For Download...