Mühendislik ve Teknoloji

Makine Öğrenmesi Nasıl Derin Oluyor?

Görsel ve sesli medyada sıkça rastladığımız yapay zeka, sinir ağları, makine öğrenmesi, akıllı algoritmalar ve derin öğrenme gibi sözcükler belki sizin de dikkatinizi çekmiştir. Bu terimler yeterli eğitimi olmayan satış/pazarlama personeli tarafından yerli yersiz her türlü ürünün tanıtımızda kullanılmaya başlandı. Ama belki de daha vahimi ilgili alanlarda eğitim almış uzmanların bile bu terimleri ölçüsüzce kullanarak bilimsel ya da ticari platformlarda çıkar elde etmeye çalışması.

Bu kısa yazıda yapay zeka, yapay sinir ağları, makine öğrenmesi, derin öğrenme gibi terimleri olabildiğince elle tutulur bir şekilde tanımlamaya ve teknik uzmanlık sahibi ya da bilgi birikimi olmayanların da anlayabileceği şekilde anlatmaya çalışacağım.

Yapay sinir ağları ile derin öğrenme bu günlerde hemen hemen aynı anlamda kullanılıyor. Aslına bakarsanız “derin öğrenme” (deep learning) terimi yapay zeka alanında en sık kullanılan sözcüklerden olsa da aslında alana yeni eklenenden terimlerden – ilk kullanımı 2014’ler gibi. Alanda uzman birçok araştırmacıya göre derin öğrenme terimi neredeyse uydurma denebilecek kadar yüzeysel. Kaldı ki bu terimi sık sık kullanan bazı kişiler tanımı sorulduğunda net bir cevap bile veremiyor. Öncelikle kafa karışıklığına sebep olan bazı terimleri en genişten başlayarak en özele doğru verelim.

Makine Öğrenmesi Nedir?

Bütün bu öğrenen makineler, derin öğrenmeler, sinir ağları ve benzeri terimler en genel haliyle yapay zeka araştırma alanının içinde yer alıyor. Yapay zeka araştırma alanı insanın zekasına denk ya da daha yüksek zeka seviyesine erişebilecek algoritma, yazılım ve makinelerin tasarlanmasına yönelik çalışmaları kapsar. Makine öğrenmesi ise yapay zeka alanının içinde bir alt kümedir.

Diğer bir deyişle, yapay zeka makine öğrenmesi haricinde başka araştırma ve uzmanlık alanlarını da kapsar. Makine öğrenmesi bunlardan sadece biridir. Makine öğrenmesi, adı üzerinde veri ile beslendikçe yapmak için tasarladığı işi daha iyi yapan (yani öğrenen) algoritma, yazılım ve makinelerin tasarlanması ile ilgilenir.

Şimdi bir katman daha aşağı inerek daha da özelleşmiş alanlara bakalım. Makine öğrenmesi alanının özelleşmiş alt kümelerinden biri 1970’lerden beri üzerinde çalışılan yapay sinir ağlarıdır. Makine öğrenme alanında yapay sinir ağlarını haricinde ortaya atılmış ve başarılı uygulamaları yapılmış pek çok yaklaşım ve model vardır. Peki öyleyse yapay sinir ağlarını özel yapan şey nedir?

Yapay Sinir Ağları Nedir?

Yapay sinir ağları insan beyninin hücre yapısından ilham alır. En azından fiziksel olarak insan beyin hücrelerine benzer bir yapı ile makine öğrenmesi problemini çözmeye çalışır. Bu yaklaşımın ardındaki motivasyon oldukça akla yatkındır. İnsan öğrenebiliyor (en azından çoğumuz öğrenebiliyoruz) ve bunu beyni ile yapıyor. Eğer fiziksel olarak beyne benzer bir model kullanırsak öğrenebilen bir makine yapabiliriz.

Bu yaklaşım ile tasarlanan modellere insan beynindeki sinir ağlarını taklit ettikleri için “yapay” sinir ağları adı verilmiştir. Yapay sinir ağları ilk ortaya atıldıklarında büyük potansiyel vaat etseler de özellikle 1980’lerde ciddi bir durgunluk dönemine girdiler. Bu duraklamanın sebebi insan beyninden esinlenerek geliştirilen bu modellerin etkin bir şekilde eğitilememesiydi. Bu cümle size çok bir şey ifade etmediyse üzülmeyin zira bu konularda eğitim almadıysanız bu çok doğal. Makine öğrenmesi modellerinin eğitimi ile henüz bir şey söylemedik ne de olsa.

