Aşırı uyumu önleme

PyTorch ile Deep Learning'e Giriş

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Aşırı uyumun nedenleri

  • Aşırı uyum: model görülmeyen veriye genellenmez
    • Model eğitim verisini ezberler
    • Eğitim verisinde iyi, doğrulama verisinde zayıf performans
  • Olası nedenler:
Sorun Çözümler
Veri kümesi yeterince büyük değil Daha fazla veri toplayın / veri artırma kullanın
Model kapasitesi çok yüksek Modeli küçültün / dropout ekleyin
Ağırlıklar çok büyük Weight decay
PyTorch ile Deep Learning'e Giriş

Aşırı uyumu önleme

Stratejiler:

  • Modeli küçültmek veya dropout katmanı eklemek
  • Parametreleri küçük tutmak için weight decay kullanmak
  • Yeni veri toplamak veya veriyi artırmak
PyTorch ile Deep Learning'e Giriş

Dropout katmanı ile "düzenlileştirme"

  • Eğitim sırasında giriş tensörünün elemanlarını rastgele sıfırlar
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, aktivasyon fonksiyonundan sonra eklenir
  • Eğitim ve değerlendirmede farklı davranır - eğitim için model.train(), değerlendirmede dropout’u kapatmak için model.eval() kullanın
PyTorch ile Deep Learning'e Giriş

Weight decay ile düzenlileştirme

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

  • Optimize edicideki weight_decay parametresiyle kontrol edilir; tipik olarak küçük bir değer (örn. 0.0001)
  • Weight decay, optimizasyon sırasında ceza ekleyerek ağırlıkları küçültmeye teşvik eder
  • Aşırı uyumu azaltır, ağırlıkları küçük tutar ve genellemeyi iyileştirir
PyTorch ile Deep Learning'e Giriş

Veri artırma

veri artırma örnekleri

PyTorch ile Deep Learning'e Giriş

Hadi pratik yapalım!

PyTorch ile Deep Learning'e Giriş

Preparing Video For Download...