Makine öğrenme görevleri için veriler neden karıştırılmalıdır?


30

Makine öğrenim görevlerinde verileri karıştırmak ve normalleştirmek normaldir. Normalleştirmenin amacı açıktır (aynı özellik değer aralığına sahip için). Ancak, çok fazla mücadele ettikten sonra, verileri karıştırmak için değerli bir sebep bulamadım.

Bu yazı okudum var burada biz verileri karıştırmak gerektiğinde tartışan, ama biz verileri karıştırmak neden belli değil mi. Dahası, parti gradyan inişine ihtiyaç duyduğumuz Adam veya SGD gibi algoritmalarda sıkça rastladım (veriler mini partilere ayrılmalıdır ve parti büyüklüğü belirtilmelidir). Bu duruma göre hayati önem taşımaktadır yazı her parti için farklı verilere sahip olmasına her döneme ilişkin verileri karıştırmak için. Bu nedenle, belki de veriler karıştırılır ve daha da önemlisi değiştirilir.

Bunu neden yapıyoruz?


1
İlk bağlantıdaki cevabın size neden yardım etmediğini tam olarak belirtmeniz yararlı olabilir. Aksi taktirde, daha önce söylenen içeriğin çok az iyileştirmeyle tekrarlanması riskini alıyoruz.
E_net4,

Belirttiğim gibi nedenini ne zaman olmadığını bilmek istiyorum, neden olduğunu biliyor musunuz? Bu orada gerçekten açıklanmış mı? Bunun için hiçbir kağıt görmedim
Media

1
Örnek siparişin etkisi hakkında daha fazla bilgi için Müfredat Öğrenimi [pdf] bölümünü okuyun .
Emre

1
Bunu CrossValidated'e gönderdim ve bunun önemli olduğunu düşünüyorum. stats.stackexchange.com/a/311318/89653
Josh

@Emre aslında bu yazı karıştırmaya karıştı, teşekkürler, bu tür bir öğrenme duymadım.
Medya

Yanıtlar:


18

Dayalı: DataScience'da yayınlanan bir soru CrossValidated'a gönderilen bir sorunun kopyası ise ne yapmalıyız? , Cevaplarımı CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ) 'de sorulan aynı soruya tekrar gönderiyorum .

Not: Bu cevap boyunca eğitim kaybını en aza indirgemeyi kast ediyorum ve validasyon kaybı gibi durma kriterlerini tartışmıyorum. Durma kriterlerinin seçimi aşağıda açıklanan süreci / kavramları etkilemez.

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

Şimdi, W'de elementleri olduğunu varsayarsak (yani, ağda P ağırlıkları vardır), P + 1 boyutlu bir uzayda bir yüzeydir . Görsel bir analog vermek için, sadece iki nöron ağırlığımız olduğunu hayal edin ( P = 2 ). Öyleyse kolay bir geometrik yoruma sahiptir: 3 boyutlu bir uzayda bir yüzeydir. Bu, herhangi bir ağırlık W matrisi için , kayıp fonksiyonunun X üzerinde değerlendirilebilmesi ve bu değerin yüzeyin yükselmesi haline gelmesinden kaynaklanmaktadır.PWPP+1P=2WX

Ancak, dışbükeysizlik sorunu var; Tarif ettiğim yüzey çok sayıda yerel minimuma sahip olacak ve bu nedenle degrade iniş algoritmaları bu minimalarda "sıkışıp kalmaya" meyilliyken daha derin / daha düşük / daha iyi bir çözüm yakınlarda kalabilir. Bu, tüm eğitim yinelemelerinde değişmediği takdirde ortaya çıkar , çünkü yüzey verilen X için sabittir ; tüm özellikleri çeşitli minimaları da dahil olmak üzere statiktir.XX

