Sinir ağı araştırmacıları neden dönemleri önemsiyorlar?


69

Stokastik gradyan inişindeki bir çağ, verilerden tek bir geçiş olarak tanımlanır. Her SGD minibatch için, örnekleri çizilir, gradyan hesaplanır ve parametreler güncellenir. Çağ ayarında, numuneler değiştirilmeden çizilir.k

Ancak bu gereksiz görünüyor. Neden olarak her SGD minibatch çekemez rastgele her tekrarda tüm veri kümesinden çizer? Çok sayıda dönemin üzerinde, numunelerinin az ya da çok sık görüldüğü küçük sapmalar önemsiz gibi görünmektedir.k


1
Soru için + 1, ilginç bir şekilde neredeyse sormak üzeresek aynı soru vardı!
Haitao Du

Anekdot kanıtı, ancak son zamanlarda MNIST verilerinde SGD'yi kullanarak ve 50000 olan eğitim boyutunda tek katmanlı bir sinir ağı yerleştirdim. Bir rastgele çalışmadan sonra, sınıflandırma doğruluğu% 30-40'tan çok daha yüksek değildi ve log olasılığı benzer şekilde yakınlaşmamıştı. Bu yüzden% 90'ın üzerinde hassasiyete yol açan 30 dönem daha için prosedürü tekrarladım. En azından karşı örnekle bu bana gerekli olabileceğini gösterdi.
tomka

6
@tomka Bu, veri üzerinde birden fazla geçiş yapılması gerektiğine dair kanıt sunmuş gibi görünüyor; bu, burada önerilen yöntemle uyumludur: eğitim yineleme ve naumeam başına örnekleri çizmeye devam edin . k
Monica'yı

1
Bir başka ilginç soru şudur: mini parti siparişi aynı zamanda fazladan giydirmeyi de etkiler mi?
Kh40tiK

3
@Pinocchio Standart SGD uygulaması değiştirilmeden örnekleme yapıyor (örnek havuzları tükenene kadar, bu noktada tüm verilerle yeni bir çağ başlıyor). Benim sorum neden değiştirme ile örnekleme kullanmıyor olmasıdır. Bir cevabın, değiştirilmeden yapılan örneklemenin, model için yakınsama hızını arttırdığı ortaya çıktı.
Monica

Yanıtlar:


60

Franck'in pratikler konusundaki cevabına ve David'in küçük alt gruplara bakma konusundaki cevabına ek olarak - ikisi de önemli olan - aslında örneklemenin yerine örneklemeyi tercih etmenin bazı teorik nedenleri var. Bunun nedeni belki de David'in (belki de kupon toplayıcısının sorunu olduğu ) konusuyla ilgisidir .

2009 yılında, Léon Bottou yakınsama performansını belirli bir metin sınıflandırma problemi ile karşılaştırmıştır ( ).n=781,265

Bottou (2009). Bazı Stokastik Degrade İniş Algoritmalarının Merakla Hızlı Yakınsaklığı . Sempozyumun öğrenme ve veri bilimi konusundaki bildirileri. ( yazarın pdf )

Üç yaklaşımla SGD üzerinden bir destek vektörü makinesi eğitti:

  • Rastgele : her tekrarda tam veri setinden rastgele örnekler çizin.
  • Döngü : öğrenme sürecine başlamadan önce veri kümesini karıştırın, ardından sırayla dolaşın, böylece her çağda örnekleri aynı sırayla göreceksiniz.
  • Karıştır : Her bir dönemden önce veri kümesini değiştirir, böylece her dönem farklı bir düzende gider.

O ampirik yakınsama incelenen , burada maliyet fonksiyon, bir θ t adım de parametreleri t optimizasyonu, ve beklenti tahsis serilerin karıştırma üzerindedir.E[C(θt)minθC(θ)]Cθtt

  • Random için yakınsama yaklaşık olarak düzeyinde idi (bu noktada var olan teoriyle beklendiği gibi).t-1
  • Döngü sırasına yakınsama elde etti ( α > 1 ile ancak permütasyona bağlı olarak değişmektedir, örneğin Şekil 1 için α 1.8 ).t-αα>1α1.8
  • Karışık daha kaotik, ama en uygun hat verdi , çok Random daha hızlı.t-2

Bu, onu gösteren Şekil 1'dir: Verilen oranlarda yakınsama gösterimi

Bu daha sonra bildiri ile teorik olarak doğrulandı:

