Giriş

Bugünkü yazımız Makina Öğrenmesi (Machine Learning) kavramına odaklanan ve bu zamana kadar bahsettiğimiz şeylerin nasıl kapalı bir döngü oluşturduğuna göz gezdirmeyi hedefleyen bir yazı olacak.

Makina Öğrenmesi Nedir?

Makina öğrenmesi denildiğinde karşımıza çıkan tanım şu şekilde görünüyor:

Makina öğrenmesi istatistik temelli yapay zekanın alt alanlarından birisidir. Makinaların önlerine çıkan, ve programlarında yazılı olmayan, sorunları çözebilmeyi öğrenmesi konusuna eğilir.

İyi, ancak bu öğrenme nasıl yapılır? Çok yüzeysel biçimde ifade etmeye çalışırsak, bu öğrenme varolan veri üzerinden bir matematiksel fonksiyon çıkartır ve karşılaştığı yeni veri üzerine bu fonksiyonla bir tahmin yürütür.

Bu tanımı netlemek için bir örnekle açıklamaya çalışalım. Makinamızın bir fotoğrafta armut olup olmadığını bulmasını istiyor olalım mesela. Böyle bir makinayı üç adımda eğitebiliriz:

  • İlk olarak, içinde armut bulunan ve bulunmayan fotoğrafları içeren bir veri seti bulmamız veya oluşturmamız gerekiyor. Devamında bir insan grubu bu setteki hangi resimlerde armut olduğunu işaretleyerek veriyi makinanın öğrenebileceği hale getirecekler.
  • Daha sonra bu resim verisine bir makina öğrenme algoritması uygulayacak ve bu sayede algoritmanın bir resimde armut olup olmadığını tahmin edebilmesini sağlayacağız.
  • Son olarak, eğer herşeyi düzgün yaptıysak, makinaya yeni bir resim sunduğumuzda bize, doğru bir biçimde, o resimde armut olup olmadığını söyleyecek.

Yani ortada “geçmişte böyle ise, gelecekte de böyle olacaktır” gibi bir kabul var. Burada önemli olan şeyin, öğrenme için kullanılan veri seti olduğunu söylemek gerekiyor. Eğer çöp veri verirseniz, makinanız da düzgün öğrenemeyip yanlış tahminlerde bulunacak doğal olarak. Burada “insan işaretlemesi” denilince aklımıza Google’ın captcha için bize neleri “işaretlettiğini” hatırlamamak elde değil bu arada.

Makina Öğrenmesi Biçimleri:

Buraya kadar güzel, peki makinalarımız öğrenirken nasıl öğreniyor, veriyi nasıl işliyor? Bu konuya baktığımızda dört ana biçim görmekteyiz:

  1. Sınıflandırma - Classification
  2. Regresyon - Regression
  3. Gruplandırma - Clustering
  4. Gariplik Tespiti - Anomaly Detection

Sınıflandırma - Classification

Bu öğrenme tipinde iki veya daha fazla kategoriye göre bir karar veriyor veya tahminde bulunuyoruz. Mesela bir müşterinin finansal geçmişine bakarak bu müşteriye kredi verip verilmeyeceği kararı bu şekilde verilebiliyor.

Bu öğrenme biçiminin grafiğine baktığınızda aslında olay daha açık hale geliyor diyebilirim. Bu öğrenme tipi, veriyi sizin belirlemiş olduğunuz kategorilerde iki veya daha fazla bölüme ayırıyor ve yeni gelen veri bu bölümlerden hangisine denk düşüyorsa size ona göre bir sonuç veriyor.

Regresyon

Regresyon tekniğini bir ya da daha fazla girdiden nümerik bir tahmin yapma denemesi şeklinde ifade edebiliriz. Örnek olarak elimizde ev özellikleri ve satış fiyatlarının olduğu bir veri olsun, bu veriyi işleyerek o bölgede şu şu şu özelliklere sahip bir evin (işte yaşı bu kadar, oda sayısı şu kadar, güvenlikli mi vb.) ne kadara satılacağını tahmin edebilir hale geliyoruz.

Gruplandırma

