Bir sinir ağını eğitirken neden verileri karıştırmalıyız?


15

Bir sinir ağının mini-toplu eğitiminde, önemli bir uygulamanın her çağdan önce eğitim verilerini karıştırmak olduğunu duydum. Birisi her çağdaki karışıklığın neden yardımcı olduğunu açıklayabilir mi?

Google aramadan aşağıdaki yanıtları buldum:

  • eğitimin hızla birleşmesine yardımcı olur
  • eğitim sırasında herhangi bir önyargıyı önler
  • modelin eğitimin sırasını öğrenmesini engeller

Ancak, bu etkilerden herhangi birinin neden rastgele karıştırmadan kaynaklandığını anlamakta zorluk çekiyorum. Herhangi biri sezgisel bir açıklama yapabilir mi?

Yanıtlar:


8

Başka bir açıklama yapmaya çalışmak için:

Sinir ağları ile ilgili en güçlü şeylerden biri, giriş ve çıkış verileriniz arasında çok karmaşık ilişkileri öğrenmesine izin veren çok karmaşık işlevler olabilmeleridir. Bu ilişkiler, her dönem için verilerin beslenme sırası gibi, asla beklemeyeceğiniz şeyleri içerebilir. Her çağdaki veri sırası aynı ise, model bunu bir çeşit aşırı uyum olan eğitim hatasını azaltmanın bir yolu olarak kullanabilir.

Hızla ilgili olarak: Mini parti yöntemleri stokastik gradyan inişine (ve bunun üzerindeki gelişmelere) dayanır, bu da minimum bulmak için rasgeleliğe güvendikleri anlamına gelir. Mini partileri karıştırmak, degradeleri daha değişken hale getirir, bu da yakınlaşmaya yardımcı olabilir, çünkü iyi bir yöne çarpma olasılığını artırır (veya en azından bunu anlıyorum).


1
Bir sinir ağı, her çağda verilerin hangi sırada verildiğini nasıl öğrenebilir?
Kod Papa

1
Tek kelimeyle, yapamazlar. Mini parti eğitimi (yani, dönem başına birden fazla parti) kullanılıyorsa, verilere yönelik belirli bir sipariş, öncelikle bir mini parti üzerinde eğitim yaparak çözücünün belirli bir bölgeye (belki de yerel minimum ...) yerine diğerine. Ancak ileriye dönük bir NN'nin veri sıralaması hakkında "öğren" olduğunu söylemek gerçekten doğru değildir, çünkü her tahmin diğer tüm tahminlerden bağımsız olarak yapılır ve mini gruplar içindeki siparişin elbette hiçbir etkisi olmayacaktır.
Josh

6

Görünüşünün çok basit açıdan, veri en azından, bu olduğunu ileri süren ardışık beslenir olası veri sırası çıkışı üzerinde bir etkiye sahip olduğu için. Sipariş önemli değilse, randomizasyon kesinlikle zarar vermez. Düzen önemliyse, rasgeleleştirme bu rastgele etkileri düzeltmeye yardımcı olur, böylece sistematik önyargı haline gelmezler. Kısacası, rasgeleleştirme ucuzdur ve asla acıtmaz ve genellikle veri sıralama etkilerini en aza indirir.


6

Not: Bu cevap boyunca eğitim kaybının en aza indirilmesine atıfta bulunuyorum ve doğrulama kaybı gibi durdurma kriterlerini tartışmıyorum. Durdurma kriterlerinin seçimi, aşağıda açıklanan süreci / kavramları etkilemez.

Bir sinir ağı eğitim işlemi, bir işlev kaybı minimum değerini bulmak için , nöronlar arasındaki ağırlıktaki bir matris (veya birkaç matrisler temsil eder) ve eğitim veri kümesi temsil eder. Ben bir simge kullanmak bizim minimizasyonu olduğunu belirtmek için sadece ağırlıkları üzerinde meydana (olduğunu, aradığımız böyle iken minimize edilir) sabittir.GXX GW XX(W)WXXWWX

Şimdi, eğer elementlerimiz olduğunu varsayarsak (yani, ağda ağırlıkları vardır), boyutlu bir alanda bir yüzeydir . Görsel bir analog vermek için sadece iki nöron ağırlığımız olduğunu düşünün ( ). O zaman kolay bir geometrik yoruma sahiptir: 3 boyutlu uzayda bir yüzeydir. Bu , ağırlıklarının herhangi bir matrisi için , kayıp fonksiyonunun üzerinde değerlendirilebilmesi ve bu değerin yüzeyin yüksekliği haline gelmesinden kaynaklanmaktadır.W P P + 1 P = 2 G XPWPP+1P=2WX