Gürbüzbalaban, Özdağlar ve Parrilo (2015). Neden Rastgele Yeniden Yerleştirme, Stokastik Degrade İnişi Atıyor . arXiv: 1510.08560 . ( NIPS 2015'te davetli konuşmanın videosu )

Kanıtları yalnızca, kayıp fonksiyonunun kuvvetli bir şekilde dışbükey olduğu, yani sinir ağları için geçerli olmadığında geçerlidir. Bununla birlikte, benzer bir akıl yürütmenin sinir ağı vakası için de geçerli olacağını beklemek mantıklıdır (bu, analiz edilmesi daha zordur).


3
Bu çok anlayışlı bir cevap. Katkınız için çok teşekkür ederim.
Monica'yı

1
cehalet için üzgünüm, ama biraz daha fazla üçü arasındaki farkın ne olduğunu açıklar mısınız? Özellikle, "örnek" derken, ne demek istiyorsun? Bunun referans gösterdiğiniz şey olmadığını biliyorum, ancak standart Sinir Ağı mini toplu SGD'si genellikle her yinelemede değiştirme yapmadan partileri örnekler. Random'un yaptığı bu mu? Öyleyse, Shuffle’dan farkı ne?
Pinokyo

1
Şimdi üçünü de yeniden okuduğumuza göre, aynı algoritma gibi görünüyor, veri seti karıştırılırsa ya da karıştırılmıyorsa ve SGD partileri her zaman rastgele olursa olsun ne sıklıkta?
Pinokyo

3
@Pinocchio Dört ağıtlı bir veri kümesini düşünün. Rastgele ACADBBCA gidebilir; Her giriş tamamen rastgeledir. Döngü BDAC BDAC BDAC olabilir; her çağ için bir düzen seçer ve ardından tekrarlar. Karıştırma BDAC ADCB CBAD olabilir; çağlara giriyor, ama her biri rastgele. Bu analiz, bir seferde yalnızca bir element SGD olan minyatürleri kullanmaz.
Dougal

Bu harika bir cevap. Teşekkür ederim
DankMasterDan

24

Büyük bir eğitim setiyle performans açısından gerçekten gereksizdir, ancak dönemleri kullanmak uygun olabilir, örneğin:

  • oldukça iyi bir ölçü veriyor: "sinir ağı 10 dönem için eğitildi", "sinir ağı 18942 yineleme için eğitildi" veya "sinir ağı 303072 örnek üzerinde eğitildi" ifadesinden daha açık bir ifadedir.
  • Eğitim aşamasında yeterince rastlantısal şeyler oluyor: rastgele ağırlık başlatma, mini toplu karıştırma, bırakma, vb.
  • uygulanması kolaydır
  • Eğitim setinin dönemlere sahip olmayacak kadar büyük olup olmadığını merak etmekten kaçınır

[1] bir sebep daha veriyor, bu günümüzün bilgisayar konfigürasyonuna verilen kadar alakalı değil:

Herhangi bir stokastik gradyan iniş yöntemine (mini parti vakası dahil) gelince, her bir örneğin veya mini partinin yaklaşık olarak bağımsız olarak örneklenmesi tahmin edicinin etkinliği için önemlidir. Belleğe rasgele erişim (veya hatta daha da kötüsü) pahalı olduğu için, artımlı gradyan (Bertsekas, 2010) olarak adlandırılan iyi bir yaklaşım, örnekleri (veya mini partileri) bellekteki sıralarına karşılık gelen sabit bir sırada ziyaret etmektir. veya disk (eğer her örneğin yalnızca bir kez ziyaret edildiği saf çevrimiçi durumda değilsek, örnekleri ikinci bir çağda aynı sırada tekrarlamak).Bu bağlamda, örneklerin veya küçük partilerin ilk önce rastgele sıraya konmaları daha güvenlidir (durumun bu olduğundan emin olmak için, ilk önce örnekleri karıştırmak faydalı olabilir). Mini grupların ziyaret edilme sırası her bir dönem için değiştirilirse, eğitim seti bilgisayar hafızasında tutulursa oldukça verimli olabilen daha hızlı yakınlaşma gözlenmiştir.


[1] Bengio, Yoshua. " Derin mimarilerin gradyan tabanlı eğitimi için pratik öneriler. " Yapay Sinir Ağları: Ticaretin Püf Noktaları. Springer Berlin Heidelberg, 2012. 437-478.


1
k

1
Elbette değil bağımsız olma rağmen yerine koymadan @Sycorax Örnekleme, öyle anlamda "Yaklaşık bağımsız" dır değiştirilebilir . Herhangi bir veri noktasına çok fazla önem vermeyen bir sınıflandırıcı eğitimi açısından bu değişebilirlik kesinlikle “yaklaşık olarak bağımsız” a oldukça yakındır.
Dougal

18

Açıkça farketmeyeceği konusunda biraz aynı fikirde değilim. Diyelim ki milyonlarca eğitim örneği var ve on milyon örnek alıyoruz.

R'de, dağılımın nasıl göründüğünü hızlıca görebiliriz.

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

binom PMF

Bazı örnekler 20+ kez ziyaret edilecek,% 1'i 3 veya daha az kez ziyaret edilecektir. Eğitim seti, gerçek verilerin beklenen dağılımını temsil etmek için dikkatlice seçildiyse, bunun veri setinin bazı alanlarında gerçek bir etkisi olabilir - özellikle de verileri daha küçük gruplara ayırmaya başladığınızda.

Bir Illinois seçmeninin 30x oranında etkili bir şekilde örneklendiği ve modelin demografik grubuna ilişkin tahminlerini önemli ölçüde değiştirdiği (ve tüm ABD nüfusu için daha az ölçüde) son durumu düşünün . Bulutlu günlerde yeşil arka plana karşı alınan "Ruffed Grouse" görüntülerini, dar bir alan derinliği ile kazara örneklendirir ve diğer tür grouse görüntülerini örneklendirirsek, model bu alakasız özellikleri kategori etiketi ile ilişkilendirebilir. Verileri dilimlemek için ne kadar fazla yol varsa, bu alt grupların sayısı o kadar fazla olacaktır ve bu tür hatalar için daha fazla fırsat olacaktır.


1
Büyük bir eğitim seti için pratikte büyük bir fark yaratacağını düşünmüyorum, ancak kesinlikle daha küçük bir eğitim seti ile olacağını umuyorum.
Franck Dernoncourt

5
@ FranckDernoncourt, bütün mesele, eğer küçük alt gruplara bakmaya başlarsanız büyük veri kümeleri için önemli olabileceğidir. Büyük veri setlerinde nadir görülen bir işlem değildir,
dimpol

Oldukça emin, tek tip bir dağıtım kullanmalıydınız, binom değil
lahwran

2
107106samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)

2
Aha! Yanılmışım o zaman.
lahwran
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.