Stokastik gradyan inişi, bir dizi hiperparametreye sahip bir öğrenme algoritmasıdır.

Yeni başlayanların kafasını karıştıran iki hiperparametre, yığın boyutu ve dönem sayısıdır. Her ikisi de tamsayı değerlerdir ve aynı şeyi yapıyor gibi görünseler de farklı işlevlere sahiptir.

Bu yazımızda stokastik gradyan inişinde yığınlar ve dönemler arasındaki farkı keşfedeceksiniz.

Bu yazıyı okuduktan sonra şunu öğrenmiş olacaksınız:

  • Stokastik gradyan inişi, bir modeli güncellemek için bir eğitim veri kümesi kullanan yinelemeli bir öğrenme algoritmasıdır.
  • Yığın boyutu, modelin dahili parametreleri güncellenmeden önce üzerinde çalışılacak eğitim örneklerinin sayısını kontrol eden bir gradyan iniş hiperparametresidir.
  • Dönem sayısı, eğitim veri kümesinden tam geçişlerin sayısını kontrol eden bir gradyan iniş hiperparametresidir.

Nelerden bahseceğiz?

  1. Stokastik Gradyan İniş
  2. Örnek Nedir?
  3. Batch (Partide kullanılsada burada yığın kelimesini kullanacağız) Nedir?
  4. Epoch (Dönem veya yineleme) Nedir?
  5. Batch ve Epoch Arasındaki Fark Nedir?

Stokastik Gradyan İniş

Stokastik Gradient Descent veya kısaca SGD, makine öğrenimi algoritmalarını, özellikle de derin öğrenmede kullanılan yapay sinir ağlarını eğitmek için kullanılan bir optimizasyon algoritmasıdır.

Algoritmanın işi, logaritmik kayıp veya ortalama karesel hata gibi bazı performans ölçütlerine karşı iyi performans gösteren bir dizi dahili model parametresi bulmaktır.

Optimizasyon bir tür arama sürecidir ve bu aramayı öğrenme olarak düşünebilirsiniz. Optimizasyon algoritmasına " gradyan inişi " denir , burada " gradyan " bir hata gradyanı veya hata eğiminin hesaplanmasını ifade eder ve "iniş", bu eğim boyunca minimum bir hata düzeyine doğru aşağı inmeyi ifade eder.

Algoritma yinelemelidir. Bu, arama sürecinin birden fazla ayrı adımda gerçekleştiği anlamına gelir, her adım model parametrelerini biraz geliştirir.

Her adım, bazı örnekler üzerinde tahminler yapmak için mevcut dahili parametreler seti ile modeli kullanmayı, tahminleri gerçek beklenen sonuçlarla karşılaştırmayı, hatayı hesaplamayı ve dahili model parametrelerini güncellemek için hatayı kullanmayı içerir.

Bu güncelleme prosedürü, farklı algoritmalar için farklıdır, ancak yapay sinir ağları durumunda, geri yayılım güncelleme algoritması kullanılır.

Yığınlara ve dönemlere dalmadan önce, örnekle ne demek istediğimize bir göz atalım.

Örnek (Numune) Nedir?

Örnek, tek bir veri satırıdır.

Algoritmaya beslenen girdileri ve tahminle karşılaştırmak ve bir hatayı hesaplamak için kullanılan bir çıktıyı içerir.

Bir eğitim veri seti, örneğin birçok örnek gibi birçok veri satırından oluşur. Bir örnek aynı zamanda bir örnek, bir gözlem, bir girdi vektörü veya bir özellik vektörü olarak da adlandırılabilir.

Artık örneğin ne olduğunu bildiğimize göre, bir yığını tanımlayabiliriz.

Yığın Nedir?

Yığın boyutu, dahili model parametrelerini güncellemeden önce üzerinde çalışılacak örnek (numune) sayısını tanımlayan bir hiperparametredir.

Bir yığını, bir veya daha fazla örnek üzerinde yinelenen ve tahminler yapan bir for-loop olarak düşünün. Yığının sonunda, tahminler beklenen çıktı değişkenleriyle karşılaştırılır ve bir hata hesaplanır. Bu hatadan, modeli geliştirmek için güncelleme algoritması kullanılır, örneğin hata gradyanı boyunca aşağı doğru hareket edilmesi gibi.

Bir eğitim veri seti, bir veya daha fazla yığına bölünebilir.

