Derin Öğrenme Uygulamalarında Hiper Parametre Seçim Yöntemleri

Necmettin Çarkacı
Deep Learning Türkiye
7 min readFeb 12, 2018
Related image
Resim kaynak : Omelchenko/Shutterstock

Derin öğrenme uygulamalarında hiper parametreler yazı serisinin ilk bölümünde, derin öğrenme uygulamalarında en sık kullanılan hiper parametreler ve bu hiper parametreler için genel geçer yöntemler üzerinde durmuş ve en iyi uygulama örneklerine (best practice) yönelik bazı açıklamalarda bulunmuştum. Serinin ikinci yazısı olan bu çalışma hiper parametreler için kullanılan seçim yöntemleri üzerine olacak.

Şekil 1 : Temel makine öğrenmesi süreci (Resim kaynak : Natalia Angarita)

Derin öğrenme ile gelen çok katmandan oluşan mimari yapılar, tasarımcı tarafından karar verilmesini bekleyen bir dizi hiper parametre grubunu da beraberinde getirdi. Bu parametrelerden bazıları, optimizasyon algoritması ve aktivasyon fonksiyonu gibi örneklerde olduğu gibi belirli sayıda algoritma grubu içinden model de uygulanacak temel algoritmanın seçimine yöneliktir. Algoritma sayısı sınırlı sayıda olduğu için bu tarz hiper parametrelerin seçimi ile başetmek genelde zor değildir.

Bununla birlikte katman sayısı, nöron sayısı, öğrenim kat sayısı, kernel boyutu vb. gibi belli sınırlar dahilinde ya da sayı doğrusu üzerinde menzili sonsuza doğru uzanan bir küme içinden seçim yapmamızı bekleyen hiper parametre tipleri de mevcuttur. Bu tür hiper parametrelerin seçimi meşakkatli ve zaman alıcı bir süreçtir.

Model tasarımı yapılırken hiper parametrelere yönelik yaptığımız ilk seçimler genelde bizi doğru sonuçlara götürmez. İteratif bir şekilde ardı ardına hiper parametreler değiştirilerek, modelin başaırımı gözlenir ve model için en uygun hiper parametre grubu seçilmeye çalışılır. Bunu yanı sıra bu seçilim işini otomatize eden yöntemlerde mevcuttur. Yazının devamında bu yöntemler üzerinde durulacaktır.

Sezgisel Parametre Uydurma

Probleme dair ön bilgilerimizi kullanarak hiper parametreler tahmin edilir, model bu hiper parametrelere göre tasarlanır ve sonuçlar gözlenir. Çıkan sonuçlara göre sezgisel olarak modelin başarımını artıracak yeni hiper parametre tahminleri yapılarak model tekrar oluşturulup, eğitilir ve sonuçlar gözlenir. Bu döngü Şekil 2'de de görüleceği üzere beklenen başarımı verecek uygun parametre grupları bulunana kadar devam eder.

Şekil 2: Resim kaynak : Alexandra Johnsonrand

Sezgisel aramanın bazı özellikleri aşağıdaki gibidir;

  • Sınırlı sayıda parametre denemesi yapılabilir.
  • Başarım probleme dair öngörülerimizle sınırlıdır.
  • En yaygın kullanılan yöntemdir.

Grid Search İle Uygun Parametreleri Bulma

Hiper parametrelerden bazıları sonsuz sayıda değer alabilecek konumdadırlar. Bununla birlikte biz problem hakkında sahip olduğumuz ön bilgileri kullanarak hiper parametrelerin alabilecekleri değerler için aralıklar belirleyebiliriz. Belirlediğimiz bu aralıklardan belirli ana noktalar seçilerek hiper parametreler için değer listeleri oluşturulur. Grid search ile hiper parametre seçim işleminde; belirlenen aralıkta bulunan tüm değerlerin kombinasyonları için ağ eğitilip sonuçlar gözlenir duruma göre en iyi kombinasyon hiper parametre grubu olarak seçilir.

Image result for grid search
Şekil 3: Grid search [2]

