"Enter"a basıp içeriğe geçin

Model Komplekslik Grafiği, Doğrulama Seti ve Grid-Search

model complexity graph, validation set and grid-search

Birçok yazıda makine öğrenmesi modellerini eğitirken elde edilmek istenen sonucun en iyi genelleme yapan model olduğundan söz etmiştik. Bu yazıda mevcut olasılıklar arasından en iyi genelleme yapan modelin nasıl seçileceğinden bahsedeceğiz. Bir sonraki yazıda ise buna ilişkin bir uygulama yapacağız.

Makine öğrenmesi sürecinde sonucu etkileyebilecek bir takım değişkenlere sahibiz. Bunlar:

  • Veri miktarı

    Eğitim için kullanılacak veri miktarını artırarak sonucun ne kadar değiştiğini gözlemleyebilir ve buna göre ihtiyaç duyulan en iyi skor için en az ne kadar veri gerektiğini belirleyebiliriz.
  • Özellik Seti (Feature Set)

    Verisetindeki özelliklerin etiket ile ilişkisine bağlı olarak tahmin skoruna olumlu ya da olumsuz katkıları olabilir. Çeşitli yöntemlerle edinilen sonuçlara göre bir kısmı çıkarılmak istenebilir.
  • Model

    Farklı modeller deneyerek hangisi ile daha iyi sonuç alacağımızı görmek isteyebiliriz.
  • Parametreler ve Hiperparametreler

    Belirli bir modele ilişkin en iyi sonucun hangi parametre ve hiperparametre konfigürasyonu ile elde edileceğini öğrenmek isteyebiliriz.

Parametre

Parametreler seçilen modele ilişkin olarak veri ile eğitim sırasında optimal değere ulaşması mümkün olan ve başlangıç değerleri seçilebilen araçlardır. Örnek olarak bir yapay sinir ağındaki ağırlıklar (weight) model eğitimi sırasında veriye göre sürekli yenilenebildikleri gibi başlangıç değerleri kullanıcı tarafından belirlenebilir. İyi hazırlanmış bir model ve veri seti ile başlangıç değerlerinin etkisinin az olması beklenir.

Hiperparametre

Hiperparametreler veriden öğrenilmesi mümkün olmayan, deneme yanılma yoluyla en iyi değerin atanabildiği değişkenlerdir. Yapay sinir ağlarında ağ konfigürasyonu ya da Support Vector Machines’e ait kernel seçimi birer hiperparametre örneğidir.

Model Komplekslik Grafiği

Bu araçlardan hiperparametreler ile yaptığımız değişikliklerin eğitim ve test setlerine ilişkin skor metriklerine yansımalarını çizdiğimiz ve doğru konfigürasyona karar vermemizi sağlayan grafiğe model komplekslik grafiği (model complexity graph) adını veriyoruz.

Söz gelimi Support Vector Machines modeline ait farklı C değerlerine ilişkin örnek bir model komplekslik grafiği seçilen performans metriğinin hiperparametreye göre değişimini eğitim ve test setleri için aşağıdaki şekilde yansıtır:

6. adımdan sonra yani C değeri 6. değerini aldığından itibaren eğitim seti skoru yükselmeye devam ederken test seti için performans skoru azalmaya başlıyor. Bu durumda C değeri için diğer tüm değerler sabit kaldığında en uygun değer C’nin atanan 6. değeri olarak seçilir. Bu değerin sol tarafı underfitting, sağ tarafı ise overfitting olarak adlandırılır. Overfitting ve Underfitting adlı bir önceki yazıya bu açıdan tekrar bakmanız faydalı olacaktır.

Fakat makine öğrenmesinin altın kuralı der ki test seti sadece ve sadece test aşamasında kullanılmalıdır. Yani modelin bir parametresinin değerine karar verilirken test verisini kullanmamalıyız. Bu sebeple doğrulama (validation) adı verilen yeni bir sete ihtiyaç doğuyor.

Eğer birden fazla hiperparametreye aynı anda karar verilmek istenirse yukarıda iki boyutlu olarak çizdiğimiz örnek grafiğin boyutu da parametre sayısı kadar artacak ve bir noktadan itibaren görselleştirmek mümkün olmayacak ya da doğru parametre setini göz kararı ile bulmamıza olanak tanımayacaktır. Bu durumun önüne geçmek için ise grid-search kullanılmaktadır.

