Derin Öğrenme (Deep Learning) - Yapay Sinir Ağı

Optimize Edici (Optimizer)

Yayın tarihi :14-Şub-22

Günümüzde makine öğrenimi kapsamında oldukça gelişmiş ve üst düzey öğrenme prensibi olarak tanımlanabilen derin öğrenme, sahip olduğu geliştirmelere bağlı olarak oldukça karmaşık verisel formlarla etkili bir mücadele; herhangi canlı veya cansız nesnelerin görüntü tanımlamaları, canlıların ses tanımlamaları, şekil veya yazı tanımlamaları vb. birçok geniş kapsamlı alanda oldukça başarılı çalışmalarda kullanılmaktadır. Aşağıdaki şekilde görüldüğü üzere genel hatlarıyla derin öğrenme modeli;

  • Girdi katmanı
  • Gizli katmanlar
  • Çıktı katmanı
  • Aktivasyon fonksiyonu
  • Kayıp fonksiyonu
  • Optimize edici

gibi nesnelerden meydana gelmektedir. Belirtilen bu nesnelerin bütünlüğüyle oluşan derin öğrenme modeli ise, çalışmaya uygun geliştirilmiş bazı algoritmalar dahilinde gerçek etiketli veriler kullanarak, bu verilere benzerlik gösterebilecek tahminsel analizlemeler yapabilmektedir. Bu bağlamda, girdi olarak kullanılan veriler ile çıktı ürünlerinin eşleşmesini hedefleyen spesifik bir algoritmanın kullanıldığını ve bu algoritmanın yanı sıra "optimize edici(veya optimizasyon algoritması)" olarak isimlendirilen nesnelerin kullanıldığı ifade edilebilir. 

Optimize Edici(Optimizasyon Algoritması) Nedir?

Optimize edici veya optimizasyon algoritması, çalışmalarda kullanılmak istenilen verilerin girdi değerleri ile model dahilinde oluşturulan uygun çıktı değerlerinin eşleştirilmesinde görev alan ve sahip olduğu görev dahilinde eşleşme esnasında meydana gelebilecek hatanın minimum düzeylere indirilmesi için optimum ağırlık hesaplamaları yapan, derin öğrenme sürecinde oldukça kritik bir yapı olarak tanımlanabilir.  Belirtilen tanımdan da anlaşılacağı üzere bu yapılar, modelin performans ve doğruluk oranlarını doğrudan etkileyebilmektedir. 

Bahsedilen bu ifadeleri daha basit bir şekilde anlayabilmek için, yukarıdaki genel derin öğrenme model yapısı incelenebilir. Görüldüğü üzere; model herhangi bir veriyi girdi olarak alır ve tahminsel bir çıktı üretir. Daha sonra oluşturulan tahminsel çıktı ile gerçek değerler kayıp fonksiyonu bünyesinde analizlenir ve meydana gelen sonuçlara göre optimize ediciler devreye girerek ağırlıklar üzerinde iyileştirmeler gerçekleştirebilir. Böylelikle bu döngü uygun sonuçların gözlenmesine kadar devam edebilir ve bunun sonucunda yüksek performans ve yüksek doğruluk oranlarına sahip modeller eğitilmiş olunur. Derin öğrenme'de kullanılmak istenilen model yapısının eğitimi esnasında, mevcut katmanlara etki eden her ağırlığın değiştirilmesi ve/veya kayıp fonksiyon oranlarının minimum düzeylere indirilmesi gerekmektedir. Bahsedilen bu iki eylem de modelin üst düzey ve yüksek performanslı oluşması sağlanmaktadır. Sonuç olarak optimize ediciler veya optimizasyon algoritmaları; hata oranını minimum düzeylere indirgeyebilmek için genel sinir ağ yapısında bulunan ideal ağırlıkları hesaplayabilen, çalışmaya uygunluk derecesine göre güncelleyebilen ve öğrenme sürecinin limitlerini(hız) değiştirebilen bir yapı olarak tanımlanabilir. 

Bilindiği üzere herhangi bir derin öğrenme model yapısı oldukça yüksek rakamlarda ağırlık nesnelerine sahiptir. Bu durum gözönüne alındığı zaman, derin öğrenme süreci için kullanılacak model yapısı için ideal ağırlıkların  hesaplanabilinmesinin oldukça zor bir süreç olacağı düşünülmektedir.  Ancak, bu durum çalışma alanının genişliğine bağlı olarak kulanılan nesneler üzerinde geniş kapsamlı seçim hakkına imkan sağlamaktadır. Ayrıca artan bilgi birikimi ve modern teknolojik imkanlar dahilinde birçok farklı optimize edici geliştirilmiş ve sürecin uygunluğuna göre spesifik olarak iyileştirilmişlerdir. 

 

