Derin sinir ağını eğitmek için erken durdurma nasıl düzgün kullanılır?


20

Derin bir sinir ağı modelim var ve bunu yaklaşık 100.000 örnekten oluşan veri kümemde eğitmem gerekiyor, doğrulama verilerim yaklaşık 1000 örnek içeriyor. Her bir örneği eğitmek zaman aldığından (her örnek için yaklaşık 0,5s) ve aşırı sığmayı önlemek için, gereksiz hesaplamayı önlemek için erken durdurma uygulamak istiyorum. Ancak sinir ağımı erken durdurma ile nasıl düzgün bir şekilde eğiteceğimi bilmiyorum, şimdi tam olarak anlamadığım birkaç şey:

  • İyi bir doğrulama sıklığı nedir? Modelimi her dönemin sonunda doğrulama verileri açısından kontrol etmeli miyim? (Parti büyüklüğüm 1)

  • İlk birkaç dönemin daha iyi bir değere yaklaşmaya başlamadan önce daha kötü sonuç verebileceği bir durum mu? Bu durumda, erken durdurmayı kontrol etmeden önce ağımızı birkaç dönem için eğitmeli miyiz?

  • Doğrulama kaybının yukarı ve aşağı gidebileceği durum nasıl ele alınır? Bu durumda, erken durma modelimin daha fazla öğrenmesini engelleyebilir, değil mi?

Şimdiden teşekkür ederim.


Birden büyük bir parti boyutunu şiddetle tavsiye ederim. Her zamanki boyutlar 32, 64 ve 128'dir.
ComputerScientist

Yanıtlar:


20

İyi bir doğrulama sıklığı nedir? Modelimi her dönemin sonunda doğrulama verileri açısından kontrol etmeli miyim? (Parti büyüklüğüm 1)

Altın bir kural yoktur, her çağdan sonra doğrulama hatasını hesaplamak oldukça yaygındır. Doğrulamanız eğitim setinizden çok daha küçük olduğundan, eğitimi çok yavaşlatmaz.

İlk birkaç dönemin daha iyi bir değere yaklaşmaya başlamadan önce daha kötü sonuç verebileceği bir durum mu?

Evet

Bu durumda, erken durdurmayı kontrol etmeden önce ağımızı birkaç dönem için eğitmeli miyiz?

Yapabilirsiniz, ancak sorun kaç dönemi atlamanız gerektiğidir. Yani pratikte, insanlar çoğu zaman hiçbir dönemi atlamazlar.

Doğrulama kaybının yukarı ve aşağı gidebileceği durum nasıl ele alınır? Bu durumda, erken durma modelimin daha fazla öğrenmesini engelleyebilir, değil mi?

İnsanlar tipik olarak bir sabır tanımlar, yani doğrulama setinde ilerleme olmazsa erken durmadan önce bekleyecek dönem sayısı. Sabır genellikle 10 ile 100 arasında bir yere ayarlanır (10 veya 20 daha yaygındır), ancak gerçekten veri kümenize ve ağınıza bağlıdır.

Sabırlı örnek = 10:

resim açıklamasını buraya girin


Modeli erken durdurulduğunda veya model patiencedurdurulmadan önce (daha fazla iyileştirme yapılmayan 'en iyi' model ) kullanılmalı mıdır?
yığın akışı

2
@displayname sabır önce durdu
Franck Dernoncourt

11

Kısa bir süre önce "Erken Durma - ama ne zaman?" Lutz Prechelt'in, her birinin ne yaptığına dair net açıklamalar ve onlar için formüller ile erken durdurmanın nasıl kullanılacağına dair birçok harika örneği var.

Umarım buna bir göz atmak yardımcı olabilir.


Kağıt garip bir tarzda yazılmış ama bilgi yardımcı oldu.
Josiah

3

Diğer mükemmel cevaplara eklemek için de durduramazsınız. Ben genelde:

  • NN'yi çok daha uzun bir süre çalıştırmak mantıklı olduğunu düşünürdüm,
  • her N çağında model ağırlıklarını kaydedin ve
  • Eğitim kaybının dengelendiğini gördüğümde, sadece en düşük doğrulama kaybına sahip modeli seçiyorum.

Tabii ki bu sadece dakika başına ödeme yapmadığınızda (veya maliyet yeterince küçük olduğunda) ve eğitimi manuel olarak durdurabildiğinizde anlamlıdır. Bunun tersi, arka plandaki en düşük doğrulama hatasını belirlemenin çok daha kolay olmasıdır.


1
Bunu ben de yaparım. Senin gibi bir lüks olduğunun farkındayım. Modeller çok yer kaplamaya başladığında, önceki kayıp ve f-skoru rakamlarını kullanarak önceki modelleri ne zaman sileceğimi programlı olarak belirleyebileceğimi buldum - böylece kabaca tüketen aday en iyi modellerin hareketli bir penceresi ile sonuçlanırsınız. değerli sabit disk alanı.
KG Kolektifi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.