Buna bir çözüm, karıştırma ile birlikte mini toplu eğitimdir. Satırları karıştırıp belirli bir yineleme sırasında yalnızca bir alt kümesinde egzersiz yaparak, , her yinelemede değişir ve gerçekte, tüm egzersiz yinelemeleri ve dönemleri boyunca iki yinelemenin tam olarak aynı X üzerinde gerçekleştirilmemesi mümkündür. . Bunun etkisi, çözücünün yerel bir asgari seviyeden kolayca "sıçraması" olmasıdır. Çözücünün, i - i uygulamalı mini-toplu X i iterasyonunda yerel minimumda sıkışmış olduğunu hayal edin . Bu asgari minimum , belirli bir ağırlık değerinde değerlendirilen değerine karşılık gelir ; biz buna X i ( WXXiXi . Kullandığımız çünkü bir sonraki denemede bizim kaybı yüzeyin şekli aslında değiştirir X i + 1 , olduğunuX i + 1 ( W i ) çok farklı bir değere alabilirX i ( W i ) ve Yerel bir asgariye uymuyor oldukça olası! Şimdi bir degrade güncellemesi hesaplayabilir ve eğitime devam edebiliriz. Açıklamak gerekirse: şekliX i + 1 olacaktır - genel olarak - bu farklıX iXi(Wi)Xi+1Xi+1(Wi)Xi(Wi)Xi+1Xi. Burada, X eğitim setinde değerlendirilen function kayıp fonksiyonuna ; Belirli bir W değeri için bu kaybın (sadece bir skaler olan) değerlendirilmesinden ziyade W'nin tüm olası değerleri üzerinde tanımlanmış tam bir yüzeydir . Ayrıca, küçük gruplar karıştırmadan kullanılırsa, hala kayıp yüzeylerin bir dereceye kadar "çeşitlendirilmesi" olduğunu, ancak çözücünün göreceği sınırlı (ve göreceli olarak küçük) benzersiz hata yüzeylerinin olacağına dikkat edin (özellikle Aynı dönemdeki mini seri kümeleri - ve dolayısıyla her bir dönem boyunca yüzeyleri kaybeder -).XWW

One thing I deliberately avoided was a discussion of mini-batch sizes, because there are a million opinions on this and it has significant practical implications (greater parallelization can be achieved with larger batches). However, I believe the following is worth mentioning. Because is evaluated by computing a value for each row of X (and summing or taking the average; i.e., a commutative operator) for a given set of weight matrices W, the arrangement of the rows of X has no effect when using full-batch gradient descent (that is, when each batch is the full X, and iterations and epochs are the same thing).


+1. Bu cevap teknik olarak daha iyi oy sayısına sahip diğer cevaptan daha iyi açıklanmıştır.
Gokul NC

29

Veri karıştırma, varyansı azaltma ve modellerin genel kaldığından ve daha az donanıma sahip olduğundan emin olma amacına hizmet eder.

Verilerinizi karıştırmanızın açık bir örneği, verilerinizin sınıflarına / hedeflerine göre sıralanıp sıralanmadığıdır. Burada, eğitim / test / onaylama setlerinizin verilerin genel dağıtımını temsil ettiğinden emin olmak için karıştırmak isteyeceksiniz.

Toplu degrade iniş için, aynı mantık geçerlidir. Toplu gradyan inişinin arkasındaki fikir, gradyanı tek bir partide hesaplayarak genellikle "gerçek" gradyanı hakkında oldukça iyi bir tahmin elde edersiniz. Bu şekilde, her seferinde veri setinin tamamındaki "gerçek" gradyanını hesaplamak zorunda kalmadan hesaplama zamanından tasarruf edersiniz.

Her dönemden sonra verilerinizi karıştırmak istiyorsunuz, çünkü her zaman genel veri kümesini temsil etmeyen partiler oluşturma riskiniz olacak ve bu nedenle degradedeki tahmininiz düşecek. Verilerinizi her dönemden sonra karıştırmak, çok fazla hatalı toplu işlemle "sıkışıp kalmamanızı" sağlar.

Normal stokastik gradyan inişlerinde, her parti 1 numarada olduğunda, öğrenmenizi genel tutmak için her dönemden sonra verilerinizi karıştırmak isteyebilirsiniz. Aslında, eğer veri noktası 17, veri noktası 16'dan sonra her zaman kullanılırsa, veri noktası (16) model üzerinde ne güncelleme yaparsa yapsın kendi gradyanı önyargılı olacaktır. Verilerinizi karıştırmak suretiyle, her bir veri noktasının, aynı noktalardan öncekileri önyargılı olmadan, model üzerinde "bağımsız" bir değişiklik oluşturmasını sağlarsınız.


1
As I explained, you shuffle your data to make sure that your training/test sets will be representative. In regression, you use shuffling because you want to make sure that you're not training only on the small values for instance. Shuffling is mostly a safeguard, worst case, it's not useful, but you don't lose anything by doing it. For the stochastic gradient descent part, you again want to make sure that the model is not the way it is because of the order in which you fed it the data, so to make sure to avoid that, you shuffle
Valentin Calomme

2
I think shuffling decreases variance and is likely to increase bias (i.e., it reduces the tendency to overfit the data). Imagine we were doing full-batch gradient descent, such that epochs and iterations are the same thing. Then there exists a global minimum (not that we can necessarily find it) which our solver is trying to locate. If we are using MSE loss, then we will minimize bias if we could reach this solution every time. But since this global minimum is likely to be found in a different place for different training sets, this solution will tend to have high variance.
Josh

2
Karıştırma ile tüm eğitim seti için küresel asgari düzeyde yatan bir çözüme yaklaşma ihtimalimiz daha düşüktür (daha yüksek önyargı), ancak daha iyi genelleşen (daha düşük sapma) bir çözüm bulma olasılığı daha yüksektir.
Josh,

7

Verilerin belirtilen sıraya göre sıralandığını varsayalım. Örneğin, sınıflarına göre sıralanmış bir veri seti. Bu nedenle, eğitim, doğrulama ve test için bu konuyu düşünmeden veri seçerseniz, her bir sınıfı farklı görevler için seçersiniz ve bu işlem başarısız olur.

Bu nedenle, bu tür sorunları engellemek için basit bir çözüm, farklı eğitim, doğrulama ve test verilerini almak için verileri karıştırmaktır.

Mini-parti hakkında, bu yazıya verilen cevaplar sorunuza bir çözüm olabilir.


1
@Media The most related answer in the provided link is: "Shuffling mini-batches makes the gradients more variable, which can help convergence because it increases the likelihood of hitting a good direction"
OmG

Actually I have seen this in the paper of SGD but it as the authors of the paper claimed it is the reason of convergence not the shuffling. I saw the link and I doubt it a bit. for more clarity look this amazing paper. The authors have mentioned the point there, but as you will see there is no exact reason for shuffling
Media

1

We need to shuffle only for minibatch/SGD, no need for batch gradient descent.

If not shuffling data, the data can be sorted or similar data points will lie next to each other, which leads to slow convergence:

  • Similar samples will produce similar surfaces (1 surface for the loss function for 1 sample) -> gradient will points to similar directions but this direction rarely points to the minimum-> it may drive the gradient very far from the minimum
  • “Best direction”: the average of all gradient of all surfaces (batch gradient descent) which points directly to the minum
  • “Minibatch direction”: average of a variety of directions will point closer to the minimum, although non of them points to the minimum
  • “1-sample direction”: point farther to the minimum compared to the minibatch

I drew the plot of the L-2 loss function for linear regression for y=2x here


1

Because is evaluated by computing a value for each row of X (and summing or taking the average; i.e., a commutative operator) for a given set of weight matrices W, the arrangement of the rows of X has no effect when using full-batch gradient descent

Complementing @Josh's answer, I would like to add that, for the same reason, shuffling needs to be done before batching. Otherwise, you are getting the same finite number of surfaces.


Thank you and welcome to our community.
Media

1

For best accuracy of the model, it's always recommended that training data should have all flavours of data.

Shuffling of training data helps us in achieving this target.


1

By shuffling the rows and training on only a subset of them during a given iteration, 𝑋 changes with every iteration, and it is actually quite possible that no two iterations over the entire sequence of training iterations and epochs will be performed on the exact same 𝑋

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.