Gruplandırma ise ilk bakışta sınıflandırma ile aynı gibi görünse de değil. Sınıflandırma yaparken veri üzerinde bir sınır çizme operasyonu yaparak yeni gelen verinin ne olacağını tahmin ediyorduk. Yani elimizde önceden belirlemiş olduğumuz bir dizi sınıflandırma grubu vardı. Burada ise verinin üstünde oluşan ve daha önceden bilmediğimiz veri gruplaşmalarını görmeye, verinin kendi içinde anlamlı ilişki taşıyan gruplar oluşturup oluşturmadığına bakmaya çalışıyoruz.

Aradaki farkı daha sonra, teknik eğitim içerisinde, bahsedeceğimiz bir kavram grubu ile ifade etmeye çalışırsak:

Sınıflandırma gözetimli öğrenme (supervised learning) iken, gruplandırma gözetimsiz öğrenme (unsupervised learning)’dir.

Bu konuda, doğru biçimde verilen, en sık örnek müşteri segmentasyonu çalışmaları: Yani müşterinin gelirine, yaşına, cinsiyetine, çocuk sayısına, vb. gibi özelliklerine bakılarak belli gruplara dahil edilmesi ve ileride yapılan reklam kampanyalarının hangi gruba hitap ettiği bilinerek planlanması gibi sonuçlara yol açan çalışmalar bunlar.

Anormallik Tespiti

Burada ise veriyi incelerken “normal” olarak addettiğimiz değerden farklı olan değerleri bulmaya çalışıyoruz. Mesela Steam üzerinde bir oyunun birden bire hızlı biçimde negatif oy almasını sistem farkedebiliyor ve siz o oyunu incelerken önünüze bir grafikle o oyunun durumunu ifade edebiliyor.

Deep Learning

Gelelim Deep Learning konusuna. Bu öğrenme biçimi birden fazla makina öğrenme modellerini katman katman koyarak bir hiyerarşi oluşturarak veriyi işlemesini, öğrenmesini ve bir karar vermesini sağlar.

Bu öğrenme biçimini eğer Facebook’a fotoğraf yüklüyorsanız zaten aktif biçimde kullanıyorsunuz. Sizin yüklediğiniz fotoğraflardaki yüzlerin kim olduğunu tanıma algoritması bir Deep Learning algoritması olarak ifade edilebilir.

Peki bunu nasıl yapıyor olabilir? Facebook’ta çalışıyor değilim, bu bir tahmindir bu arada bunun altını çizeyim. Yeniden ifade edelim, amacımız insan yüzlerini tespit eden bir deep neural network (Derin sinir ağı) üretmek. Bunu çıktısı dahil beş adımda şöyle tasarlayabiliriz:

İlk adımda, yani giriş katmanında, biz sisteme içinde insan yüzü olduğu işaretlenmiş bir veri yükleyerek sisteme farklı yüzlerin nasıl olduğunu öğretiriz.

İkinci adımda sinir ağı, bir insan yüzünü oluşturan geometrik biçimleri öğrenebilir.

Üçüncü katman resimdeki daha kompleks özellikleri, göz, burun veya ağız gibi, tespit etmeyi öğrenebilir.

Dördüncü katman ise bütün bir yüzü tespit etmeye adanmış olabilir.

Sonuç katmanında ise bir kişinin adı gibi soyut tasarımları öğrenmek ve başka bir veri seti ile bağlantı kurmak gibi işlemler yapılabilir.

Burada katmanların birbirlerinden veri alıp verdiklerini gözden kaçırmamak gerekiyor. Bir diğer deyişle, veri giderek “anlamlı” hale gelerek bu katmanların arasında geçiş yapıyor.

Çok güzel görünüyor değil mi? Hele ki Derin Sinir Ağlarının önceki nesil makina öğrenme algoritmaları ile kıyasla örüntü tespiti, karar verme ve tahmin isabeti konusunda daha kuvvetli ve isabetli olduğu düşünüldüğünde tadından yenmez bir hale geliyor. Peki neden her yer derin öğrenme modelleri ile kaynamıyor? Basit, çünkü bu öğrenme modelini adam akıllı kullanabilmek için çok veriye ihtiyacınız var. Sınırlı sayıda veri verildiğinde bu türden sistemlerin iş yapamadıklarını görüyoruz.

