Düzenek Öğrenmesi (Machine Learning) Nedir?
Düzenek öğrenmesi((machine learning)) , özel bir yazılım geliştirme (software development) üretmeden, bir uygulama (application) ya da izlendirme (programming) yapmadan, var olan bir veriden sonuçlar çıkarma ve ileriye yönelik öngörülerde bulunmaktır. Genellikle büyük veri (big data) olarak adlandırılacak ölçüde geniş bir veri kümesi (data set) üzerinde sayımbilim (statistics) yöntemlerini kullanarak verinin niteliğini anlamak ve bundan sonuçlar üretmek anlamına gelir. Örneğin bir insanın ağırlığına ve boyuna bakarak cinsiyetini kestirmek, bir meyvenin ağırlığına ve oylumuna bakarak hangi meyve olduğunu bulmak düzenek öğrenmesidir (makine öğrenmesi). Bir öbek insanın ağırlığını ve boyunu vererek kadınlar, erkekler ya da çocuklar gibi öbekler bulunması ya da ağırlığı ve oylumu verilen meyvelerin kendi aralarında kategorilere ayrılması da bir düzenek öğrenmesidir. Bir insanın ağırlığı ve boyu arasındaki ilişkiyi bulmak, bir meyvenin ağırlığı ile oylumuna arasında nasıl bir bağıntı olduğunu bulmak da makine öğrenmesidir. Çünkü bir kez bağıntı bulunduktan sonra boyutlardan birisi verilince ötekisini bulmak olanaklı olur.
Gözetimli Öğrenme (Supervised Learning) & Gözetimsiz Öğrenme (Unsupervised Learning)
Düzenek öğrenmesi için en temel ayrım
gözetimli öğrenme(supervised learning) ve
gözetimsiz öğrenme(unsupervised learning) biçimindedir. Burada
gözetim, öğrenme sürecine önceden bir takım bilgiler verilmesi anlamına gelir.
Gözetimli Öğrenme (Supervised Learning)
Gözetimli öğrenme yöntemlerinden önce kimi bilgiler verilir ve öğrenme işlemi bu verileri kullanılarak yapılır. Örneğin bir insan öbeğinde erkeklerin ve kadınların ağırlık ve boy ortalamaları verilip, cinsiyeti bilinmeyen bir insanın ağırlığı ve boyu verildiğinde erkek mi kadın mı olduğunu kestirmek ya da hangisinden olma olasılığının ne olduğunu bulmak gözetimli öğrenme türüne girer. Çünkü bu teknikte öncelikle erkek ve kadınlara ilişkin ortalamalar baştan verilmiştir. Burada gözetim, öğrenme sürecinde insanın katkısı anlamı taşır. Başka bir deyişle düzenek tümüyle bağımsız değildir.
Gözetimsiz Öğrenme (Unsupervised Learning)
Gözetimsiz öğrenme ise herhangi bir ön bilgi vermeden, doğrudan verileri sağlayıp sonuçlar alınmasıdır. Örneğin bir çok meyvenin ağırlık ve oylumunun bilindiğini varsayalım. Bu meyveler arasında kaç tür meyve olduğunu bulmak istenirse bu gözetimsiz öğrenmedir. Çünkü baştan meyvelerin neler olduğu ya da ağırlık ve boylarının ne olduğu bildirilmemiştir. Doğallıkla, gözetimsiz öğrenmede de bir kaç değiştirgen (parameter) verilebilir. Ancak bunlar verinin kendisiyle değil, öğrenme sürecinin nasıl işleyeceğiyle ilgili bilgilerdir.
Düzenek Öğrenmesi Konuları
Düzenek öğrenmesi konusunun uygulandığı bir çok alan bulunmaktadır. Ancak bunlardan bir kaçı hem çok yaygın olarak gerçekleştirilmektedir hem de çok yararlı, büyük ölçüde doğru sonuçlar üretmektedir. Bu uygulamalar birbirinden bağımsız olsalar da ortak bir çok teknik kullanırlar. Dahası, kimi durumlarda aynı anda kimi zamanda veya birbiri ardından kullanılabilir.
Sınıflandırma (Classification)
Düzenek öğrenmesinin en bilinenleri arasında en önemli uygulamalardan birisi
sınıflandırma(classification) adını taşır. Önceden sağlanan bilgilere göre verilerin sınıflara ayrılmasıdır. Bu bir gözetimli öğrenme (supervised learning) konusudur. Öncelikle bir veri öbeğindeki her verinin hangi sınıfa girdiği bildirilir. Daha sonra başka veriler sağlanır ve bunların hangi sınıflara girdikleri bulunur. Örneğin öncelikle bir çok erkek ve kadının ağırlığı ve boyu verilir. Buradan bir erkek ve bir kadının ortalama hangi ağırlıkta ve boyda olduğu bulunur. Daha sonra yeni veriler sağlanır ve bunların kadın ve erkek olarak ayrılması istenir.
Salkımlama (Clustering)
Düzenek öğrenmesi konusundaki en önemli konulardan birisine de
salkımlara(clustering) adı verilir. Buna göre bir veri kümesi verilir ve bunların öbeklere ayrılması istenir. Bu öbeklerin her birine salkım (cluster) adı verilir. Burada salkımlar baştan belli değildir ve belli bir ilkeye göre bulunur. Salkımlar bir gözetimsiz öğrenmedir. Çünkü salkımlar önceden öğretilmemiştir. Her ne denli verilerin öbekleri verilmese de verileri öbeklere ayırmak için gerekli ölçütlerin verilmesi gerekebilir. Örneğin verilerin kaç salkıma ayrılacağı, ya da bir birine ne kadar yakın verilerin aynı saklımda sayılacağı bildirilmelidir. Örneğin ağırlığı ve oylumu verilen meyvelerin arasında kaç tür meyve olduğu bildirilebilir. Düzenek öğrenmesi bu salkım sayısına göre veriyi öbeklere ayırabilir.
Gerileme (Regression)
Bir veri kümesindeki verilerdeki boyut (dimension) değerleri arasında ilişkinin bulunmasına gerileme(regression) adı verilir. Örneğin bir kişinin boyu ile ağrılığı arasındaki ilişki, bir meyvenin ağırlığı ile oylumu arasındaki matematiksel bağıntı bulunabilir. Bu konuya gerileme (regression) adının verilmesinin nedeni, rasgele görünen verilerin bir bağıntıya yakınlaşmasıdır. Gerçekte bir bağıntı olduğu; ancak verilerin türlü nedenlere bu bağıntıdan saptığı düşünülür. Gerileme ile her verinin gerçek bağıntısı bulunmuş, yani bağıntıya geri dönülmüş olur. Bir kez bu bağıntı bulunduktan sonra artık bir boyutunun değeri ile verilen öğenin öteki boyutu bulunabilir. Örneğin boyu verilen kişinin ağırlığı, ağırlığı verilen meyvenin oylumu bulunabilir. Gerileme için aranan bağıntı en yalın biçimiyle bir çizgi (line) olabilir ki buna çizgisel gerileme(linear regression) adı verilir. Burada \(y=a+bx\) biçiminde bir bağıntıda a ve b katsayıları bulunur. Kimi bağıntılar bir dönüşüm (transformation) uygulanarak çizgisel duruma getirilebilir. Bu durumda önce dönüşüm uygulanır, çizgisel gerileme bulunur, sonra ters dönüşüm uygulanarak çizgisel olmayan bağıntı elde edilir.Yoğunluk Kestirimi (Density Estimation)
Bir veri kümesinde belli bir boyuttaki değerlerin belli bir aralıkta kaç tane olduğunu gösteren işleve yoğunluk işlevi (densiti function) adı verilir. Örneğin insanların 160 cm ile 180 cm arasında kaç kişi olduğunu gösterir. Ortalama boyun 170 cm, ölçün sapma (standard sapma) değeri de 20 cm olarak alınabilir. Bu görevi yapan, sayımbilim (statistics) ve olasılık (probabilty) alanında bir çok yoğunluk işlevi bulunur. Bunlardan en önemlisi
olağan dağılım(normal distribution) olağan dağılım adını alır. Düzenek öğrenmesi, yoğunluk işlevinin kestirilmesi ile ilgilidir. Tüm veriye bakmadan, kümeden alınan örnek (sample) verilere bakarak yoğunluk işlevinin kestirilmesidir. Yoğunluk işlevinin kestirilmesi, artık herhangi bir verinin belli bir aralıkta olma olsılığının bulunması anlamına gelir. Örneğin insanların boylarıın olağan dağılıma girdiği; ortalamanın ve ölçün sapma (standard deviation) değerinin ne olduğu yoğunluk kestirimiyle bulunursa bir kişinin 175 boyunda olma olasılığının kaç olduğu bulunabilir.
Boyutsallık İndirgemesi (Dimensionality Reduction)
Veri kümeleri çoğu kez bir çok boyutan oluşur. Örneğin insanın ağırlığı, boyu, yaşı, kaç kardeşi olduğu, kaç arkadaşı olduğu gibi bir çok veri bulunmaktadır. Ancak çoğu kez bu boyutlardan bir kesimi çok anlamlı değildir. Örneğin insanların ağırlığı ile kaç arkadaşı arasında bir ilişki yoktur. Kimi durumlarda kimi boyutlar kimilerinden daha önemli olabilir. Örneğin kişinin ağırlığı ile hem boyu hem yaşı ilgili olabilir. Ancak bunlardan bir ötekinden daha önemli olabilir. Boyutlar önemliden önemsize doğru sıralanabilir ve az önemli olanlar göz ardı edilebilir. Kimi zaman boyutlarda bir dönüşüm yapılınca yeni boyutlardan birisi çok daha önemli olabilir. İnsanlar boyutlardan hangisinin daha önemli olduğunu düşünerek ya da bilgilerine dayanarak bulabilir. Ama makineler için bunun bulunması için işlem yapılması gerekir. Boyutların önemsizlerinin belirlenip dışarıda tutulmasına
boyutsallık indirgemesi(dimensionality reduction) adı verilir. Kimi durumlarda boyutları indirgeme gerçek boyutlarda değil dönüşüm (transformation) uygulanmış verilerde yapılır. Bir veri kümesinde veriler döndürme (rotation) ve öteleme (translation) yapılmış durumda olabilir. Bu durumda boyutları çözümleme yanlış sonuç verir. Bu yüzden öncelikle verinin döndürmesiz ve ötelemesiz duruma getirilmesi gerekebilir. Bir çok durumda bu geri dönüştürme sonucunda oluşan boyutlar gerçek boyutlardan daha anlamlıdır. Boyutsallık indirgemesi bu geri dönüşmüş veriler için de söz konusudur.
Değiştirgenli Algoritma (Parameteric Algorithm) & Değiştirgensiz Algoritma (Nonparameteric Algorithm)
Düzenek öğrenmesinde kimi zaman aranan model bellidir. Örneğin gerileme (regression) bulma yöntemlerinde iki boyut arasında ilişkinin çizgisel (linear) olduğu baştan doğru olarak alınabilir. Buna göre \(y=a+bx\) biçiminde bir çizgide a ve b katsayıları aranır ve bunlar bulunabilir. İşte parametrelerin sayısı ve türünün belli olduğu düzenek öğrenmesi algoritmalarına değiştirgenli algoritma(parameteric algorithm) adı verilir. Ancak kimi durumlarda boyutlar arasında ilişki çizgisel olmayabilir. Örneğin eğri olabilir ve bu durumda işlev \(y=a+bx+cx^2\) olabilir. Ya da \(y=ae^{bx}\) biçiminde olabilir. Öte yandan, herhangi bir matematiksel bağıntı olmayabilir. Ya da bağıntı varsa da bulunması olanaksız ya da gereksiz olabilir. Düzenek öğrenmesi, belli matematiksel bağıntıları bulmadan yapılırsa değiştirgensiz algoritma(nonparameteric algorithm) adı verilir. Bu türde verinin boyutları arasında ilişki veya bağıntı bilinmez, yalnızca ilişkinin varlığı bilinir. Bu tür öğrenmeden nedenlere değil sonuçlara bakarak işlem yapılır.Yöntemler (Methods) ve Algoritmalar (Algorithms)
Düzenek öğrenmesi algoritmaları arasında çok bilinenleri aşağıdaki yer almaktadır. Bunların öğrenilmesi durumunda ötekiler üzerine de bilgi sahibi olunabilir. Çünkü öteki algoritmalar buradakilere benzer özellikler taşır ve aşağıdakileri öğrenmek için gerekli öngereksinimlerin bilinmesi ötekelilerin öğrenmesini de büyük ölçüde kolaylaştırır.
- Yapay Sinir Ağı (Artificial Neural Network)
- K-En Yakın Komşu (K-Nearest Neighbour)
- İlkesel Bileşen Çözümleme (Principal Component Analysis)
- Destek Yöney Düzenekleri (Suppor Vector Machines)
- Toy Bayesçi Sınıflayıcı (Naive Bayesian Classifier)
- Karar Ağacı (Decision Tree)
- Rasgele Orman (Random Forest)
- K-Bayağı Salkımlama (K-Means Clustering)
- Genetik Algoritmalar (Genetic Algorithms)