Optimize Edici Türleri

Yukarıda bahsedildiği üzere optimize ediciler sayesinde model için ideal ağırlık hesaplamaları ve öğrenim hızları üzerinde değişimler yapılabilinmektedir. Bu bağlamda birçok farklı optimize edici geliştirilmiş ve kendi bünyelerinde özelleştirilmiştir. Günümüzde genel olarak bilinen ve yaygın olarak kullanılan bazı optimize ediciler;

  • Gradyan İnişi (Gradient Descent)
  • Stokastik Gradyan İnişi (Stochastic Gradient Descent)
  • Uyarlanabilir Gradyan İnişi (Adaptive Gradient Descent (Adagrad))
  • AdaDelta
  • Kök Ortalama Kare Yayılımı (RMSprop)
  • Uyarlanabilir Moment Tahmini (Adaptive Moment Estimation (ADAM ))

Burada ifade edilen 6 farklı optimize edicinin temel çalışma prensipleri aynı olsa da, genel hatlar çerçevesinde birbirlerine göre farklı özelleştirmelere sahiptirler. Bu özelleştirmeler sayesinde seçim skalasında artış yaşanır ve böylelikle yapılacak derin öğrenme uygulanması baz alınarak çalışmaya uygun olabilecek optimize edici belirlebilinmektedir. Örneğin; yüz tanıma sistemi geliştirebilmek için gradient descent tercih edilebilinirken, yazı tanıma için adagrad tercih edilebilir. Bu seçim tamamen yapılacak uygulamanın özelliklerine bağlıdır.

NOT: Seçim işlemleri yapılırken rastgele bir optimize edicinin seçilmesi çalışmayla uyum sağlayamayabilir ve çalışma sonlanır. Bu durumun yaşanmaması için optimize edicilerin uygunluğu birçok farklı olasıksal analizlemelerden geçirilmesi gerekmektedir.

☆ Gradyan İnişi (Gradient Descent)

Gradyan iniş optimizasyon algoritması, derin öğrenme/sinir ağları çalışmalarında kullanılan en eski ve en popüler optimize edici olarak bilinmektedir. Bu optimize ediciler hedef değerleri(örn;ağırlıklar) mümkün olan optimum düzeylere dönüştürmek ve süreç sonucunda yerel minimum(fonksiyonun azalmadan artmaya yön değiştirdiği nokta) düzeyine ulaştırmayı hedeflemektedir. Buradan hareketle GD optimizasyon algoritmalarının, kullanılacak verilerin dışbükey optimizasyon problemlerini bünyesinde barındıracağı durumlarda, düzenleme için en uygun araçlar olduğu anlaşılmaktadır.

Standart olarak her optimize edicinin genel amacı kapsamında GD optimizasyon algoritmaları, model yapısının ağırlık değerlerini optimum düzeye güncelleyerek minimum güçle eylemleri gerçekleştirebilen(en düşük maliyetli fonksiyon(least cost function)) fonksiyonun değerini tespit etmeye çalışır ve böylelikle "global minimum 'u(tüm fonksiyon içerisindeki değerlerin en küçüğü)" karşılayan en küçük ağırlık değerini hesaplamaktadır.

Çalışma Prensibi;

Genel itibariyle bu optimizasyon fonksiyonların temel çalışma prensibi fonksiyonun negatif ve pozitif iniş durumlarına göre şekillenmektedir.

Yani;

  • eğer hareket eylemi negatif bir eğim ile gerçekleştirilirse eski ağırlıklar artırılır,
  • hareket eylemi pozitif bir eğim ile gerçekleştirilirse eski ağırlıklar azaltılır,

Yukarıda GD optimizasyon algoritmasının temel çalışma mantığı şekillendirilmiştir. Şekilde görüldüğü üzere;

  1. Rastgele alınmış bir katsayı(şekil üzerinde mavi ve sarı daireler) tüm maliyet değerlerini gözlemler ve daha sonra en düşük maliyet değerini tespit eder,
  2. Daha sonra gözlem sonuçları baz alınarak mevcut değerinden daha düşük değerde bulunan ağırlıklara doğru negatif veya pozitif yönlü hareket gerçekleşir ve katsayılar güncellenir,
  3. Son olarak tüm bu süreç global minimum'a erişilene kadar devam eder.