En sade haliyle bir makine öğrenme modeli herhangi bir işlevi yerine getirmesi için tasarlanmış bir algoritma ya da yazılımdır. Örnek vermek gerekirse, video kareleri içinde yer alan ve el yazısı ile yazılı rakamları teşhis edecek bir yapay sinir ağı böyle bir modeldir. Bu yapay sinir ağı örneğin postaya verilmiş zarfların üzerindeki el yazısı rakamları ya da bankalarda işlenmek üzere kesilmiş çeklerin üzerindeki el yazısı rakamları tanımak için kullanılabilir.

Makine öğrenmesi modellerinin tasarım aşaması modelin genel yapısını belirler. Modelin girdileri (görsel veri ile beslenecek), çıktıları (teşhis edilen rakam [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] çıktı verilecek), modelin genel yapısı (insan beyin hücrelerine ve bunların birbirine olan çok katmanlı bağlantılarına benzeyecek) ve benzeri. Tasarım aşaması bittiğinde elde edilen modelin yapması beklenen işi yapabilmesi için eğitilmesi gerekir. Makine öğrenmesi alanında üç temel eğitim yaklaşımı mevcuttur.

Makine Öğrenmesi İle İlgili Üç Temel Yaklaşım

Gözetimli ya da güdümlü eğitim

Adı üzerinde bu eğitim yaklaşımı eğitimdeki verinin modele beslenmeden önce bir insan operatör tarafından işlenmesini gerektirir. Yaklaşıma adını veren “gözetim” ya da “güdüm” bu insan etkileşimidir. Görsel rakam teşhisi yapan yapay sinir ağı örneğimiz için gözetimli eğitim şu şekilde olur. On rakamın (0,1,2, 3, 4, 5, 6, 7, 8 ve 9) her biri için binlerce farklı insan tarafından el yazısı ile yazılan rakamların on binlerce görsel örneği dijital ortama geçirilir. Sonrasında yapay sinir ağının eğitimi için kullanılacak işaretlenmiş ( hangi rakama denk geldiği belirtilmiş) örnekleri hazırlanır.

Gözetimsiz ya da güdümsüz eğitim

Tahmin etmişsinizdir ki bu eğitim yaklaşımı ilk yaklaşımdan farklı olarak eğitimde kullanılacak veriyi insan operatörler tarafından herhangi bir işleme tabi tutmaz. Bu sebeple de “gözetimsiz” ya da “güdümsüz” olarak adlandırılmıştır. Son olarak bu iki kenar uç arasında kalan metotlar kendi gruplarını oluşturur.

Konuyu çok dağıtmadan özetlemek gerekirse, bu grup içinde birbirinden çok farklı felsefelerden gelen yaklaşımlar mevcuttur. Örneğin öbekleme tabanlı eğitim yaklaşımları modelleri eğitimde kullanılan veri içerisinde doğal olarak var olan ve fiziksel bir anlam ile ilişkilendirilebilen öznitelikleri çıkartıp öbeklemeleri için eğitir. Kayda değer bir başka eğitim yaklaşımı pekiştirmeli öğrenmedir. Oyun teori tabanlı bu yaklaşım en basit anlatımla model doğru bir karar verdiğinde ödüllendirmeye, hata yaptığında ise cezalandırmaya dayanır.

Makine öğrenme modellerinin eğitilmesi ile ilgili biraz konuştuktan sonra şimdi yapay sinir ağlarına dönebiliriz. Önce de söylediğimiz gibi yapay sinir ağları çok ilgi çekse de pratik uygulamalarının önünü kesen çok ciddi bir problem vardı: Bu modelleri etkin şekilde eğitebilen bir metot yoktu. Ta ki 1986 yılına dek.

Geri Yayınım Algoritması

1986 yılında Geoffrey Hinton (kendisi hala yapay zeka alanındaki en tanınan isimlerden birisi) meşhur Nature dergisinde “Learning representations by back-propagating errors” isimli bir makale yayınladı. Bu makalede ilk defa yapay sinir ağlarının etkin bir şekilde eğitilebilmesini sağlayan “geri yayınımlı öğrenim algoritmasını” tanıttı. Bugün yüzlerce dudak uçuklatan ticari uygulamalarını gördüğünüz tüm yapay sinir ağları bu algoritma (ya da ufak değişiklilerle iyileştirilmiş halleri) ile eğitiliyor.

Bu algoritmik gelişme yapay sinir ağlarının önünü açsa da 1990’lar civarında ikinci bir durgunluk dönemi başladı. Bunu sebebi tamamen pratikti. Bir adım geriye gidip yapay sinir ağlarınatamamen hesaplama açısından bakarsak göreceğimiz şey oldukça basittir: Milyonlarca çarpma, toplama ve doğrusal olmayan çeşitli fonksiyonların değerlerinin hesaplanması.

Yapay sinir ağlarının yüzbinlerce hatta milyonlarca katsayısı vardı. Ve tüm bu katsayılar ile milyonlarca aritmetik işlemi işe yarayacak kadar hızlı yapabilen işlemciler henüz icat edilmemişti. Bu nedenle sıradan sinir ağlarının bile eğitimleri aylar sürüyordu. Sonucunda yapay sinir ağları tabiri caizse ikinci kış uykularına yattılar.

