Merhabalar sevgili okurlarımız;
Bu sayımızda sizlere geçmişteki verileri inceleyerek gelecek için tahminlerde bulunma ve olası problemlere çözümler üretme amacıyla ortaya çıkmış, otomatik olarak kendisini geliştiren bilgisayar programlarını nasıl elde ederiz sorusuyla ilgilenen, makinelere insanlar gibi zaman içinde tecrübe kazandırmaya ve insanın öğrenme yöntemlerini bilgisayara entegre etmeye dayanan araştırma alanı makine öğreniminden (machine learning)bahsedeceğim.
Öğrenme en geniş tanımıyla yaşantı sonucu davranışlarda meydana gelen sürdürülebilir ve kalıcı değişimlerdir. Eğer bir programın performansı yaptığı işi tecrübe ettikçe artıyorsa makine öğrenmesinden bahsedebiliriz. Hebb'e göre, beyindeki devrelerin çalışma şeklini bilmeden öğrenmenin doğasının anlaşılması mümkün değildir. Makine öğrenimi gibi insana uyumlu bir teknoloji elde etmeye çalışıyorsak insanı fiziksel açıdan ve nörolojik açıdan iyi analiz etmemiz gerekir. Daha iyi sonuçlar alınması, bilgisayar ve insan arasındaki etkileşimin arttırılmasıyla mümkündür. Bu nedenle, makine öğrenimi insana ait algısal özelliklere olan ihtiyacı minimuma indirmeye çalışmasına rağmen, çoğu zaman insan makine işbirliğine dayanır.
Bir makine öğrenim sistemi tek bir sistem yerine genellikle eğitim kümesi adı verilen bütün bir sistem kullanır. Bu sistemin içinde ise örnek gözlem kodları ve makine tarafından okunabilen formlar vardır.
Biraz ayrıntılı bakalım. Neden makine öğrenimi? İnsan bir uyaranla karşılaştığında bunu sıfırdan değerlendirmek yerine geçmiş öğrenilmişlikleriyle yani tecrübeleriyle değerlendirir. Yeni bilgiyi geçmiştekilere benzeterek yorumlamaya çalışır. Makine öğreniminde de insana özgü bu durum ele alınmıştır. Makine öğrenimi önceki örnekleri ve sonuçları inceler ve bu işleri nasıl yeniden yapacağını öğrenir ve yeni durumlar hakkında genellemeler yapar. Yani makine öğrenimi araştırmalarının geçmişteki verileri kullanarak yeni bilgiler ortaya koymaya ve bu bilgileri makinelerin davranışlarına yansıtarak gelecek için tahminlerde bulunmaya dayandığını söyleyebiliriz. Bu açıdan makine öğrenimini istatistik, olasılık kuramı, veri madenciliği, örüntü tanıma, yapay zeka, uyarlamalı denetim ve kuramsal bilgisayar bilimi gibi alanlarla yakından ilişkilidir.
Çok büyük miktardaki veriyi elle işlemek ve analiz etmek kolay bir süreç değildir. Bu nedenle bazı durumlarda eldeki bilgilerle bir programın yazılması mümkün olmayabilmektedir.Makine öğrenimi ile bu süreç kolaylaşmakta, insan çabasının problemleri basitleştirmede harcanması ve belli formüllere bağlı kalınması gibi sorunlar giderilmektedir. İlk etapta görülemeyen bilgilerin ortaya çıkarılabilmesi, makine öğrenmesi ile mümkündür. Örneğin bir firma sattığı ürünleri analiz ederek, bu ürünler arasındaki bağları keşfedebilir ve ilerideki kampanyalarına ordan çıkardığı sonuçlara göre yön verebilir. Bu doğrultuda makineler insanların işgücüne yaptıkları katkıyı beyin gücüne de yapabilmekte, insanın taşıdığı beyinsel yük, makinelerle paylaşılarak yazılan programlarla bilgiye ulaşmak çok daha kolay olmaktadır.
Winston Churchill'in dediği gibi gelişmek değişmektir, kusursuz olmak değişimi gerektirir.Ve değişim kaçılmazdır. Çevrenin ve şartların değişmesi buna uyum sağlamayı gerektirir. Makine öğrenmesi tasarımdan sonra da bazı özelliklerin geliştirilmesine olanak sağlar. Bu nedenle tasarımı baştan aşağı yenilemek yerine, makine öğrenimiyle değişen şartlara uyum sağlamaya yarayacak özellikler eklemek, işleri oldukça kolaylaştıracaktır.
Biraz da makine öğrenmesi kavramının ne zaman ortaya çıktığından ve gelişim sürecinden bahsedeyim. Makine öğrenmesi kavramı, Alan Turing’in yapay zekaya işaret ettiği Bilgisayar ve Zeka adlı makalesini yazdığı 1950 yılına kadar uzanır. Alan Turing bu makale ile şu an pek çok yapay zeka probleminin çatısını oluşturan Turing testi olarak bildiğimiz, amacı bir makinenin düşündüğünü söylemenin mantıksal olarak mümkün olup olmadığını test etmek olan bir deney ileri sürdü. (Buna göre sorgulayıcı birtakım sorularla bilgisayar ile insan ayrımını saptayamadığı takdirde makine testten geçmiş sayılır.) Makine öğrenmesi kavramı da bu şekilde doğdu diyebiliriz. Bu alandaki ilk çalışmalar günümüzde sinir ağları olarak bilinen “algılayıcı” (perceptron) adı verilen basit sistemler üzerinde başlamış, daha sonra sembol düzeyi öğrenme metotları geliştirilmeye başlanmıştır. 1970'lerin sonlarına doğru ise bilgi düzeyi öğrenme metotları geliştirilmeye başlanmıştır. Bilgi düzeyinde öğrenme özelliğine sahip sistemler bir sistem ne kadar bilgiye sahipse, o kadar çok şey öğrenebilir prensibini benimsemişlerdir. Bu çerçevede geliştirilen sistemler indüktif (tümevarım), dedüktif (tümdengelim) ve analojik öğrenme özelliklerine sahiptirler. Büyük veri tabanlarından bu üç öğrenme özelliğiyle yeni bilgiler ortaya çıkarılmıştır.
Makine öğrenme metotlarını aşağıdaki gibi maddeleyebiliriz:
Sınıflandırma(Classification) : Geçmiş bilgilerin belli sınıflarda tutulması ile yeni gelen verinin hangi sınıfa dahil olduğunun bulunması işlemidir.
Kümeleme(Clustering): Geçmiş bilgilerinin sınıfları bilinmediği veya verilmediği durumlarda verilerden birbirine benzerlerin yer aldığı kümelerin bulunması işlemidir.
Eğri uydurma(Regresyon): Geçmiş bilgilere karşılık gelen sınıflar yerine sürekli değerlerin yer aldığı problemlerdir.
Özellik seçimi/çıkarımı: Bazı durumlarda veriye ait birçok özellik bilinse de verinin kümesini, sınıfını, değerini belirleyen özelliklerinin hangileri olduğu bilinmeyebilir. Bu durumlarda tüm özellik kümesinin bir alt kümesi seçilmesi (özellik seçimi) ya da bu özelliklerin birleşimlerinden yeni özelliklerin elde edilmesi işlemidir.
İlişki belirleme: Veri yığınları arasındaki ilişkileri ya da ilişki bağıntılarını belirleme işlemidir. Hangi ürünlerin çoğunlukla birlikte satıldığı, bir ürünün alıcısının başka hangi ürünü satın alabileceği gibi sorulara ilişki belirleme yöntemi ile cevap bulunabilir.
Peki makine öğrenimini hangi alanlarda kullanıyoruz? Farkında olmasak da makine öğrenimi günlük hayatımızın her yerinde kullanılıyor. Biraz önce 1970'lerin sonlarına doğru geliştirilen bilgi düzeyi öğrenme metotlarından bahsetmiştim. Bu metotlar ilk olarak, tıb veri tabanlarındaki ilaç uygulamalarında ve bunların etkileri üzerinden yeni tedavi yollarının ortaya çıkarılmasında kullanılmıştır. El yazısıyla yazılmış bir metindeki karakterlerin tanınması, herhangi bir ürün alan insana ilgisini çekebilecek diğer seçeneklerin sunulması, bankacılıkta hangi müşterilerin iyi veya kötü olduğu, borsanın hareketlerinin anlaşılmasını da makine öğrenimiyle mümkün olmaktadır. Bunların dışında birçok hasta ve sağlıklı gen bilgilerinin tutulması ile yeni gelen bir genin hasta veya sağlıklı olması tahmini, yüz tanıma sistemlerinin geliştirilmesi, parmak izinden, ses tonundan veya el yazısından kişinin tespiti, bir mailin spam olup olmadığı, aynı özellikteki dava sonuçlarının tutulmasıyla, yeni gelen benzer bir davada aynı yönde bir karar verilmesi yine makine öğrenimiyle mümkün olmaktadır. Son yıllarda yapay zekada, robotikte, biyoinformatikte, doğal dil işlemede de makine öğrenme yöntemleri ön plana çıkmıştır.
Sona yaklaşırken biraz da makine öğreniminin kullanıldığı birkaç örnek projeden bahsetmek istiyorum.
IBM tarafından1985 yılında üretilen ve satranç oynama özelliği olan ilk bilgisayar Deep Blue (Derin Mavi) donanım bazında 1,4 ton ağırlığındaydı ve 32 paralel işlemciyle çalışıyordu. İçerisinde satranç oyununa göre adapte edilmiş bir program vardı. 1980'li yıllarda Garri Kasparov, dünya çapında satranç alanında ün yapmış ve bilgisayar üreticilerinin de ilgi odağı olmuştu. Bazı şirketler, teknolojinin ne kadar geliştiğini göstermek için Kasparov'u yenebilecek bir bilgisayar geliştirmek istediler. IBM, Deep Blue isimli bir bilgisayar yaparak Kasparov ile bir maç ayarladı. 1996'da yapılan 6 setlik maç sonunda Kasparov, Deep Blue'yu 4-2 yendi. IBM sonraki yıla kadar Deep Blue'yu geliştirdi. Eklenen özellikler ile oyunun akışına göre gerekli olan algoritma, oyun aralarında geliştirilebiliyordu.Geliştirilen bilgisayar Deeper Blue olarak da bilinmekle beraber resmi adı Deep Blue'dur.11 Mayıs 1997'de tekrar bir maç ayarlandı. Deep Blue Kasparov'u 2.5'a karşı 3.5 puanla yendi ve insanlık tarihinde ilk kez bir bilgisayar, dünya satranç şampiyonunu yenmiş oldu. Ancak Kasparov 2. oyunda bilgisayara insan eliyle müdahale edildiğini öne sürerek yeniden maç önerisinde bulundu. Bu iddia birçok satranç otoritesi tarafından da kabul gördü. IBM ise Kasparov'un yeniden maç önerisini ve iddiasını reddederek Deep Blue projesini sona erdirdi.
Deep Blue dışında yine IBM tarafından geliştirilen ve doğal dilde sorulan sorulara cevap vermek amacıyla tasarlanan ve makine öğreniminde ileri bir uygulama olduğunu söyleyebileceğimiz Watson projesinden bahsetmek istiyorum. İnsanların karmaşık sorulara hızla bilimsel yanıtlar bulabilmelerine olanak sağlayacak olan bu proje, Deep Blue gibi bilgi teknolojisi sistemlerinde atılan büyük bir adımdır. 2011 yılında 100. yılını kutlamakta olan IBM firması, Watson'ın yeteneklerini ülkemizde “Riziko!” adıyla uyarlanmış “Jeopardy” adlı televizyon programında test etmiştir. Yarışmada hiçbir ağa bağlı olmayan ve internet kullanmayan Watson, konuşmaları algılayıp sorulan sorulara matematiksel verilere dayanarak doğru olmaya en yakın bulduğu cevabı vermiş, kimisi absürd olan yanıtlarla stüdyodakileri güldürmüştür. Tüm sorulara hafızasından yanıt veren Watson yarışmayı kazanarak testi başarıyla geçmiştir. Yarışma konusunda daha çok şey merak ediyorsanız bu videoyu izlemenizi tavsiye ederim. Watson projesi konusunda ise bu video açıklayıcı olacaktır.
Bu yazımda sizlere makine öğrenimi kavramını, bu kavramın oluşma sürecini, kullanım alanlarını, geliştirilmesinde kullanılan metotları kısaca anlatmaya çalıştım. Umarım yararlı olmuştur. Gelecek sayılarımızda görüşmek üzere:)
KAYNAKLAR:
- http://www.forbes.com/sites/85broads/2014/01/06/six-novel-machine-learning-applications/
- http://www.sakirkocabas.com/files/bumat.rtf
- https://www.ce.yildiz.edu.tr/personal/banud/file/1560/Makine_Ogrenmesi_ML-5.pdf
- http://www.asis.org/Chapters/soasis/events/20010621d.ppt
- http://en.wikipedia.org/wiki/Watson_(computer)
- http://kobitek.com/ibm_watson_projesi
- http://en.wikipedia.org/wiki/Deep_Blue_(chess_computer)