Ancak dışbükeylik sorunu var; tarif ettiğim yüzey çok sayıda yerel minimaya sahip olacak ve bu nedenle gradyan iniş algoritmaları bu minimada "sıkışmış" olmaya yatkınken, daha derin / daha düşük / daha iyi bir çözüm yakınlarda olabilir. Bu oluşabilir muhtemeldir yüzeyi belirli bir sabit olduğundan, tüm eğitim tekrarlamalar üzerinde değişmez ; çeşitli özellikleri dahil olmak üzere tüm özellikleri statiktir.XXX

Buna bir çözüm, karıştırma ile birlikte mini parti eğitimidir. Belirli bir yineleme sırasında satırları karıştırıp yalnızca bir alt kümesi üzerinde eğitim yaparak, her yinelemeyle değişir ve aslında tüm eğitim yinelemeleri ve dönemleri boyunca iki yinelemenin tam olarak aynı üzerinde gerçekleştirilmemesi oldukça mümkündür. . Sonuç, çözücünün yerel bir minimumdan kolayca "sıçraması" dır. , eğitim mini grubu ile yineleme yerel bir minimumda sıkıştığını düşünün . Bu yerel minimum , belirli bir ağırlık değerinde değerine karşılık gelir ; bunaX i X i X i ( W i ) X i + 1 X i + 1 ( W i ) X i ( W i ) X i + 1X i X W WXXiXiXi(Wi). Bir sonraki yinelemede, kayıp yüzeyinin şekli aslında değişir çünkü , yani dan çok farklı bir değer alabilir. ve yerel bir minimum karşılık gelmemesi oldukça olasıdır! Şimdi bir degrade güncellemesi hesaplayabilir ve eğitime devam edebiliriz. Açık olmak gerekirse: ın şekli - genel olarak - dan farklı olacaktır . Ben kayıp fonksiyonu bahsediyorum burada unutmayın bir eğitim seti üzerinde değerlendirilen ; tüm olası değerleri üzerinde tanımlanan tam bir yüzeydir.Xi+1Xi+1(Wi)Xi(Wi)Xi+1XiXW, bu kaybın (sadece bir skaler olan) belirli bir değeri için değerlendirilmesi yerine . Ayrıca, mini gruplar karıştırılmadan kullanılırsa, kayıp yüzeylerinin hala bir dereceye kadar "çeşitlendirilmesi" vardır, ancak çözücü tarafından görülen sınırlı sayıda (ve nispeten küçük) benzersiz hata yüzeyi olacaktır (özellikle, her grupta aynı mini gruplar kümesi - ve dolayısıyla kayıp yüzeyler).W

Kasten kaçındığım bir şey, mini parti boyutlarının tartışılmasıydı, çünkü bunun üzerinde bir milyon görüş var ve önemli pratik sonuçları var (daha büyük partilerle daha fazla paralellik elde edilebilir). Ancak, aşağıdakilerden bahsetmeye değer olduğuna inanıyorum. Çünkü her satır için bir değer hesaplayarak değerlendirilmektedir ağırlık matrisleri belirli bir ürün kümesi için (yani, bir değişmeli operatör ortalama ve toplanmasıyla veya alarak) sıralarının düzenlenmesi, hiçbir etkiye sahip tam kullanırken toplu degrade inişi (yani, her toplu iş tam olduğunda ve yinelemeler ve çağlar aynı şey olduğunda). X G X XXWX X


Bu yararlı açıklama için teşekkür ederim. Cevabınızı derinlemesine okuduktan sonra iki sorum var: 1. Mini partinin sınırlı derecede çeşitlendirme sağladığından bahsettiniz. Bunun neden yerel asgari düzeyde sıkışmamak için yeterli olmadığını anlamıyorum. Eğer bir çözücü bir partinin yüzeyinin yerel minimasındaysa, bir sonraki partinin yüzeyinin yerel minimasında değil, bu nedenle sıkışmamalı. 2. Yüzey her zaman farklı partiler kullanarak değişirken çözücü kayıp fonksiyonunun yüzeyinde nasıl birleşir?
Kod Papa

Çeşitlendirme faydası hala karıştırma olmadan oradadır, ancak karıştırma kullanıldığında olduğu kadar önemli değildir, çünkü sürekli olarak aynı kayıp yüzeylerini görür, oysa karıştırma kullanırsak muhtemelen aynı kesin kayıp yüzeyini bir kereden fazla görmez. Durma kriterlerine gelince, genellikle benimkini, belirli bir yineleme sayısındaki ortalama kayıp yüzdesindeki azalma bir miktar toleranstan daha az olduğunda, eğitim durduğunda yazdım.
Josh