Bugün uygulamalarını gördüğümüz derin yapay sinir ağlarını mümkün kılan gelişme net olarak
parmak basabileceğimiz bir tarihte gerçekleşmedi. Yaklaşık olarak 2007 yılından itibaren o güne
kadar sadece bilgisayar destekli tasarım programlarında ve oyunlarda kullanılan GPU’lar (grafik
işlem üniteleri) NVIDIA şirketi liderliğinden genel amaçlı hesaplama için kullanılabilir işlemciler
haline getirildi.

Alex Krizhevsky

Bu işlemciler daha önce görülmemiş hızlarda hesaplamaların yapılabilmesinin önünü açmaya başladı. Nihayet 2012 senesinde Alex Krizhevsky “ImageNet Classification with Deep Convolutional Neural Networks” başlıklı köşe taşı makalesini yayınladı. Krizhevsky bu makalesinde iki adet sıradan (rafta hazır temin edilebilen NVIDIA GTX 580) grafik işleme ünitesi kullanarak 62 milyondan fazla katsayısı olan bir yapay sinir ağını altı günden daha kısa sürede eğitebildiğini kanıtladı. Ayrıca bu model ile o güne kadar geliştirilmiş tüm görsel cisim tanıma modellerinden daha yüksek cisim tanıma performansı elde edebildiğini gösterdi. Bu makale ile tam anlamıyla yapay sinir ağlarının ticari kullanımlarının önü açıldı. Sonrası zaten ortada.

Derin Öğrenme

Son olarak gelelim derin öğrenme konusuna. Yazının başında bahsettiğimiz gibi yapay sinir ağları
insan beyninin yapısından ilham alarak tasarlanmıştır. İnsan beynindeki sinir hücrelerinin birbirilerine bağlanarak oluşturduğu sinir ağları her ne kadar karmaşık ve organizasyonsuz gibi görünse de yapılan ayrıntılı incelemeler beyindeki sinir ağlarının katmanlardan oluştuğunu göstermiştir. Bunun bir sonucu olarak da yapay sinir ağları da benzer şekilde katmanlardan oluşacak şekilde tasarlanmaktadır.

Bu tasarım kararının ilk ve direk sonucu olarak, bir yapay sinir ağı modeline eklenen her yeni katman modelin toplam katsayı sayısını arttırmaktadır. İkinci sonuç ise burada açıklamamıza gerek olmayan teknik sebeplerden dolayı daha fazla katmanı (ve bunun sonucu olarak daha fazla katsayısı) olan bir sinir ağını eğitmek için eğitimde kullanılacak veri miktarının da arttırılması da bir zorunluktur.

Doğal olarak, daha fazla katsayısı olan bir modeli daha fazla veri ile eğitmek için daha fazla hesaplama yapmak gerekmekte bu da eğitim için gerekli toplam zamanın uzamasına (günler, haftalar hatta aylar) sebep olmaktadır. Bu ekstra çabaların sonucunda beklentimiz yapay sinir ağının başarımının artması yönündedir.

Alanda uzman bilim insanları arasında henüz çok net bir fikir birliği elde edilememiş olsa da genel olarak daha fazla katmana sahip bir yapay sinir ağının daha az katmana sahip bir sinir ağından daha başarımlı olması beklenir. Örneğin, günümüzde ticari başarı elde etmiş sinir ağlarının tamamı 2012’de Alex Krizhevsky’nin tanıttığı sinir ağı modelinden çok daha fazla katmana sahiptir.

Neden Derin Öğrenme?

Bu açıklamanın ardından gelelim derin öğrenmeyi derin yapan şeye. Yapay sinir ağı tasarımı alanında çalışan bilim insanları daha fazla katmana sahip olan sinir ağlarını tamamen teknik sebeplerden dolayı daha derin olarak adlandırmıştır. Yani, bir sinir ağının katman sayısı arttıkça bu sinir ağına daha derin bir sinir ağı denmektedir. Derin sinir ağları kullanılarak yapılan makine öğrenmesi çalışmalarına da derin öğrenme denmektedir.

Bir başka deyişle, tamamen şansa bağlı olarak 2012 yakınlarında daha fazla katmana sahip yapay sinir ağlarına “şişman ağlar” denmiş olsaydı bugün şişman öğrenmeyi konuşuyor olacaktık. Hepsi bu. Umarım bu yazı aklınıza gelebilecek “Derin öğrenmenin neresi derin?”, “Yapay sinir ağlarının neresi sinir, neresi ağ ve neden yapaylar?” gibi sorulara bir cevap olmuştur.



Matematiksel

Başa dön tuşu