Yapay Zekanın Yeni ve Çekici Mimarisi Kapsül Ağına Uygulamalı Bir Bakış

Yapay zekanın “babası”, “süper starı” olarak bilinen Geoffrey Hinton’ın 2017 yılının son aylarında yayımladığı çalışmasını sunarken sarf ettiği:

“Evrişimli sinir ağlarında kullanılan ortaklama (pooling) işlemi büyük bir hataydı; çok iyi bir şekilde çalışması ise facia!”

Geoffrey Hinton ve Sara Sabour

Bilindiği üzere evrişimli sinir ağları (convolutional neural networks-CNN), genellikle başarılı sonuçlar vermesi nedeniyle bilgisayarlı görü uygulamalarında sıklıkla tercih edilmektedir. Evrişimli sinir ağı modellerinin yetersiz kaldığı problemlere çözüm olarak kapsül ağları ve dinamik yönlendirme algoritması [1, 2] önerilmiştir.

Peki evrişimli sinir ağları neredeyse mükemmel değil miydi? Bu problemler nelerdir? Ters giden bir şeyler mi var?

Portrait de femme au col d`hermine (Olga)

Evrişimli sinir ağları özellikle nesne tanıma problemini çözmekte büyük başarı göstermiştir. Ancak mükemmel olmadığı örneğin, bir yüz görüntüsünde olması gereken ağız, göz burun gibi bilgileri bulmakta ve bunun yüz olduğunu tespit etmektedir. Aslında göz ile burunu yer değiştirmiş bile olsak! Bu dramatik bir hata ve ters giden bir şeyler olduğunun kanıtıdır. Konum, yönelim, duruş ve açısal değerin değişmesi durumunda dahi bir grup nörondan oluşan kapsüller aracılığıyla nesnenin başarıyla tanınabilmesi için nesneyi temsil eden kalınlık, ölçek, kaydırma vb. özelliklerin anlaşmalı yönlendirme (routing-by-agreement) ile öğrenilmesi sağlanmıştır [1]. Bu özelliklere örnekleme parametreleri (instantiation parameters) denir. Klasik evrişimli sinir ağı modelinde görüntüdeki nesneye dair bu tip öznitelikler elde edilmemektedir. Ortalama/maksimum ortaklama (average/max-pooling) katmanında boyut azaltılırken görüntünün bir takım bilgileri kaybolmaktadır.

Evet, bir yerlerde ağız burun göz var ama olması gereken yerde ve yönelimde mi, evrişimli sinir ağı modeli buna karar verememektedir.

Ezme (squash) Fonksiyonu

Derin sinir ağları modellerinde aktivasyon fonksiyonu olarak ReLU (Rectified Linear Unit) kullanılırken, kapsül ağlarında girdinin vektör olduğu ezme (squash) fonksiyonu kullanılmaktadır.

Dinamik yönlendirme algoritması

Aktivasyon haritası olarak adlandırılan kapsül çıkışlarında oluşan vektörlerin uzunlukları ve yönleri, nesneyi temsil eden özniteliklere ait bilgileri içermektedir. Görüntü içindeki her nesnenin özellikleri ayrı ayrı vektörlerle ifade edilmektedir.

Kapsül Ağının MNIST verisetine uygulanması

Kapsül ağları tarafından gerçekleştirilen nesne açısı tahmini

O halde, adım adım kapsül mimarisini MNIST veri setinin sınıflandırılması için oluşturalım: İlk katmanda klasik evrişim katmanı bulunmaktadır. İkinci katmanda öncül kapsül (primary capsule) adı verilen katmanda ezme (squash) fonksiyonunun uygulandığı evrişim işlemi yapılmaktadır. Üçüncü katman dinamik yönlendirmenin bulunduğu kapsül katmanı sonucunda DigitCaps vektörleri elde edilmektedir.

Öncül kapsül katmanından önce standart bir evrişim katmanı uygulanmakta ve 9x9x256 boyutlu bir çıkış elde edilmektedir. Öncül kapsül katmanında adım aralığı (stride) 2 olan 32 kanallı yeni bir evrişim işlemi uygulanmaktadır. Ancak bunu diğer evrişim işlemlerinden ayıran özelliği ezme (squashing) aktivasyon fonksiyonudur.

Öncül kapsül evrişim işlemi

Bu işlem ardından 6x6 boyutlu bir çıkış elde edilir ancak kapsül katmanında bu çıkış 8 uzunluklu DigitsCaps vektörlerinden 32 tane elde edilecek şekilde bir dinamik yönlendirme algoritması uygulanmaktadır. Bu kapsül sayesinde her bir lokasyon vb. (örnekleme parametreleri) bilgisi için 8 değer bilinmektedir.

Kapsül Katmanı

capsulelayers.py içinde dinamik yönlendirme class CapsuleLayer (layers.Layer) fonksiyonunda tanımlanmaktadır. Bu hesaplama adımı sayesinde görüntüde nesnenin bulunmadığı alanlarda vektör değerleri küçük olurken, nesne tespit edilen alanlarda vektörün boyutları özniteliğe bağlı olarak değişmektedir.

Ayrıca tüm çalışmaya buradan ulaşabilirsiniz.

Test Başarımı

10 bin test verisi ile test işlemi gerçekleştirildiğinde MNIST veriseti için %99.61 doğruluk oranı ve FASHION MNIST veriseti için %92.22 doğruluk oranı elde edilmiştir.

%80 örtüşmeli (overlapping) el yazısı rakamların olduğu MultiMNIST veri seti için kapsül ağının performansının, özellikle evrişimli sinir ağı modeliyle karşılaştırıldığı zaman, iki birbirinden farklı bilginin örtüştüğü durumlarda, etkileyici şekilde iyi olduğu görülmektedir.

MultiMNIST veri seti için kapsül ağı çıkışları

MNIST için 50 Epoch Çalışma Süresi

Kapsül ağı modeli klasik evrişimli sinir ağı modeliyle kıyaslandığında işlem yükü fazla olmasından dolayı eğitim süresi yavaştır. Çeşitli donanımlarda denediğimizde modelin MNIST veri seti için 50 epoch eğitim süresi aşağıdaki tabloda görüldüğü gibi bazen günler bazen dakikalar sürebilmektedir.

Bir GPU’ya ihtiyacımız olacak :)

En cazip seçenek olan Google Colab desteği kullanımı için lütfen Google Colab ile Ücretsiz GPU Kullanımı yazısını okuyun!

Kapsül ağının diğer tüm modellerde olduğu gibi avantajları ve dezavatajları vardır.

Kapsül ağı modelinin farklı yönlendirme algoritmaları ile de uygulanabilmesi denenmesi gereken ve henüz gelişen bir konu olduğunu göstermektedir.

“Evrişimli sinir ağları yok olmaya mahkumdur. — Convolutional neural networks are doomed” Geoffrey Hinton

Yukarıda görülen örnekte Kim Kardashian’a ait görüntünün sadece yönü değiştirildiğinde evrişimli sinir ağı modelinin, onu farklı bir kategoriye dahil ettiğini ya da aslında insana ait olmayacak şekilde özellikler değiştirildiğinde (ağız ve gözün yer değiştirmesi) yine de insan olduğu çıktısını üretebilmektedir. Bu, evrişimli sinir ağı modelleri için bir çok alanda güvenlik problemi yaratabilecek önemli bir kısıttır.

Kapsül ağı modelleri çalışılmaya değerdir ve gelecek vadetmektedir. :)

Merve Ayyüce Kızrak isimli yazarın Yapay Zekanın Yeni ve Çekici Mimarisi Kapsül Ağına Uygulamalı Bir Bakış başlıklı eseri bu Creative Commons Atıf-AynıLisanslaPaylaş 4.0 Uluslararası Lisansı ile lisanslanmıştır.

— — —

[1] Sabour, S., Frosst, N. ve Hinton, G.E., “Dynamic Routing Between Capsules’’, arXiv preprint arXiv:1710.09829, 2017.

[2]Hinton, G. E., Krizhevsky A. ve Wang, S. D. “Transforming Auto-encoders.” International Conference on Artificial Neural Networks. Springer, Berlin, Heidelberg, 2011.

[3] CSC2535: 2013 Advanced Machine Learning Taking Inverse Graphics Seriously, Geoffrey Hinton Department of Computer Science University of Toronto, 2013.

[4] MNIST veri seti ile Kapsül Ağı Algoritması Keras Uygulaması (Türkçe açıklamalı), Deep Learning Türkiye, kapsul-agi-capsule-network.

[5] Kapsul Aglari ile Isaret Dili Tanima, Fuat Beşer, Merve Ayyüce KIZRAK, Bülent BOLAT, Tülay YILDIRIM, https://github.com/ayyucekizrak/Kapsul-Aglari-ile-Isaret-Dili-Tanima

Ph.D. Candidate at Yıldız Technical University | AI Researcher at Bahçeşehir University | www.ayyucekizrak.com/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store