Grid Search bazı özellikleri;

  • Sadece iyi başarım veren sonuca odaklanılmaması gerekmektedir. Konfigürasyon değerlerine karar vermek için grid search’deki trendler gözlenmelidir. Bu nedenle grid search sonucundaki tüm sonuçlar gözden geçirilmelidir. Yani parametreler arasındaki ilişkiler, eğilimler gözlenerek sabit parametreler yada aralıklar gözlenmelidir.
  • Grid search’de farklı parametre kombinasyonlarının denenebilmesi için paralel işlemler koşturulabilir. Böylece zamandan tasarruf sağlanmış olur.
  • Derin ağları eğitmek uzun zaman alan işlem olduğu için, hiper parametre seçimi için veri kümesinin bir alt kümesi üzerinde çalışılabilir böylece zamandan tasarruf edilmiş olur. Bu işlemde amaç hiper parametreler için en uygun değerleri bulmak değil, genel bir kanı oluşturmaktır. Böylece hiper parametrelerin hangi aralıklarına odaklanacağı belirlenir.
  • Hiper parametreler için başlangıçta değerleri büyük tutmak, daha sonra uygun bulunan değer aralıklarına yoğunlaşmak zaman kazancı sağlayacaktır. Örneğin ağdaki nöron sayısı için başlangıçta [10, 100, 500, 1000] gibi bir aralık seçip daha sonra sonuçlara göre kapsamı genişleterek [100, 150, 200, 250, 300, 350 , 400] gibi derinlemesine ilerlemek zaman tasarrufu sağlayacaktır.

Rastgele Arama ile Uygun Parametreleri Bulma

İlk olarak Bengio tarafından 2012 yılında yayınlanan Random Search for Hyper-Parameter Optimization adlı makalede önerilmiştir. Grid search’de olduğu gibi probleme dair ön bilgiler kullanılarak hiper parametre aralıkları belirlenir. Daha sonra bu aralıkta ki değerlerin her birini denemek yerine rastgele değerler seçilerek hiper parametre grupları oluşturulur. Daha sonra en iyi sonucu bulana kadar veya sonuca dair beklenen değere ulaşana kadar rastgele farklı parametre gruplarıyla model eğitilerek başarım gözlenir. Sonuçlara göre en uygun hiper parametre grubu bulunur.

Şekil 4: Resim kaynak : Ankit Sharma

Rastgele aramanın bazı özellikleri aşağıdaki gibidir;

  • Grid search’e göre daha hızlıdır. Çünkü tüm kombinasyonlar yerine rastgele seçilen alt kümeler üzerinde çalışır, bu da hızı artırır.
  • Her zaman başarılı sonucu vermeyi garanti etmez.
  • Grid search’e göre daha geniş aralıklarda parametreler belirlenebileceği için bazı durumlarda daha iyi başarım verir.

Genetik algoritmalar İle Uygun Parametreleri Bulma

Rastgele aramaya benzer şekilde çalışır. Belli parametreler sabit tutularak her denemede çok az kısım parametrenin değeri değiştirilerek model eğitilip sonuçlar gözlenir.

Şekil 5: Genetik algoritma seçim döngüsü (Resim kaynak : quantdare.com)

Genetik algoritma ile hiper parametre aramanın bazı özellikleri aşağıdaki gibidir;

  • Evrimsel algoritmalar diğer yöntemlere göre uygun değerlerin bulunmasında daha güçlü bir tekniktir.
  • Parametreler arasındaki korelasyon ve trendler daha iyi öğrenilir.
  • Göreceli olarak hızlıdır.
  • Geleceği parlak yöntemlerdendir. Önümüzdeki dönemlerde bu alandaki çalışmalarda adını daha sık duyacağız.

Bayes Yöntemi ile Hiper Parametre Arama

Ryan Adams tarafından 2012 yılında yayınlanan “Practical Bayesian Optimization of Machine Learning Algorithms” isimli makalede ortaya atılan ve google cloud tarafından da kullanılan yöntemde hiper parametreler oluşturularak yapılan çalışmaların sonuçları bir sonraki hiper parametre seçiminde kullanılmaktadır. Bu seçim işleminde bilinen Bayes teoremi üzerinden olasılık hesabı yapılmaktadır.

Bayes yöntemi ile hiper parametre aramanın bazı özellikleri aşağıdaki gibidir;

  • Yaygın bir yöntemdir. Google ve daha bir çok framework bu yöntemi kullanıyor.
  • Diğer yöntemlere göre daha hızlıdır.

Derin Öğrenme İle Hiper Parametre Öğrenme

Son dönemde daha önceki derin öğrenme modellerini öğrenerek oluşturulacak yeni modellerin parametrelerini hesaplayan modeller üzerine çalışılmaktadır. Bu konudaki son çalışma Google Brain ekibi tarafından 2017 yılında yayınlanan “Using Machine Learning to Explore Neural Network Architecture” adlı makalede ortaya atılan, derin öğrenme ile model oluşturacak model tasarlanması projesinde; derin öğrenme modeli tarafından hiper parametreler seçilerek modeller tasarlanmaktadır. Yapılan çalışmalarda bu yöntem ile daha hızlı ve daha kompleks modeller oluşturulduğu gözlenmiştir. Bununla birlikte oluşturulan modellerde fazladan katmanların ve bağların olduğu da gözlenmiş. Bu bağ ve katmanların hata mı yoksa iyileştirme mi olduğu henüz tanımlanamamıştır. Yapılan çalışmaların sonuçları hala tartışamaya açık durumdadır. Bu teknik hala gelişme aşamasındadır.

