Sinir Ağının Öğrenme işlemine genel bakış (Ders-8)

derin öğrenme 101 iki ya da daha çok katmanlı derin sinir ağları

Bir sinir ağında Öğrenme (eğitim) işlemi tekrarlı işlemdir ve ağda her katman boyunca ileri ve geri yönde gerçekleştirilir. Ta ki loss fonksiyonu minimize olana kadar.

Tüm Öğrenme işlemi 3 ana bölüme ayrılır.

  1. ileri yayılım (forward propagation)
  2. loss fonksiyonun hesaplanması
  3. geri yayılım (back propagation)

İleri yayılım :

Bir sinir ağı birçok nöron’dan (perceptron’dan) oluşur ve bu nöronlar katmanların içinde yığınlanmıştır. Katmanlar arasındaki bağlantılar, ağın parametreleri (oklarla gösterilen) aracılığıyla gerçekleşir. Parametrelerimiz daha önce de belirttiğimiz gibi ağırlıklar ve bias’tır.

Ağırlıklar her bir girdinin önem seviyesini kontrol eder, bias’lar ise bir nöronun ne kadar kolay ateşleneceğini ya da aktive olacağını belirler.

Öncelikle, ağırlıklar ve bias’lar için rasgele sıfır olmayan değerler atanır. Buna ağın “parametre başlatımı” denir. Bu atanan değerler ve girdi değerleri bazında, her bir nöronda aşağıdaki hesaplamalar gerçekleşir.

  • Nöronun lineer fonksiyon hesaplaması
  • Nöronun aktivasyon fonksiyonun hesaplanması

Bu hesaplamalar tüm ağ boyunca olur. Çıktı katmanı node(lar)’ında hesaplamalar tamamlandıktan sonra, ilk iterasyonun ileri yayılım kısmının çıktısını elde ederiz .

İleri yayılımda, hesaplamalar giriş katmanından çıkış katmanına ağ boyunca yapılır.

Loss fonksiyonunun Hesaplaması :

İleriye doğru yayılımda gerçekleştirilen nihai çıktı, tahmin edilen değer olarak adlandırılır. Bu değer, sinir ağının performansını ölçmek için gerçek değerle karşılaştırılır. Bu noktada loss fonksiyonu oyuna girer. Loss fonksiyonu, obje fonksiyonu / cost fonksiyonu olarak da bilinir.

Loss fonksiyonu, “loss skor” olarak bilinen gerçek değer ile tahmin edilen değer arasında hesaplama yapar. Bu modelin hatası olarak da bilinir. Loss fonksiyonu her bir iterasyonda, modelin ne kadar iyi performans gösterdiğini yakalar. “Loss skor” Geri yayılım kısmında parametreleri güncellemek için bir geri bildirim sinyali  olarak kullanırız.

Loss fonksiyonunun ideal değeri 0 (sıfır)’dır. Bizim amacımız her bir iterasyonda loss fonksiyonunu 0’a yaklaştırarak minimize etmektir. Böylelikle model gerçek değerlere yakın daha iyi tahminler yapacaktır.

Sinir ağı eğitiminde yaygın olarak kullanılan LOSS FONKSİYONLARI :

Mean Squared Error (MSE) Mean Absolute Error (MAE) Mean Absolute Percentage Error (MAPE) Huber LossRegresyon problemlerinin performansını ölçmek için kullanılır.  
Binary Cross-entropy (Log loss)Binary (iki sınıflı) sınıflandırma problemlerinin performansını ölçmek için kullanılır.
Multi-class Cross-entropy/Categorical cross-entropyIki sınıftan daha fazla olan sınıflandırma problemlerinde performans ölçümü için kullanılır.

Geri yayılım :

Ilk iterasyonda, tahmin edilen değer gerçek değerden uzaktır.  Çünkü, başlangıçta ağ parametrelerine (ağırlık,bias) rasgele değerler atadık. Bu değerler optimal değerler değildir. Bu yüzden, loss fonksiyonunu minimize etmek için, bu parametrelerin değerlerini optimize etmeliyiz. Ağ parametrelerinin güncelleme işlemine, “parametre öğrenmesi” ya da “optimizasyon” denir. Geri yayılımı uygulayan bir optimizasyon algoritması (iyileştirici) kullanılarak yapılır.

Optimizasyon algoritmasının amacı, loss fonksiyonunun minimum değere sahip olduğu “global minimum”u bulmaktır. Fakat, yerel minimumlardan kaçınarak karmaşık bir kayıp fonksiyonunun global minimumunu bulmak bir optimizasyon algoritması için gerçek bir zorluktur. Eğer algoritma bir yerel minimumda durursa, loss fonksiyonu için minimum değeri elde edemeyeceğiz. Bu yüzden, modelimiz iyi çalışmayacak.

Sinir ağı eğitiminde sıklıkla kullanılan iyileştiriciler (optimizer) :

  • Gradient descent,
  • Stocastic Gradient Descent
  • Adam
  • Adagrad
  • Adadelta
  • Adamax
  • Nadam
  • Ftrl
  • Root mean squared propagation (RMSProp)

Geriye yayılımda, her katmandaki model parametrelerine göre “loss fonksiyonunun” kısmi türevleri (gradyanlar) hesaplanır. Zincir kuralı uygulanarak yapılır.

Loss fonksiyonunun türevi, model parametrelerinin(ağırlık, bias) değerlerini güncellemek için dikkate almamız gereken yönü bize sağlayan eğimdir.

Türev : bir şeyin başka bir şeye göre değişimidir. Türev değişimi ölçmek amaçlı kullanılan bir yapıdır.

Keras’ta sinir ağı kütüphanesi, otomatik türevleme sunar. Bu şu anlama gelir. Sinir ağı mimarisini tanımladıktan sonra, kütüphaneler otomatik olarak geri yayılım için gerekli tüm türevleri hesaplar.

Geri yayılımda, ağ boyunca hesaplamalar çıkış katmanından giriş katmanına doğru yapılır. (sağdan sola)

Batch size ve Epoch kavramları :

Sinir ağı eğitiminde bir iterasyonda tüm eğitim örneklerini (özellik/gözlem değerleri ya da sütun/satır) genellikle kullanmayız.  Bunun yerine, bir batch size belirleriz.

Bir epoch, tüm eğitim veri setinde bir iterasyondur.

Örnek : 1000 veriden oluşan veri setimiz olduğunu düşünelim. Batch size : 10, epoch : 20 seçmiş olalım. Bu durumda veri setimiz her biri 10 veriden oluşan 100 gruba bölünmüş olur. Bu tanımlamaya göre algoritma veri setinden ilk 10 veri setini alır ve modeli eğitir. Ardından ikinci 10 veri setini alır ve modeli eğitir. 100 defa işlem devam eder. Model parametreleri her optimizasyon döneminde 100 kez güncellenir.

Epoch 20 olduğu için, optimize edici tüm eğitim veri setinden 20 defa geçerek toplam 2000(100×20) tekrarlama yapar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

error: Yapay ZekAi : İçerik Korumalıdır !!