Doğrulama (Validation) seti

Test setinin yalnızca makine öğrenmesi süreci tamamlanmış modellerin başarımını ölçmek amacı ile test aşamasında kullanılması, modelin yukarıda bahsedilen veri miktarı, özellik seçimi, model seçimi, parametre ve hiperparametre seçimi gibi aşamalarda kullanmak üzere ve model eğitimine katılmamış bir veri setine ihtiyaç doğurur. Veri seti eğitim ve test seti olarak ikiye ayrıldıktan sonra eğitim seti tekrar ikiye ayrılarak bir kısmı doğrulama (validation) set olarak ayrılır. Ayrılan bu kısım bahsi geçen amaçlarla kullanılır. Dolayısı ile yukarıda çizilen grafik aslında şu şekilde oluşmalıdır:

Bu grafik yardımı ile seçilen hiperparametreler ile eğitilmiş modelin “gerçek hayat” sonucunu almak için ise o ana kadar hiçbir amaç ile kullanılmamış test seti kullanılır.

Doğrulama setlerini test setlerinden ayıran diğer bir konu ise doğrulama setini eğitim seti ile sürekli yer değiştirebiliyor olmamız. Öyle ki, doğru hiperparametre setini bulmak için eğitim setinden koparılan tek bir parça doğrulama setindense eğitim setinin her bir kısmını ayrı ayrı doğrulama seti olarak kullanmakta bir sakınca yoktur. Her seferinde rastgele bir kısmını doğrulama seti olarak kullanabileceğimiz gibi bunu düzenli yapmak istersek K-Fold cross validation adı verilen yöntemi kullanıyoruz.

Örneğin K=4 için K-Fold cross validation veri setini 4 eşit parçaya ayırarak her seferinde sadece birini doğrulama seti olarak kullanmamızı, diğerlerini ise eğitim seti olarak kulanmamızı söyler:

Bu sayede yapılan çapraz doğrulama bize her bir fold ile alınan skorları karşılaştırma imkanı vererek bu skorların ortalaması ile karar vermemize olanak tanır. Diğer yandan seçilen parametreler ile elde edilen performans metriğinin veri seti değiştikçe ne kadar dalgalandığını gözlemleme imkanı vererek gerekirse tüm kurguyu baştan hazırlama kararı vermemize de imkan tanır. Tüm bu sebepler ile tek bir doğrulama seti yerine K-Fold gibi yöntemler ile olağanca çok sayıda deneme yapmak en doğrusudur.

Grid-Search

Birden fazla hiperparametrenin farklı kombinasyon sonuçlarını aynı anda inceleyerek en iyi kombinasyona sahip olmamızı sağlaması açısından oldukça önemli olan model komplekslik grafiği üzerinde yapılan taramaya ise grid-search adı verilmektedir.

Örneğin X modeline ait A hiperparametresi için 5, B hiperparametresi için 10 ve C hiperparametresi için 20 farklı değişken içerisinden en iyi kombinasyonu bulmak için toplamda 5 x 10 x 20 = 1000 farklı konfigürsayon ile model eğitimi yapılması ve sonuçlarının değerlendirilmesi gerekir. Grid Search bizim için tüm bunları yaparak en iyi konfigürasyonu sunmaktadır. Bu açıdan model komplekslik grafiğini çizmeye ve 500 farklı ihtimal için eğitim ve doğrulama aşmalarını tek tek yapmaya gerek kalmadan doğru parametre setine karar vermeye de imkan tanımaktadır.

Grid-search yöntemi ile denenmek istenen hiperparametre setleri en baştan karar verilerek dilenen sayıda doğrulama seti oranı ve sayısı ile verilen kıstaslar dahilinde en doğru hiperparametre setine ulaşmak mümkün.

Bir sonraki yazımızda öğrendiğimiz kavramlara ilişkin uygulama yapmak üzere görüşmek dileği ile.

Keyifli öğrenmeler 🙂

İlk Yorumu Siz Yapın

Bir Cevap Yazın

Translate »
%d blogcu bunu beğendi: