Bundan yaklaşık 100 yıl önce, Endüstri 1.0 devrinde buharla çalışan makinelerin insan gücünü bir nebze olsa azaltması ve seri üretimi arttırması insanların ağızlarını açık bırakmış, gözlerini yuvalarından çıkarmıştı. Şu an endüstri 4.0 devrini yaşıyor ve 5.0 devri için tartışıyorken, artık buharlı makineleri müzelere kaldırıp işlerimizi öğrenebilen robotlara devretmenin vakti geldi.

Peki Makineler Öğrenebilir Mi?

Bilim kurgu filmlerinde ağzımız açık izlediğimiz sahnelerin günümüz teknolojisiyle gerçekleştirmemiz mümkün. Makinelerin düşünebilmesi, karar verebilmesi ve bunu uygulayabilmesi elbette mümkün. Makine öğrenmesi olarak tanımladığımız bu sistem, yapay zekanın bir alt koludur. Yapay zeka, derin öğrenme, makine öğrenmesi, doğal dil işleme gibi bir çok alt konudan oluşmaktadır. Bu yazımızda makine öğrenmesini ele alacağız. Bir tanım yapmak gerekirse makine öğrenmesi: Matematiksel ve istatistiksel işlemler ile veriler üzerinden çıkarımlar yaparak tahminlerde bulunan sistemlerin bilgisayarlar ile modellenmesidir.

Makine öğrenmesinde bir çok algoritma ve metodoloji kullanılmaktadır. Makine öğrenmesinin temelinde büyük veriler yatmaktadır. Bu veriler makine öğrenmesi algoritmalarıyla sonuçlar üretir. Algoritma bu sonuçlara göre kendi mantığını oluşturur.

Öğrenme Türleri

Ten Machine Learning Algorithms You Should Know to Become a Data Scientist

Makine öğrenmesi algoritmaları 3’e ayrılmaktadır. Bunlar tamamen elinizdeki veriye veya makineyi yönlendirme biçiminize göre değişmektedir. Şimdi aşağıda onları inceleyelim.

Supervised(Gözetimli Öğrenme) Learning

Etiketlenmiş gözlemlerden öğrenme sürecidir. Etiketler, algoritmaya gözlemleri nasıl etiketlemesi gerektiğini öğretir. Örneğin mailleri gruplandırma işlemi yaparken, mail içerisinde “para kazan” ifadesi geçiyorsa spam demelisin gibi yol göstermelerde bulunur. Bu öğrenme şeklinde sınıflandırma ve regresyon algoritmaları kullanılır.

Sınıflandırma (Classification): Her bir gözleme bir kategori/sınıf atması yapar. Örn: spam/spam değil. Sınıflar ayrıktır (sayı değildir) ve birbirlerine yakın/uzak olmaları gibi bir durum söz konusu değildir.

Regresyon (Regression): Her gözlem için öğrendiklerine bakarak reel bir değer tahmini yapar. Örn: “2011 model 40.000 km’de Mia Torento arabanın fiyatı 45.670 TL olmalıdır”.

Unsupervised(Gözetimsiz Öğrenme) Learning

Etiketsiz gözlemlerden öğrenme sürecidir. Algoritmanın kendi kendine keşifler yapması, gözükmeyen örüntüleri keşfetmesi beklenir. Bu öğrenme şeklinde kümeleme ve boyut azaltımı algoritmaları kullanılmaktadır.

Kümeleme (Clustering): Gözlemleri homojen bölgelere ayırır. Örn: bir okuldaki öğrenci gruplarını tespit etmek.

Boyut Azaltımı (Dimensionality Reduction): Gözlemlerin mevcut özellik sayısını az ve öz hale indirir, bize en iyi öğrenme imkanı sunar.

Reinforcement(Takviyeli Öğrenme) Learning

Amaç odaklı bir yöntem olduğu için diğer iki öğrenme yöntemine göre biraz farklılıklar içermektedir. Aslında davranış psikolojisinden yola çıkan bir öğrenme yöntemidir. Asıl amaç Agent’ın (öğrenen etken) çevreyle etkileşerek çevreden geri bildirim alıp -bu geri bildirime reward(ödül) diyoruz- ödülleri maksimuma çıkartarak optimum policy’i(hareket tarzı) bulmasıdır. Bir bebeğin sıcak bir şeye dokunup elinin yanması ve daha sonradan bu şeye dokunmaktan çekinmesi buna örnektir. Bu durumda öğrenme bebeğin çevresiyle olan etkileşimi ve çevreden geri bildirim almasıyla -bu durumda negative reward(ödül) diyebiliriz- gerçekleşir.

