Makine Öğrenmesi Nedir? (Machine Learning)

Ayla Bilgin
3 min readFeb 22, 2021

--

Makine öğrenmesi, bir yandan insan zekasını taklit ederken, diğer yandan bizim yorumlayıp elle gireceğimiz kurallara ihtiyaç duymayan algoritmalar bütünüdür. Daha resmi olarak açıklayacak olursak:

Makine öğrenimi, verilerden öğrenen ve programlanmadan zaman içinde doğruluğunu artıran uygulamalar oluşturmaya çalışan bir yapay zeka (AI) dalıdır [1].

Terminoloji, genel anlamda terimler ve onların kullanımıyla ilgili bir bilim dalıdır ki, bu terimler araştırmaya dayalı özellikli (spesifik) metinlerde geçen basit sözcükler veya birleşik sözcükler şeklindedir. Peki makine öğrenmesinde terminolojinin yeri nedir? Makine öğrenmesinde terminoloji gerçekleştirilirken:

  1. Gözlem yapılarak veriler toplanır.
  2. Yapılan gözlemler sayısal olarak muhafaza edilir.
  3. Kategorileştirme yani etiketleme yapılır.
  4. Algoritmanın verilere bakarak çıkarım yapması sağlanır.
  5. Çıkarımın ne kadar gerçekçi olduğu tespit edilir.

Örneğin bir makineye, kedi ile köpek arasındaki farkı öğretmek yerine ona kedi ve köpeği ayırt etmesini sağlayacak bir yönerge verirsek; makine hem bu yönergeleri takip edebilmeli hem de kedi ve köpeği doğru şekilde ayırt edebilmelidir. Burada başarıyı artırmak için başka bir yöntem de uygulanabilir. Makineye çok sayıda kedi ve köpek fotoğrafı gösterilip, makinenin bunu tekrarlamasını sağlarsak, makine bir noktadan sonra yüksek bir doğruluk ile ikisini ayırt etmeye başlayacaktır. Makine öğrenmesi bu şekilde çalışmaktadır.

Başarı Değerlendirme Yöntemleri/Ölçeklendirilmesi

Sınıflandırma algoritmalarını kullanarak yapılan çalışmalarda en büyük yanılgılardan biri başarı kriteri olarak sadece doğruluk oranına bakmaktır [2]. Özellikle dengesiz veri setlerinde doğruluk oranı bize doğru bilgi vermez. 1.000 kişiden alınan çeşitli özniteliklere bakarak bu kişilerin hasta olup olmadığı tahmin edilmek istenirse ve içlerinde 10 kişinin gerçekten hasta olduğunu varsayarsak, biz herkesin sağlıklı olduğunu düşünürsek:

Doğruluk (Accuracy)=(999/1.000)*100 = %99.9

Doğruluk (Accuracy): Sistemde doğru olarak yapılan tahminlerin tüm tahminlere oranıdır.

accuracy = (TP+TN)/(TP+TN+FN+FP)

Bu gibi durumlarda doğruluğa ek olarak iki terime daha ihtiyacımız vardır:

1)Duyarlılık (Recall): Hasta olanları doğru tespit etme oranı.

recall = TP/(TP+FN)

2) Kesinlik (Precision): Hasta denilenlerin gerçekten kaç tanesinin hasta olduğunun oranı.

precision = TP/(TP+FP)

Şimdi TP, FP, TN, FN gibi diğer metriklerin ne olduğunu ve confusion matriksten bahsedelim.

  • TP (True Positive-Doğru Pozitif): Doğruya doğru demek
  • FP (False Positive-Yanlış Pozitif): Doğruya yanlış demek
  • TN (True Negative-Doğru Negatif): Yanlışa yanlış demek
  • FN (False Negative-Yanlış Negatif): Yanlışa doğru demek

Confusion Matrix, verideki var olan durum ile sınıflama modelinin doğru yanlış sayılarını gösterir. Aşağıda 2x2'lik bir confusion matrix bulunmaktadır. Bu matrix tahmin sayısına göre değişebilir. NxN’lik matrixler olabilir.

F-Meaure: Recall ve precision’ın harmonik ortalamasıdır.

F-Meaure = 2*precision*recall/(precision+recall)

Yanlılık ve Varyans

Bir modelin “genelleştirme” hatası, üç farklı hatanın toplamı şeklinde ifade edilebilir:

  1. Yanlılık (Bias)
  2. Varyans (Variance)
  3. İndirgenemez Hata (Irreducible Error)

Yanlılık (Bias): Yanlılık modelin ne kadar yanlış olduğunu ölçer. Genelleştirme hatasının bu parçası, yanlış varsayımlara dayanır. Yanlılık, modelimizin problemin çözümünü içermediğini gösterir. Modelimizin zayıf kaldığı bu duruma eksik öğrenme (underfitting) denir. Yüksek yanlılığa sahip bir modelin, eğitim verimizi eksik öğrenme olasılığı daha fazladır.

Varyans (Variance): Varyans, modelin tahmin ettiği verilerin, gerçek verilerin etrafında nasıl (ne kadar) saçıldığını ölçer. Genelleştirme hatasının bu parçasına, modelin eğitim verisindeki düşük değişimlere aşırı duyarlılığı sebep olur. Eğer varyans yüksek ise, modelimiz fazla geneldir; buna da aşırı öğrenme (overfitting) denir [3].

İndirgenemez Hata (Irreducible Error): Hatanın bu kısmı, verideki gürültülere bağlıdır. Bu hatayı azaltmanın tek yolu, veriyi temizlemektir.

Bir modelin karmaşıklığını artırmak, varyansını artırır ve yanlılığı azaltır. Aksine, bir modelin karmaşıklığını azaltmak, yanlılığı artırır ve varyansı azaltır (Buna Yanlılık/Varyans İkilemi adı verilir). Fakat, her iki model de aynı hataya sahip olabilir.

Hatanın küçük olabilmesi için, uygun varsayımlarla yanlılığı küçük tutmalı, ve yeterince büyük bir veri seti kullanıp modelin varyansını azaltmalıyız.

Photo by Maximalfocus on Unsplash

Sonraki yazımızda görüşmek üzere.

--

--