Şekil 6: Google tarafından oluşturulan CIFAR modeli (solda) ve derin öğrenme modeli tarafından üretilen CIFAR modeli (sağda) [4]

Derin öğrenme ile hiper parametre aramanın bazı özellikleri aşağıdaki gibidir;

  • Hala gelişim aşamasındadır.
  • Probleme göre değişiklik göstermektedir. Her problem çeşiti için aynı verimlilikte çalışmamaktadır.
  • Gelecekte üzerinde konuşulacak açık bir alan oluşturmaktadır.

Hiper Parametre Analizi İçin Makalelerde Tartışma Bölümü Önerisi

Yukarıda tartışıldığı üzere hiper parametreler derin öğrenme algoritmalarının vazgeçilmezleridir, ve başarım üzerinde hayli etkilidir. Neredeyse derin öğrenme modeli demek en uygun hiper parametre grubu seçmekle eş değer anlamdadır. Bununla birlikte her zaman en iyi başarımı verecek parametre çiftleri aranmamaktadır. Problemin türüne, çalıştırılacağı ortama, ne kadar sıklıkla eğitileceğine vb. ihtiyaçlara göre başarımdan bir miktar feragat edildiği durumlar da gerçek hayat senaryolarında mevcuttur. Bu gibi durumlarda nasıl hareket edileceği hangi hiper parametrelerin ne ölçüde değiştirileceği, hangi hiper parametrelerin birbiriyle korelasyon içinde olduğu araştırılmalı, trendler belirlenmeli yapılan çalışmalarda sunulmalıdır.

Son dönemde derin öğrenme çalışmalarını içeren çalışmalarda sadece en iyi başarımı veren hiper parametre grupları verilmektedir. Bazı çalışmalarda bu parametre çiftleri bile tam olarak verilmemektedir. Hiper parametrelerin seçimi ve hangi aralıklarda nasıl başarım elde ettiği tartışılmamaktadır. Bu durum çalışmanın analiz değerini zayıflatmaktadır. Önerim yapılan derin öğrenme çalışmalarında sezgisel hiper parametre seçim yöntemi yerine belli aralıklarda hiper parametrelerin seçilmesi ve bu aralıklarda model başarımı ve çalışma zamanın hiper parametre değişiminden nasıl etkilendiğinin ayrıntılı olarak verilmesi ve birbiriyle korelasyon içinde olan hiper parametre gruplarının tartışılması, hiper parametrelerin biribiriyle bağlantısının analiz edildiği bir hiper parametre analiz bölümünün tüm çalışmalarda olması zorunluluğudur. Bana göre artık hızına yetişemediğimiz ölçüde çalışma yapılan böyle bir alanda bu şekilde bir standardın oluşturulması elzemdir. Hiç şüphesiz bunun başlangıcı makale değerlendiren hakemlerin yönlendirmeleri olacaktır.

Açıklama

Yazıda bazı kavramlar için ingilizceleri kullanıldı. Kavramlar yeni yeni oturmaya başladığı için Türkçe karşılıkları henüz tam olarak oturmadığından veya tavsiye edilen karşılıkları içime sinmediğinden (o haliyle okuyunca ben bile ne yazdığımı anlamadığımdan) yer yer ingilizcelerini kullandım. Kavramlar ve Türkçe karşılıklarıyla ilgili olarak Deep Learning Türkiye grubunun Türkçe Yapay Zeka Kavramları github hesabına bakılabilir.

Kaynaklar

[1] Jason Brownlee, 2016, How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras, https://machinelearningmastery.com/grid-search-hyperparameters-deep-learning-models-python-keras/

[2] James Bergstra, Yoshua Bengio, 2012, Random Search for Hyper-Parameter Optimization, Journal of Machine Learning Research 13 (2012) 281–305, http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf

[3] Neural Network Hyperparameters, http://colinraffel.com/wiki/neural_network_hyperparameters, Son erişim tarihi: 21.01.2018

[4] Quoc Le & Barret Zoph, Research Scientists, 2017, Google Brain team, “Using Machine Learning to Explore Neural Network Architecture”, https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html

[5] Ryan P. Adams, 2012, “Practical Bayesian Optimization of Maching Learning Algorithms”, https://dash.harvard.edu/bitstream/handle/1/11708816/snoek-bayesopt-nips-2012.pdf?sequence=1

--

--