Dezavantajlar;

Yukarıda bahsedildiği üzere GD optimizasyon algoritmaları, birçok sinir ağı çalışmasında en iyi sonucu veren ve diğer optimize ediciler arasında en popüler olanı olarak tanımlanabilinir. Ancak, genel olarak GD kullanımının ciddi avantajlarının yanısıra birtakım dezavantajlarıda bulunmaktadır. Bunlar;

  • Kullanılacak veriler devasa boyutlarda ise gradyanların hesaplanması oldukça güçleşmektedir,
  • Yukarıda bahsedildiği üzere bu algoritmalar dışbükey fonksiyonlar için oldukça idealdir ancak diğerleri için aynı performansı gösteremeyebilir.

 

☆ Stokastik Gradyan İnişi (Stochastic Gradient Descent)

Stokastik gradyan iniş algoritmaları genel hatlarıyla gradyan iniş algoritmalarına benzeyen ancak gradyan iniş algoritmalarından farklı olarak dışbükey olmayan fonksiyonlarla da oldukça iyi bir şekilde çalışan bir optimize edici olarak tanımlanabilir. Bu algoritmaların kullanılmasına bağlı olarak yapılacak her ağırlık güncellemelerinde tüm veri seti kullanılmaz, bunun yerine oluşturulan veri grupları arasında stokastik (ratgele/raslantısal) seçimler yapılmaktadır. Böylelikle tüm veri setinin kullanılması yerine birkaç veri numunesi kullanılmış olunur. Bu durumun en büyük avantajı ise, devasa boyutlardaki verilerle çalışma imkanını sağlamasıdır. Sonuç olarak bu avantaj sayesinde, oldukça kısa bir zaman içerisinde toplam verinin analizlenmesine ihtiyaç duyulmadan bazı gruplar baz alınarak hızlı bir şekilde hesaplamalar ve ağırlık güncellemeleri yapılabilinir. 

Yukarıda verilen şekil incelendiğinde, stokastik gradyan iniş algoritmalarının izlemiş olduğu yolun çok fazla gürültülü olduğu görülmektedir. Yol üzerinde bulunan gürültüler yüzünden stokastik gradyan algoritmaları yerel minimum noktasına ulaşabilmek için oldukça yüksek oranlarda aynı öğrenme oranları kapsamında yinelemeler gerçekleştirmek zorundadır. Bu durumdan dolayı ise bütünü hesaplama süresinde oldukça ciddi artışlar yaşanabilir. Ancak bu artışlar yüksek oranlarda olsa bile gradyan inişe kıyasla oldukça düşük oranlar oldukları söylenebilir. 

Sonuç olarak stokastik gradyan inişi algoritmaları kullanılmasına bağlı olarak devasa boyutlardaki veri kümeleri üzerinde oldukça hızlı bir hesaplama avantajı ile oldukça başarılı sinir ağ çalışmaları yapılabilinmektedir. 

 

☆ Uyarlanabilir Gradyan İnişi (Adaptive Gradient Descent (Adagrad))

Uyarlanabilir gradyan iniş algoritmaları, kullanılacak modelin öğrenme hızı dahilinde güncelleme yapılan parametrik değerlerin tespit edilmesinden görevli bir optimize edicidir. Bu optimizasyon algoritmaları modelin bütün parametrelerini belirleyebilmek için, gerçekleştireceği her yinelemeye özgü farklı bir öğrenme oranı kullanmaktadır. Bunun sonucunda ise modele etki eden ağırlıklar spesifik olarak güncellenebilinir. Genel olarak öğrenme oranlarındaki değişimler anlaşılacağı üzere eğitim sırasındaki birçok parametrenin farklılaşmasına bağlıdır. Yani, öğrenme oranlarında küçük değişiklikler gözlenirse parametrelerin yüksek oranlarda değiştiği, tam tersi olarak öğrenme oranlarında büyük değişikler gözlenirse parametrelerin düşük oranlarda değiştiği anlaşılmalıdır. Örneğin; eğer yüksek bağdaşım özelliği mevcut ise düşük ağırlık güncellemeleri, düşük bağdaşım özelliği mevcut ise yüksek ağırlık güncellemeleri yapılmaktadır. Bunun sonucunda ise spesifik iyileştirmelere bağlı olarak yüksek performanslı sonuçların üretilmesine olanak sağlanır. Bahsedilen bu bilgilerden hareketle uyarlanabilir gradyan iniş algoritmalarının seyrek verilerde kullanılmasının daha uygun olduğu söylenebilir.