Bu öğrenme biçimi artık günlük hayatımızda yer alan bir çok teknolojinin de belkemiğini oluşturuyor. Bahsettiğim üzere Facebook’un resimden yüz çıkartması, Siri, Alexa ve Cortana gibi ses tanıyan ve yanıt veren uygulamalar veya resim üreteçleri hep bu modeller dahilinde çalışan şeyler.

Sonuç

Bu kısımda, bu yazının sonucundan ziyade, bu güne kadar bahsetmiş olduğum bu trendlerin nasıl bir döngü oluşturduğuna değineceğim.

Nitekim, yazı dahilinde makina öğrenmesine kavramsal bir giriş yapabildiğimizi düşünüyorum. Bu trend nedir, neyi ifade etmektedir, nasıl öğrenir gibi soruların yanısıra oldukça popüler hale gelen Deep Learning ve Deep Neural Networks konularına da girdik.

Peki, iyi güzel de tüm bu trendlerin sonucu nedir? Ne olacak?

Bu soruya yanıt vermek için bir adım geri atıp bu teknolojilerin birbirleri ile iletişerek bir yapı oluşturduklarını görmek gerekiyor:

  • İlk yazımızda bahsetmiş olduğumuz veri analitiği, yani veri bilimi pratiklerinin iş dünyasına uygulanması, ile veri bilimi iş dünyasında rasyonel karar alma biçimi olarak kabul görülmeye başlandı. Bu daha da artarak devam ediyor ve edecek.
  • İkinci yazımızda bahsettiğimiz Internet of Things ile araçlar ve alıcılardan oluşan ve etrafımızdaki dünya hakkında gerçek zamanlı verileri elde edebildiğimiz bir sinir ağı oluşturuyor hale geldik.
  • Üçüncü yazımızın konusu olan Big data ise gerek bu araçların ürettiği, gerekse elastik ve ölçeklenebilir dağıtık bilgisayar teknolojilerinin üzerindeki verileri ve bu verilerin hızlı bir biçimde işlenmesini ifade etmekte.
  • Bu yazımızda ise bu verinin üzerinden hareketle örüntü tespit edebilen, karar verebilen ve sonuç öngörebilen ve bunları programında apaçık belirtilmeden - öğrenerek - yapabilen yazılımlara değindik.

Tüm bu trendlerin birbirini beslediğini umarım görebiliyorsunuzdur. Bu teknolojiler sadece trend olarak değil, işleyiş olarak da birbirini besleyebilir haldedir üstelik. İfade etmek gerekirse:

  • Internet of Things, big data altyapısına işlenmek üzere büyük veri akışları gönderir.
  • Big data yapısında tutulan veriler Makina Öğrenme Algoritmalarına yüklenerek, örüntüler bulunur, kararlar verilir ve tahminler yapılır.
  • Bu verilen karar ve yürütülen tahminlere göre de Makina Öğrenme Uygulamaları IoT araçlarına komutlar göndererek yeni duruma ayak uydurması sağlanır.

Tüm bu trendler, eskiden insan tarafından yapılan bir çok işin artık robotikleşeceğinin ifadesi aslında. Şu anda “akıllı sistemler”, “Bulut robotiği” veya “Siber-fiziksel sistemler” kavramları ile ifade edilen yapılar tam da bu döngüyü ifade etmekte.

Hatta bu konuda, yani hangi işlerin robotikleşeceği konusunda şöyle bir matris bile yapılmış halde:

Burada bizim sormamız gereken soru da şu oluyor, böyle bir dönüşüm varken, eğer başarılı olunursa miyadı dolacak, eski teknolojilere mi yatırım yapmalıyız, yoksa bu dönüşüme mi? Bu dönüşüm sayesinde, eğer tahminlerim beni yanıltmıyor ise, gerek asteroid madenciliği olsun, gerek akıllı şehir ve evler olsun, gerekse alışveriş merkezleri olsun daha önceden görmediğimiz, tahmin bile etmediğimiz bir geleceğe gidiyoruz. Bunu görmek için de alim olmaya gerek yok, bundan, fazla değil, 25 sene önce “Cep telefonu” ile internete girmek falan deseydiniz insanlar boş boş bakarlardı size. 25 sene sonra nasıl bir dünyada yaşayacağımız sorusu gerçekten heyecan verici bir soru ama o net bir gerçek.

Okuduğunuz için teşekkür ediyorum.