Tüm eğitim örnekleri bir yığın oluşturmak için kullanıldığında, öğrenme algoritmasına yığın gradyan inişi denir. Yığın bir numune boyutunda olduğunda, öğrenme algoritmasına stokastik gradyan inişi denir. Yığın boyutu birden fazla örnek olduğunda ve eğitim veri kümesinin boyutundan küçük olduğunda, öğrenme algoritmasına mini yığın gradyan inişi denir.

  • Yığın Gradyan İniş : Yığın Boyutu = Eğitim Setinin Boyutu
  • Stokastik Gradyan İnişi: Yığın Boyutu = 1
  • Mini Yığın Graduam İniş: 1 < Yığın Boyutu < Eğitim Seti Boyutu

Mini yığın gradyan inişi durumunda, popüler parti boyutları 32, 64 ve 128 numuneyi içerir. Modellerde kullanılan bu değerleri literatürde ve öğreticilerde görebilirsiniz.

Veri kümesi yığın iş boyutuna göre eşit olarak bölünmezse ne olur?

Bu, bir modeli eğitirken sıklıkla olabilir ve olur. Bu basitçe, son yığın serisinin diğer serilerden daha az numuneye sahip olduğu anlamına gelir.

Alternatif olarak, veri kümesinden bazı örnekleri kaldırabilir veya yığın boyutunu, veri kümesindeki numune sayısı parti boyutuna eşit olarak bölünecek şekilde değiştirebilirsiniz.

 

Epoch (Dönem) Nedir?

Dönem sayısı, öğrenme algoritmasının tüm eğitim veri kümesi boyunca çalışacağı sayıyı tanımlayan bir hiperparametredir.

Bir dönem, eğitim veri kümesindeki her örneğin dahili model parametrelerini güncelleme fırsatına sahip olduğu anlamına gelir. Bir dönem, bir veya daha fazla gruptan oluşur. Örneğin, yukarıdaki gibi, bir kümeye sahip bir döneme, yığın gradyan iniş öğrenme algoritması denir.

Her döngünün eğitim veri kümesi üzerinde ilerlediği dönem sayısı üzerinden bir for-döngüsü düşünebilirsiniz. Bu for-döngüsü içinde, bir partinin belirtilen "yığın boyutu" numune sayısına sahip olduğu, her bir numune serisi üzerinde yinelenen başka bir iç içe for-döngüsü bulunur.

Dönemin sayısı geleneksel olarak büyüktür, genellikle yüzlerce veya binlercedir ve öğrenme algoritmasının modeldeki hata yeterince minimize edilene kadar çalışmasına izin verir. Literatürde ve 10, 100, 500, 1000 ve daha büyük olarak ayarlanmış öğreticilerde dönem sayısının örneklerini görebilirsiniz.

Zaman olarak x ekseni boyunca dönemleri ve y ekseninde modelin hatasını veya becerisini gösteren çizgi grafikleri oluşturmak yaygındır. Bu grafiklere bazen öğrenme eğrileri denir. Bu grafikler, modelin fazla mı, eksik mi öğrenildiğini veya eğitim veri kümesine uygun olup olmadığını teşhis etmeye yardımcı olabilir.

Batch ve Epoch Arasındaki Fark Nedir?

Yığın boyutu, model güncellenmeden önce işlenen numune sayısıdır.

Dönem sayısı, eğitim veri kümesinden geçen tam geçişlerin sayısıdır.

Bir yığının boyutu, eğitim veri setindeki numune sayısından büyük veya ona eşit ve numune sayısından az veya ona eşit olmalıdır.

Dönem sayısı, bir ile sonsuz arasında bir tamsayı değerine ayarlanabilir. Algoritmayı istediğiniz kadar çalıştırabilir ve hatta zaman içinde model hatasında bir değişiklik (veya değişiklik eksikliği) gibi sabit sayıda dönemin yanı sıra başka kriterler kullanarak durdurabilirsiniz.

Her ikisi de tamsayı değerlerdir ve her ikisi de öğrenme algoritması için hiperparametrelerdir, örneğin öğrenme süreci için parametreler, öğrenme süreci tarafından bulunan dahili model parametreleri değil.

Bir öğrenme algoritması için yığın boyutunu ve dönem sayısını belirtmelisiniz.

Bu parametrelerin nasıl yapılandırılacağına dair sihirli kurallar yoktur. Farklı değerler denemeli ve probleminiz için en iyi olanı görmelisiniz.