Yapay Zeka Öğrenme Teknikleri Giriş
Yapay Zeka Öğrenme Teknikleri - Giriş
Supervised Learning
Denetimli Öğrenme olarak ta
dilimize çevrilebilir. Seçeceğimiz öğrenme algoritmamıza modelleme yapabileceği
yeterlilikte verinin ve bu veriden ulaşılmaya çalışılan sonucun verilmesi
gerekir. Algoritmamız eldeki veriyi ve bu verinin sonucunu kullanarak bir model
geliştirir. Geliştirilen bu modelin geçerliliğini ve hata oranlarını bilebilmek
için elimizdeki veri ve sonuçları ile sınarız.
Eldeki hazır veri seti
kullanılarak geliştirilmiş ve sonrasında test verisi ile geçerliliği sınanmış
modelimizin yeni gelecek veriden doğru tahmini sonuç çıkarması bazı kriterlere
bağlıdır. Doğru modelleme yapılmamışsa çıkacak sonuçlar da gerçek durumdan uzak
olacaktır. Dikkat edilmesi gereken kriterler öğrenme algoritması seçimi,
verinin gerçek durumu ne kadar yansıttığı, test verisinin ne kadar doğru seçildiği
ve hazırlandığı(bu konu çok önemli ve uzun bir konudur) gibi.
Regression
Sayısal giriş değerleri ile sayısal ve süreklilik içeren bir
çıkış değeri öngörmemiz gerektiğinde kullanılır. Modeldeki hata hesaplanmasında
RMSE(Root Mean Squared Error) ve MAE(Mean Absolute Error) gibi hata hesaplama
yöntemleri kullanılır. Hata sonuçlarının birim olarak değil de relatif olarak
alınması için de RAE(Relative Absolute Error) ve RSE(Relative Squared Error)
kullanılır.
Hata sonucu ne kadar düşükse model o kadar başarılı olmuş
demektir.
Classification
Eldeki verinin sınıflandırılması veya kategorize edilmesi
amacıyla kullanılır. Sık kullanılan Classification algoritmaları:
Binary classification algoritmasını ele alırsak, bu model ile eldeki veriler 1 ya da 0 olarak sınıflandırır ve bu iki durumdan hangisine uyduğunu belirleyebiliriz. 1 ya da 0 olma kararı bir eşik(threshold) yardımıyla alınır. Eşik değerinden düşük olan veriler 0, eşik değerinden büyükler ise 1 olarak sınıflandırılır.
- Logistic Regression
- Desicion Trees / Classification Trees
- AdaBoost
- SVM(Support Vector Machines)
- Random Forests
- Neural Networks
Örneğin elimizdeki verinin bir kısmını A etiketiyle diğerini
B etiketiyle etiketlemiş olalım. Sınıflandırma algoritması bu verileri alır,
çalışır ve bunlardan bir model oluşturur. Oluşturulan model A ve B
etiketlerinin nasıl ayrılacağını öngören bir modeldir. A ve B etiketli verileri
birbirinden ayıracak bir yol bulur ve bu yola decision boundary yani karar
sınırı denir. Sınırın bir tarafı A etiketli veri diğer tarafı B etiketli veri
olacak şekilde model üretilir. Sonrasında modelimize henüz etiketlenmemiş ve
hangi etikete ait olduğunu tahmin etmesini istediğimiz veriyi gönderdiğimizde
bunun A veya B etiketinin hangisine uyduğunun tahmini yapar ve etiketler.
Binary classification algoritmasını ele alırsak, bu model ile eldeki veriler 1 ya da 0 olarak sınıflandırır ve bu iki durumdan hangisine uyduğunu belirleyebiliriz. 1 ya da 0 olma kararı bir eşik(threshold) yardımıyla alınır. Eşik değerinden düşük olan veriler 0, eşik değerinden büyükler ise 1 olarak sınıflandırılır.
Supervised learning tekniğinde modelin öngörüleri eldeki
verilerle test edilir ve modelin geçerliliği ve performansı sınanmış olur.
Binary Classification modelinin tahminleri test verisi ile kıyaslandığında:
Model 1 olarak tahmin etmiş ve test verisi 1 ise : Doğru
Pozitif (True Positive)(TP)
Model 0 olarak tahmin etmiş ve test verisi 0 ise : Doğru
Negatif (True Negative)(TN)
Model 1 olarak tahmin etmiş ve test verisi 0 ise : Yanlış
Pozitif (False Positive)(FP)
Model 0 olarak tahmin etmiş ve test verisi 1 ise : Yanlış
Negatif (False Negative)(FN)
Elde edilen bu TP,TN,FP,FN sayıları ile Confusion Matrix
ismi verilen bir matriks oluşturulur ve sınıflandırma modelimizin
performansının hesaplanmasında kullanılacaktır. Confusion Matrix veya Contingency
Table da denilmektedir, amacı olasılıkların bir tabloda gösterilmesidir.
Örnek Confusion Matrix:
Confusion matrix kullanılarak hesaplanan performans
ölçümleri şunlardır:
Accuracy :
Doğruluk. İsabetli tahmin edilen sınıflandırmaların, toplam sınıflandırılma
sayısına bölümü.
Accuracy = (TP + TN) / ( TP + FP + TN + FN)
Presicion :
Hassasiyet. Sınıflandırıcıdan olumlu bir tahmin alındığında, bunun gerçekte ne
kadar doğru olduğunu belirlemede kullanılır. Bu da doğru tahmin edilen pozitif
öngörüler sayısı ile doğru veya yanlış toplam tahmin edilen pozitif öngörülerin
sayısına bölünür.
Presicion = TP / (TP + FP)
Recall : Çağırma.
Diğer adıyla Duyarlılık veya TPR(True Positive Rate)(Gerçek Olumlu Oran). Sınıflandırıcının
yaptığı olumlu tahminlerin hangi kısmı kesin olarak doğru bu durumu bulmak için
kullanılır. Bir başka deyişle, olumlu tahminlerin sayısının, test verilerindeki
pozitif sınıflandırılan değer sayısına bölünmesidir.
Recall = TP / (TP + FN)
Recall daha önce de belirttiğim gibi True Positive Rate
ismiyle de geçer, bunun yanında benzer bir oranlama hesabı daha vardır o da
False Positive Rate. FPR ise olumsuz tahminlerin oran hesaplanmasında
kullanılır. TPR ve FPR ikisi ROC(Receiver Operating Characteristic) eğrisi
denilen bir eğirinin çizilmesinde kullanılır.TPR ve FPR formülleri:
TPR = TP / (TP + FN)
FPR = FP / (FP + TN)
Örnek ROC Eğrisi:
ROC eğrisinin altında kalan alana ise AUC(Area Under The
ROC) denir. Eğri altındaki alan veya AUC, modelin ne kadar iyi öngöreceğini
gösteren bir göstergedir. Genellikle, AUC alanı ne kadar geniş ise o kadar
iyidir. Grafiğin sol üst köşesine mümkün olduğunca yakın olunmak istenir.
Unsupervised Learning
Supervised Learning tekniğindeki gibi modelimizi geliştirmek
ve eğitmek için elimizdeki veri sonuçlar içermeyebilir, etiketlenmemiş veya
kategorize edilmemiş olabilir. Yani sadece veri kümesine sahip olabiliriz ve bu
veriler herhangi bir sonuçla ilişkili olmayabilir. Bu durumlarda veri içindeki
benzerlikleri keşfedip gruplamak için bir takım algoritmalar kullanılır. Bunlar
verideki benzerlikleri gözlemleyerek veriyi kümelere ayırır ve onları gruplar. Amaca
ve veriye göre farklı algoritmalar (K-Means , DBSCAN, Gaussian Mixture Model, ..)
kullanılmaktadır.
Clustering
Kümeleme, bir veri içindeki benzerlikleri gruplamak için
kullanılan bir tekniktir. Kümeleme işlemini yapan algoritmalardan en popüler
olanı K-Means clustering algoritmasıdır.
K-Means Algoritması
:
İteratif bir algoritmadır, yani ideal sonuca ulaşana kadar
çalışmaya(kümeleme işlemine) devam eder. Elimizdeki veri uygun özelliklere
sahip ise bu veriden istenen sayıda kümeleme çıkarmakta kullanılır.
Oluşturulacak küme sayısı K ile ifade edilir. K kümelerinin merkezinde Centroid
ismi verilen küme merkez noktası bulunur.
Algoritma önce rastgele centroid atar ve devamında bu
centroid’e yakın olan noktaları küme içine alır. Küme içinde kalan noktaların
küme merkezine ortalama uzaklığı ve küme merkezinin diğer küme merkezlerine
olan ortalama uzaklığı gibi hesaplamalar yapılıp iteratif olarak küme merkezi
değiştirilir. Yeni atanan küme merkezine en yakın noktalardan tekrar bir küme
oluşturulur ve işlem bu şekilde mevcut küme merkezi değişmeyene dek (ideal konuma
ulaşana kadar) kaydırılır.
Principal Component
Analysis(PCA) :
PCA, ismine bakıldığında ve internetteki kaynaklar
incelendiğinde mantığının zor gibi gözükmesine rağmen öyle değil. Hem
anlaşılabilir hem de bir cümleye sığdırarak anlatmaya çalışacağım.
PCA temel olarak elimizdeki verinin boyutlarını indirgemeye yarar,
bu şekilde kümeleme işlemimizi daha az boyut kullanarak ve karmaşası azalmış bir
şekilde çözmemize yardımcı olur.
Yukarıdaki cümle yeterli olmadıysa pek çok sitedeki karmaşık
anlatımla verildiğinde şöyle anlatılabilir. Elimizde N boyutlu veri olsun,
öncelikle bunun NxN boyutlu kovaryans Matrisi bulunur, matrisin N adet eigen
value değerleri bulunur, bunlardan eigen vector’ler hesaplanır. Verimiz bu
eigen vector’lere iz düşürülerek boyut indirgenmiş olur.
Tekrar anlaşılabilir versiyona geçildiğinde iki örnekle
bitireyim. Örneğin elimizde iki boyutlu verimiz olsun, PCA ile bu verileri bir
boyuttaki vektöre indirgeyebiliriz. Ya da üç boyutlu verimiz var diyelim. Boyutları
x1,x2,x3 olsun. Bu veriyi 2 boyutlu bir yüzeye indirgeyebiliriz(elimizde iki
vektör olur). Temel olarak PCA ile elimizdeki verinin bir boyut aşağıya indirgemesini
yapabiliriz.
Yorumlar