Peki Nasıl Öğreniyor Bu Algoritmalar?

Artificial intelligence (2017) Art Print by Matthieu Bourel / Ek Dojo | Society6

Bu algoritmalar öğrenebilmesi için ham bir veri setine ihtiyaçları vardır. Bu veriler metin, görüntü, genetik verisi, sayısal ölçümler, sosyal ağlar, kullanıcı puanlamaları gibi ihtiyacınıza göre her çeşit veri seti olabilir. Daha sonra öğrenme yönteminize göre çeşitli adımları izlemeniz gerekir. Ben örnek için gözetimli öğrenme yöntemini ele alacağım.

Elimizde bir hasta grubunun sağlık verileri olsun. Bu veriler her hasta için “yaş, cinsiyet, sigara içiyor mu, günde kaç sigara içiyor, şeker hastalığı var mı, daha önce kalp krizi geçirdi mi, kolestrolü kaç, nabzı kaç, şeker seviyesi kaç” gibi bilgileri içersin. Bu bilgilere dayanarak hastaların 10 yıl içerisinde kalp krizi geçirme olasılıklarını tahmin edelim.

Özellik Çıkarımı (Feature Extraction)

Gözlemlerimizi en iyi temsil edecek özellikleri kullanmak için ham veriden Özellik Çıkarımı (Feature Extraction) ve çıkarılan özellikler üzerinde Özellik Seçimi (Feature Selection) yapıyoruz. Kalp krizi geçirme konusunu ele aldığımıza göre elimizdeki bilgilerden bize en çok yarayacak olan sigara sayısı, daha önce kalp krizi geçirip geçirmediği gibi özellikler üzerinde çalışmakta fayda var.

Model Oluşturma

Özellikler çıktıktan sonra bu özellikleri matrissel hale getiriyoruz. Öğrenme algoritması bu matris üzerinde çalışarak bize bir takım kurallar çıkarıyor. Örneğin basit bir algoritma az sayıda veriye bakarak algoritma bize şöyle bir model ortaya koyabilirdi:

Kriz olasılığı=günlük sigara sayısı*0.05+kolestrol seviyesi*0.004

Fakat veriler arttıkça bu model daha da karmaşıklaşmakta ve doğru sonuca daha çok yaklaşmaktadır. Bu sebeple doğru sonuca ne kadar yaklaşmak istiyorsak, o kadar çok veri bilgisine sahip olmamız gerekir.

Değerlendirme

Şimdi elimizdeki verileri modelimiz üzerinde hesaplamalar yaparak test verileri oluşturuyoruz. Bu sonuçlara göre  olasılık 0.5’den büyükse kriz geçireceğini iddia ediyorum diyoruz. Modelin ürettiği bu tahminleri elimizdeki gerçek kriz bilgileriyle karşılaştırıp ne kadar başarılı bir tahmin yaptığını değerlendiriyoruz.

Değerlendirme yaparken, aşağıdaki 3 kıstası kesinlikle dikkate almalıyız:

Accuracy (Doğruluk): doğru bildiğimiz / toplam gözlem. Bunu hem model tahminimiz için yapıyoruz, hem de baseline (dayanak) denilen basit tahmin için. Dayanak, eğitim verisindeki gözlemlerin yüzde kaçı kriz geçirmiş sorusuna verdiğimiz cevap oluyor. Yani hiçbir fikrimiz olmadığında öne sürebileceğimiz en iyi cevap. Model doğruluğu, dayanak doğruluğundan ne kadar iyiyse o kadar iyidir.

Sensitivity (hassaslık): Gerçekten kriz geçiren kimselerden yüzde kaçını “kriz geçirecek” diyerek bildik?

Specificity (belirginlik): Kriz geçirmeyen kimselerden yüzde kaçını “kriz geçirmeyecek” diyerek bildik?

İyileştirme

