Derin öğrenme sistemleri nasıl çalışıyor?

Erdal Musoğlu Y
Derin öğrenme sistemleri nasıl çalışıyor?

Derin Öğrenme aslında Nöron ya da Sinir Ağları (Neural Netwoks) denilen ve 70 yıldır bilinen bir tekniğin yeni adı. 1944’de Chicago üniversitesinden W. McCullough ve W. Pitts tarafından önerilen nöron ağları 1969’a kadar hem sinirbilimi (neuroscience) hem bilgisayar bilimi (computer science) alanlarında önemli bir araştırma konusu oldu. Ama o yıl MIT yapay zeka laboratuarı yöneticileri Marvin Minsky ve Symour Papert tarafından iş göremiyecekleri ‘kanıtlanarak’ ikinci plana düştüler.

Nöron Ağları 2010'lu yıllara kadar hep inişli çıkışlı bir seyir izledi. Son on yılda ise, yeni mimariler, yeni algoritmalar ve GPU (Graphical Processing Unit) adı verilen ve bilgisayarların görüntüleme sistemlerini oluşturan işlemcilerinin güçlerindeki büyük artış nedeniyle ön plana çıktılar.

Video oyunları ve yapay zekâ


GPU’lar özellikle bilgisayar oyunlarının yüksek çözünürlükteki görüntülerinin hızla hareket etmelerini (animasyonlarını) sağlamak için kullanılıyorlar ve oyun pazarının büyüklüğü sayesinde hızla geliştiler. Herbiri küçük işlemler yapan binlerce çekirdekten oluşan bu işlemcilerin (Multicore Processors) sinir ağları için biçilmiş kaftan olduklarını anlaşılması uzun zaman almadı. Yani bir anlamda yapay zekâ’nın sıçramasını video oyunlarına borçluyuz!

GPU kullanımı ve genel olarak bilgisayar donanımının gelişerek hızlanması ile oluşan işlem gücü ise sinir ağlarının günümüzde sayıları 50 ye kadar çıkan tabakaya (katmana) sahip olmasını sağladı. Derin öğrenme terimi de bu katmanların çokluğuna (derinliğine) atıfta bulunarak kullanılıyor.

Nasıl çalışıyor?

Sinir ağları, Makine Öğrenimi (Machine Learning) için kullanılıyor. Bu yöntemle, bilgisayarlar, verilen örnekleri analiz ederek belirli işleri yapmayı öğreniyorlar. Örnekler genelde önceden ‘etiketlenmiş’, yani öğrenilmesi istenen öğe insan eliyle işaretlenmiş oluyor. Örneğin bir cisim tanıma uygulaması binlerce (hatta milyonlarca) araç, ev, kedi vs görüntüsünü analiz ederek önceden işaretlenen cisme ilişkin örüntüyü (Pattern) belirliyor.

İnsan beyninin yaklaşık bir modeline dayanan ve bir bilgisayar programı olan sinir ağı, binlerce hatta milyonlarca düğümden (nodes), yani beynimizdeki nöronlar gibi birbirlerine yoğun biçimde bağlı ve basit işlemler yapan hücrelerden oluşur. Güncel sinir ağları bu hücreleri üstüste tabakalar (layers) biçiminde organize ederler ve verileri yalnız bir yönde, ileriye doğru (feed-forward) aktarırlar. Tek bir hücre, altındaki tabakalardaki birçok hücreden veri alıp, işleyip, üstündeki tabakalarda bulunan birçok diğer hücreye aktarır.

Belirli bir hücre, her veri alış bağlantısına bir ağırlık (weight) karşı düşürür, yani oradan aldığı veriyi bir katsayı ile çarpar. Sinir ağı çalıştırıldığında, hücre girişlerinden aldığı tüm verileri (sayıları) katsayıları ile çarpar ve toplamlarını alıp tek bir sayı oluşturur. Eğer söz konusu sayı belirli bir değerden (eşikten) büyükse, hücre ‘ateşlenir’ yani sayı üst tabakalardaki hücrelere iletilir.

Sinir ağının eğitilmesine başlandığında tüm çarpanlar ve eşik değerleri rasgele (random) sayılardan oluşur. Eğitim için kullanılan örnek bilgi (örneğin bir insan yüzü) ağın en alt tabakasına verilir ve üstteki tabakalara, yukarıda özetlediğimiz biçimde işlemden geçerek iletilir. Örnek bilgi en üstteki veri çıkış tabakasına geldiğinde tamamen değişmiş durumdadır. Ağın eğitimi sırasında, örnekler çoğaldıkça çarpanlar ve eşikler, çeşitli algoritmalar (programlar) aracılığı ile sürekli değiştirilerek, aynı etiketi taşıyan (örneğin üzerinde insan yüzü işaretlenmiş olan) olan örneklere ait çıktıların olabildiğince benzer olması sağlanır.

Bizim beynimizin çalışmasına da ışık tutuyor

Eğitim bitip ağın tüm parametreleri ayarlandığında, sinir ağımız, hiç görmediği yeni bir insan yüzünü (hücre, tabaka ve eğitimde kullanılan örnek sayısına bağlı olarak) büyük bir doğrulukla tanıyacaktır.

Daha 1944 yılında McCullough ve Pitts’in tasarladığı sinir ağları, çoklu tabaları ve eğitme mekanizmaları olmamasına rağmen, ağırlık çarpanları ile eşikleri kullanıyorlardı. Bu iki araştırıcı, bir sinir ağının, bir klasik bilgisayarın hesaplayabileceği her fonksiyonu hesaplayabileceğini kanıtlamışlardı. Sinir ağlarının yapısı ve çalışması ise insan beyninin çalışmasına dayandığından (onun modeli olduğundan), dolaylı olarak, insan beyninin de bir bilgisayar olarak ele alınabileceği ve incelenebileceği kanıtlanıyordu.

Günümüzde de, sinir ağları, sinirbilim araştırmaları için önemli bir araç olmayı sürdürmekteler. Örneğin birçok sinir ağının yapıları ile ağırlık (çarpan) ve eşik değerlerini belirleme kuralları, beynimizin yapı ve algılamasının gözlemlenen özelliklerine denk çıkmaktadır. Bu da beynimizin bilgiyi nasıl işlediği konusuna ışık tutmaktadır.

Kendi yaptığının nasıl çalıştığını anlayamamak...

Bütün bunlar iyi, güzel ama, sinir ağları konusunda, entelektüel olarak hiç de tatmin edici olmayan birşeyler var. Evet, derin öğrenim (Deep Learning) adı da verilen eğitimleri sonrası, sinir ağları parametlerelerini optimal biçimde ayarlıyorlar, ama bütün bu ayarların bizler için anlamı ne?

Sinir ağı, eğitimi sonucu tanıdığı cisimlerin, konuşmanın, zekâ oyunu stratejilerinin hangi özelliklerini belirleyip, onları nasıl kullanarak çalışıyor?

Aynı sorular bizim beyinlerimiz için de geçerli değil mi?

Biz de pek çok şeyi nasıl yaptığımızı bilebiliyor muyuz?

Bu soruların cevapları henüz tam açıklığa kavuşmuş değil, ama bir çok ipucu bulundu ve araştırmalar yoğun biçimde sürmekte.

Erdal Musoğlu / emusoglu@gmail.com

Kaynaklar:
http://news.mit.edu/2017/explained-neural-networks-deep-learning-0414
https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/
https://en.m.wikipedia.org/wiki/Deep_learning

Bu yazı HBT'nin 66. sayısında yayınlanmıştır.

Erdal Musoğlu