NOT: Uyarlanabilir gradyan inişi algoritmalarında her yinelemeye özgü farklı öğrenme oranları kullanılması diğer algoritmalara göre temel farklılık oluşturmaktadır. 

Avantajlar;

  • Öğrenme oranlarının otomatik olarak belirleyebilmesi,
  • Diğer gradyan iniş algoritmalarına göre daha güvenli olması,
  • Yakınsamaya hızlı ulaşım.

Dezavantajlar;

  • En büyük dezavantajı öğrenme oranında ciddi düşüşler yapabilmesinden kaynaklanır. Eğer herhangi bir sinir ağında çalışma yapılırken oldukça düşük öğrenme oranları mevcut ise kullanılacak model yapısı yeterince eğitim göremez(bilgi öğrenemez) ve bunun sonucunda düşük performanslı modeller elde edilebilir. 

 

☆ AdaDelta

AdaDelta algoritması, uyarlanabilir gradyan iniş algoritmasının iyileştirilmiş bir uzantısıdır. Bu algoritmalar uyarlanabilir gradyan iniş algoritmalarının öğrenme oranlarını sonsuz dereceye düşürmesiyle ilgilenmektedir. Anlaşılacağı üzere öğrenme oranlarının sonsuz dereceye düşürülmesi sonucunda, sinir ağı için kullanılan modelin bilgi öğrenmesi kısıtlanır. Bu kısıtlamaya bağlı olarak model uygun performansı gösteremez ve çalışmalar başarısızlıkla sonuçlanır. Buradan hareketle temel olarak uyarlanabilir öğrenme referanslı geliştirilen AdaDelta algoritmaları, AdaGrad algoritmalarının dezavantajlarına müdehale edebilmek için geliştirilmiştir.

AdaDelta algoritmalarında öğrenme katsayılarını seçmek gibi bir zorunluluk bulunmamaktadır. Bu bağlamda meydana gelebilecek problemlerle etkili bir mücadele yapabilmek için, öğrenme katsayısı seçmek yerine mevcut ağırlıklar ile güncellenmiş ağırlık oranları arasındaki farkların karelerinin momentumlu toplamları kullanılır. 

 

 Kök Ortalama Kare Yayılımı (RMSprop)

Kök ortalama kare yayılım algoritması, temel olarak AdaDelta algoritmasına benzeyen, AdaGrad algoritmasının bir uzantısı olan ve sabit öğrenme katsayılarını ortadan kaldırmak için geliştirilmiş popüler bir optimize edicidir. Bu algoritmalar AdaGrad algoritmaların oluşturabileceği sorunlarla mücadele için kullanılır. Bu durumun temel dayanağı, kök ortalama kare yayılım algoritmalarının monoton düzeyde azalma gösteren öğrenme oranlarını indirgeyebildiği için AdaGrad algoritmalarının ilerlemesi olarak düşünülebilinir. Bu algoritmayı AdaGrad algoritmasından ayıran temel fark momentumlu gradyanların karelerin alınmasıdır.

 

 Uyarlanabilir Moment Tahmini (Adaptive Moment Estimation (ADAM ))

Uyarlanabilir moment tahmin algoritması veya günümüzde daha yaygın tabiriyle ADAM, derin öğrenme alanı çalışmalarında stokastik optimizasyon için üretilmiş bir optimize edicidir. Bu algoritmalar uyarlanabilir gradyan inişi ve kök ortalama kare yayılımı algoritmalarının iyi özelliklerinin bir yapıya entegrasyonu sonucu geliştirilmiştir. Bu algoritmaların temel geliştirilme amacı, yüksek oranlarda gürültüye sahip verilerle oluşturulmuş doğrusal sistemlerin ve/veya sadece gürültülü gözlemler ile tahminsel sonuçlar üretebilen fonksiyonların ciddi oranda yüksek değerlerini yakalayabilmektir. Bu algoritmalara uygun sinir ağ modellerinde kullanımları oldukça basittir ve model ağırlık katsayılarını oldukça yüksek verimilikte hesaplayabilir. Ayrıca, bu algoritmaları kullanabilmek için oldukça ideal bellekler yeterli olmakla birlikte oldukça büyük veri kümeleri üzerinde başarılı çalışmalar yapılmasına olanak sağlamaktadır. 

 

 

 

 

 

 

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.