Eğer modelin yeterince başarılı olmadığını düşünüyorsak nerelerde hata yaptığını inceleyip modelimize hangi özellikleri vermemz gerektiğini düşünmeliyiz. Bazı özellikleri çıkarmalı, bazı özellikleri eklemeli, yeniden bir model oluşturup tekrar değerlendirmeliyiz. Bu süreç tatmin olana kadar devam edebilir ama sonu yoktur.

Örneğin ilk modelimizin yeterli olmadığını gördüğümüzde “bir de daha önce kalp krizi geçirmiş mi” özelliğine bakalım deyip ayrı bir model oluşturup onu test edip daha başarılı olduğunu görebiliriz. Modelin performansı, sağlamlığı konusunda çeşitli metrikler mevcuttur.

Tahmin

Eğer modelimizin test kümesinde başarılı şekilde tahmin yürüttüğünü düşünüyorsak başka veriler üzerinde modeli çalıştırıp tahminler yapmaya ve modelden faydalanmaya başlayabiliriz. Ne kadar çok veri kümesiyle test işlemi gerçekleştirirseniz daha karmaşık model oluşacak ve doğrulup payına iyice yaklaşacaksınız.

Makine Öğrenmesi Nerede Kullanılır?

Makineler Öğrenebilir Mi? 1

Makine öğrenmesi siz farketmeseniz de hayatımızın bir çok yerinde kullanılıyor. Örneğin, Facebook’un yakın zamanda getirdiği ve baya tepkiye yol açtığı fotoğrafları otomatik etiketleme özelliği bu yöntem ile çalışıyor. Fotoğraflardaki yüzleri görüntü işleme yöntemleri ile işliyor ve kullanıcı verileri üzerinde birbirleri ile ilişkili olan insanların fotoğraflarını bularak etiketleme işlemi gerçekleşiyor. Yani halanız Facebook’a bir fotoğraf yüklediğinde Facebook aslında sizin halanızın yeğenlerinden biri olduğunuzu biliyor. Dışarıdan bakıldığında ne kadar harika gözükse de, Facebook’un bu kadar bilgiye sahip olması doğru mudur? Tartışılır, neyse ki bu konumuz değil. 🙂

Yüksek lisans, doktora tezi veya akademik makale hazırlayan arkadaşlarımız bu konuyu daha iyi bileceklerdir. Bu tarz bir bilimsel yazı hazırlama sürecinde bir çok kaynaktan faydalanırız. Bu yazıları hazırlarken bu kaynaklardan öğrendiğimiz, denediğimiz ve gözlemlediğimiz sonuçları içeren bir çalışma hazırlarız. Fakat emekleri suistimal eden insanlar olduğu için buna çözüm bulmak amacıyla makine öğrenmesi teknolojisi kullanılmaktadır. Ayrıca e-postalardaki spam ve mail gruplama işlemi ve internet üstünden içerik yayını yapan büyük web siteleri bu teknolojiyi kullanarak yazılarına gelen küfürlü ve zararlı yorumları daha hiç yayına almadan silebiliyorlar.

Makine öğrenmesi son zamanlarda reklamcılık sektöründe de oldukça kullanılabiliyor. Özellikle Facebook ve Instagramda gelen reklamlar sizi oldukça paniğe sürükleyebilir. Çünkü Facebook Inc. Instagram, Whatsapp gibi 3 büyük platformun sahibi ve saniyede elde ettiği verinin miktarını tek nefeste söylemek sanırım mümkün değil. Bu sebeple makine öğrenmesi algoritmalarıyla saniyeler içerisinde sizen en uygun reklamları sunabiliyorlar. Artık Instagram direkt mesajdan konuştuğunuz bir konu hakkında bir reklam görürseniz çok şaşırmayın. 🙂

Sonuç Olarak

Makine öğrenmesi algoritmaları her ne kadar büyük bir iş yapsalar da bu işi yapabilmeleri için büyük veri gruplarına ihtiyaç duymaktadırlar. Yani biz insanlar gibi sezgisel öğrenme şekli gerçekleştirememektedirler. Fakat bu olmayacak anlamına da gelmemektedir. Eğer bu yazıyı şimdi okuyorsan ve bu konu ilgini çektiyse bunun üzerinde hemen çalışabilir, şu an ki hayali gerçekleştirebilirsin. Bu yazıyı okurken 2068 yılındaysan o zaman bu yazıyı okumayı bırakıp, robot hizmetçine sana bir karışık tost hazırlamasını söyleyebilirsin. 🙂