Makine öğrenmesi bazen o kadar alakasız bağlantılar kurabilir ki aslan yelesini bir kediye ya da diş fırçasını bir sopaya benzetebilir. Bazen de kurduğu bağlantıları o kadar katı kurallara bağlar ki gördüğü her iki yuvarlak nesneyi göz zannedip bir elektrik prizinin deliklerini yüz olarak etiketleyebilir ya da gece saat 2’de alınan satın alınmış bir reçel verisi yüzünden gece olan satışlar için reçel tavsiyesi verebilir.
Biz ise bu iki durumun ortalarında bir makine isteriz. Hem mümkün olduğunca çok veri işleyerek önemli özellikleri yakalamak hem de bu düzensiz olan istisnai durumları gözardı etmeye çalışırız.
Overfitting nedir?
Eğer modelimiz, eğitim için kullandığımız veri setimiz üzerinde gereğinden fazla çalışıp ezber yapmaya başlamışsa ya da eğitim setimiz tek düze ise overfitting olma riski büyük demektir. Eğitim setinde yüksek bir skor aldığımız bu modele, test verimizi gösterdiğimizde muhtemelen çok düşük bir skor elde edeceğiz. Çünkü model eğitim setindeki durumların bire bir kopyalarını arar hale gelmiştir. En küçük değişiklikler bile modelimizi çaresiz bırakıp kötü skor almamıza sebep olur.
Veri setimizi çeşitlendirerek çözülebilir bu durum. Cross validation denen yöntem ile veri seti parçalara bölünerek farklı eğitim-test seti ikilileri oluşturularak model bir kaç veri üzerinde çalıştırılır. Ya da daha az karmaşık bir model kullanılarak modelin tahmin etmesine olanak sağlanarak overfitting’in önüne geçilebilir.
Örneğin köpek fotoğraflarını tanıması için eğiteceğimiz bir modele veri seti olarak yüz bin fotoğraf verelim ama bunların elli bini aynı cins aynı renk köpeğe ait olsun. Test setimiz, köpek cinsleri ve renkleri bakımından homojen ise üzerinde alacağımız skor pek yüksek olmayacaktır.
Bir kaynakta bahsettiğine göre; Fukushima faciasının bir sebebi de overfitting’miş. (kaynak)
Japon bilim insanları mevcut deprem verileri üzerine bir lineer regresyon uygulayarak deprem büyüklüklerine göre yıllık frekanslarını çıkarmaya çalışmışlar.
Sonuç bu şekilde olmuş. Grafik Deprem Büyüklüğüne göre yıllık frekansını söylüyor bize. Yani 8.5 büyüklüğünde bir deprem 1000 yılda bir olur gibi bir tahmin çıkıyor.
7.3 civarındaki kırılma aslında olmaması gereken bir kırılma. Yani doğrusal olması gereken lineer regresyon modeli, verilerin akışına uydurularak doğrusal uygulanmamış bir nevi bile bile “overfitting” bir durum oluşturulmuş. Olması gereken ise aşağıdaki gibi.
Model üzerinde oynanmadan kullanılsaydı oluşacak grafik buydu. Burada 8.5 büyüklüğünde bir deprem için 100 yılda bir olabilir verisi var, fark çok büyük.
Fukushima nükleer tesisi yapılırken hatalı modele bakılarak 9 büyüklüğünde bir depremin 13000 yılda bir olduğuna ve tesisi 8.6 büyüklüğüne dayanıklı yapmaya karar vermişler.
Fakat doğru modele göre 9 büyüklüğünde depremler 300 yılda bir olacağı görülüyor.
Ve ne yazık ki 2011 yılında da oluyor bu deprem. (Deprem ölçekleri doğrusal değilmiş, 9 büyüklüğündeki bir deprem 8.6 büyüklüğündeki bir depremden iki buçuk kat daha güçlüymüş.)
Underfitting
Overfitting’den kaçarken düşülebilecek tam tersi durum. Bu durumda da veri setimizdeki önemli özellikleri yakalayamayıp gerekli öğrenmeyi yapamamamız ile sonuçlanır. Overfitting gibi aldatıcı bir öğrenim sunmadığından fark etmesi daha kolay. Daha fazla veri kullanılarak ya da daha karmaşık bir model kullanılarak çözülebilir.
Bu denge durumunu yakalama çabasına Bias-Variance ikilemi deniliyor.
Yüksek Bias; underfitting durumudur. Modelimiz veri için yeterince karmaşık olmadığından önyargılı bir şekilde yanlış tahminler yapıyordur. Burada model elinden geleni yapıyor aslında ama veri seti için yeterince karmaşık bir yapısı olmadığı için yetersiz kalıyor ve underfitting etkisi veriyor. Parabolik bir şekilde dağılan bir veri setine bir dereceli lineer regresyon uygulamak buna bir örnek olabilir.
Yüksek Variance; overfitting durumudur. Modelin veri seti için karmaşıklığı o kadar uygun ki veriye “cuk” oturduğu için veri hakkında tahmin yapmıyor bile ve mevcut veriler ile kendini eğiterek overfitting durumuna düşüyor. Yine modelimizin bir suçu yok, elinden geleni yapıyor ama verimiz üzerinde tahminde bulunamayacak kadar bilge(karmaşık) olduğundan işimize yaramıyor.
Sonuç olarak iki kavramın en iyi durumlarını aynı anda yakalayamıyoruz. Bunun asıl sebebi bu iki kavramın da aynı parametreye bağlı olmalarından kaynaklı. Bu parametre modelimizin karmaşıklığı.
Yüksek bias durumunda modelimiz çok basit oluyor, variance yüksek olduğunda (bias’ın düşük olması demek) modelimiz çok kompleks bir hal almış oluyor.
Bu durumda yapılabilecek en iyi şey arada bir optimum durum yakalayıp, modelimizi bu şekilde geliştirmemiz gerekiyor.
Sürekli karşıma çıkan bu terimlerin tanımını yapmaya, bunu yaparken de öğrenmeye çalıştım, öğrendikçe de eklemeler yapmaya çalışacağım. Bilerek Türkçe’ye çevirmeye çalışmadım çünkü mantıklı bir çeviri bulamadım, umarım birileri bulur da kullanırız.
Kaynak;
http://scott.fortmann-roe.com/docs/BiasVariance.html
https://ml.berkeley.edu/blog/2017/07/13/tutorial-4/
Bir cevap yazın