2
Belki de yerel minima ile ilgili sorunuza bu kadar iyi cevap vermedim. Teoride, bu kayıp yüzeylerinin tümü bir dereceye kadar benzerlik göstermelidir, çünkü yanıtın olasılık dağılımının (modelin öngörücülerine bağlı olarak) tüm eğitim veri seti üzerinde sabit olduğu varsayılır. Eğer bir minimum yeterince derinse, birçok mini partide görünmelidir, bu nedenle çözücünün dışarı çıkması pek olası değildir. Ancak asgari temelde sadece "gürültü" ise, bu strateji oldukça iyi çalışmalı ve modelin eğitime devam etmesine izin vermelidir.
Josh

Teşekkürler. İkinci tepkiniz, NN'nin farklı yüzeylere rağmen neden yakınsak olduğunu açıkça anlaşılabilir kılıyor. İlk sorumla ilgili olarak, aynı diziye sahip olmanın, partilerin kayıp yüzeylerinin çoğunda karıştırma kullanmanınkinden daha fazla bir "gürültü" tekrarlama olasılığının daha yüksek olacağını söylemek doğru mudur? Bu, mini partileri karıştırmadan kullanırken neden yerel minimada takılı kalmanın hala mümkün olduğunu verebileceğim tek açıklama.
Kod Papa

@CodePope Bence bu doğru. Ayrıca, eğitim başlangıcından bu yana kayıp çok azaldığında, degradeler oldukça küçük olacaktır ve çözücünün aynı kayıp yüzeylerini görmeye devam ettiği için temelde bir "döngüde" sıkışması bile mümkündür. Bunun oldukça sınırlı deneyimime dayalı spekülatif bir açıklama olduğunu lütfen unutmayın, bu yüzden ciddi bir teorik ilginiz varsa bir uzmana danışmanız daha iyi olur.
Josh

4

Son birkaç minibatch etiketinizin gerçekten daha fazla gürültüye sahip olduğunu düşünün. Daha sonra bu partiler, öğrenilen son ağırlıkları yanlış yönde çekecektir. Her seferinde karıştırırsanız, son birkaç partinin orantısız bir şekilde gürültülü olma olasılığı azalır.


1

Ağınızı sabit bir veri seti kullanarak eğittiğinizde, yani egzersiz sırasında asla karışmayacağınız veriler. 40,70, -101,200 ... vb. Gibi çok yüksek ve çok düşük ağırlıklara sahip olma ihtimaliniz çok yüksektir. Bu, ağınızın egzersiz verilerini öğrenmediği, ancak egzersiz verilerinizin gürültüsünü öğrendiği anlamına gelir. Klasik bir overfit modeli örneği. Bu tür bir ağla, eğitim için kullandığınız verilerle ilgili tahminleri göreceksiniz. Test etmek için başka girişler kullanırsanız, modeliniz parçalanır. Şimdi, her bir dönemden sonra (genel kümenin tekrarı) egzersiz verilerini karıştırdığınızda, her çağda nöronlara farklı girdiler beslersiniz ve bu da ağırlıkları düzenler, yani sıfıra yakın "daha düşük" ağırlıklar elde etme olasılığınız daha yüksektir ve bu, ağınızın daha iyi genellemeler yapabileceği anlamına gelir.

Umarım bu açıktı.


1

İşte daha sezgisel bir açıklama:

Degrade iniş kullanırken, kaybın degrade yönünde azaltılmasını istiyoruz. Gradyan, her ağırlık güncellemesi turu için tek bir mini partiden alınan verilerle hesaplanır. İstediğimiz şey, bu mini-parti tabanlı gradyan kabaca nüfus gradyanıdır, çünkü bunun daha hızlı bir yakınsama üretmesi beklenir. (Ağı 100 sınıf1 veriyi bir mini toplu işte 100 sınıf2 veriyi başka bir ağda beslerseniz, ağın etrafta dolaşacağını düşünün. Daha iyi bir yol, her mini toplu işte 50 sınıf1 + 50 sınıf2 ile beslemektir.)

Nüfus verilerini mini bir kümede kullanamadığımız için bunu nasıl başarabiliriz? İstatistik sanatı bize şunu söyler: popülasyonu karıştırın ve ilk batch_size veri parçaları popülasyonu temsil edebilir. Bu yüzden nüfusu karıştırmamız gerekiyor.

Söylemeliyim ki, popülasyondan veri örneklemek ve örneklerin makul bir gradyan üretebilmesini sağlamak için başka bir yönteminiz varsa karıştırma gerekli değildir.

Benim anlayışım bu. Umarım yardımcı olur.

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.