Teknoloji

Yapay Zekada Büyük Yenilik: Kapsül Ağları (Capsule Networks)

Günümüzde yapay zeka denilince akla bilgisayarlı görüde CNN (Convolutional Neural Networks, Evrişimsel Sinir Ağları) ve doğal dil işlemede LSTM (Long-Short Term Memory) algoritmaları gelmektedir.

En Çok Kullanılan Bilgisayarlı Görü Yapay Zeka Algoritması: CNN

Bugün itibariyle aşağıdaki resimde görülen sınıflandırma (sınıflandırma), sınıflandırma+lokalize etme (classification+localization), nesne tespiti (object detection) ve resim bölütleme (segmentation) işlemlerine yönelik çalışmalarının neredeyse tamamı CNN algoritması kullanılarak gerçekleştirilmektedir.

CNN tüm katmanları birbirine tam bağlantılı olarak tasarlanmış ve her bir evrişimsel filtre öğrenilmesi gereken öznitelikleri oluşturmaktadır. Bu evrişimsel katmalar “pooling” katmaları sayesinde hem boyut hem eğitim süresinde optimizasyonu sağlamaktadır. Bilgisayarlı görü konusunda derin öğrenmenin en kritik noktası AlexNet’tir. Bu yapıda “dropout” ile rastgele bilgilerin ağ yapısından çıkarılması sağlanarak modelin verileri ezberlemesi (overfitting) probleminin önüne geçilmektedir. Bu bir tür regülarizasyon tekniğidir. CNN algoritması eğer elinizde yeterli veri var ise harika bir şekilde aşağıdaki resimde belirtilen görevleri yerine getirebilmektedir. 

VGG, AlextNet’ten sonra sadece katman sayısı artırılarak daha başarılı sonuç elde eden bir ağ yapısı olmuştur. Ancak başarımı artırmak için, katman sayısını artırmanın tek başına yeterli olunamayacağı; derine giderken genişlemek de gerektiğini GoogLeNet Inception modelleriyle ortaya çıkmıştır.

ResNet, Inception modüllerine “Residual” bağlantıları ekleyerek katmanların çıkış performanslarını iyileştirmektedir.

CNN yapısında;

  • Katmanlar derine daha derine gitmektedir.
  • Hesaplama performansı iyileştirilmektedir (ReLU, dropout, batch normalization).
  • Ağ katmanları arasındaki bağlantıların artması ile geriye yayılım algoritması iyileştirilmektedir.

Geoffrey Hinton, 80’lerde geri yayılım (backpropagation) algoritmasını popüler etmesiyle tanınmaktadır. Bu algoritma günümüzde derin öğrenme uygulamalarının neredeyse tamamında kullanılmaktadır.

CNN Algoritmasındaki Bazı Problemler

Aşağıdaki fotoğraflara bakıldığında, fotoğrafların her biri farklı açılardan çekilmiş ve farklı ışık düzeylerine sahip olmasına rağmen, beynimiz bunların Özgürlük Heykeli olduğunu rahatlıkla algılayabilir. Günümüzde bilgisayarların ve robotların görmesi için en sık kullanılan algoritma olan CNN ise bu yeteneğe sahip değildir. Yani bu resimlerden birisi ile CNN algoritmasını kullanarak eğitim (training) işlemi gerçekleştirirseniz, diğer açılardan çekilmiş fotoğrafların Özgürlük Heykeli’ne ait olduğunu yüksek ihtimalle tanımanız mümkün.

CNN algoritmasında “gizli problem” ise Pooling işlemidir. Gizli problem dememin sebebi Pooling işleminin çok iyi çalışmasına karşı bilgi kaybına neden olduğundandır. Aşağıdaki şekilde görebileceğiniz gibi en çok kullanılan Pooling yöntemi olan Max Pooling yönteminde belirlenen filtre boyutu (aşağıdaki örnekte 2×2) kadar alanda yer alan elemanlardan yalnızca sayısal değer olarak en en büyüğü alınmaktadır. Soldaki 4×4 matriste her biri farklı renkte işaretlenmiş 2×2 alanlar Max Pooling filtresinin uygulanacağı alanları;

Pooling işlemini bulan kişi olan Geoffrey Hinton, bu filtreleme işlemi hakkında Reddit’te şu sözleri sarfetmiştir:

“The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster.”G. Hinton

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

CNN Algoritması Bilgisayarların Görmesini ‘Gerçekten’ Sağlayabilir Mi?

Bir görüntüde yüz tanınmak istendiğinde alt-örnekleme (sub-sampling) dolayısıyla ağız, burun ve göz gibi yüksek seviyeli bilgiye sahip özniteliklerin uzamsal (spatial) ilişkileriyle ilgili bilgiler kayboluyor. Bu hassas uzamsal bilgiler aslında kimlik tanıma konusu için gereklidir. Örtüşmeli alt örnekleme bu uzamsal ilişki bilgisini tutmak için yardımcı olsa da yeterli değildir.

Yeni görüş noktaları oluştuğunda bu geometrik ilişkilerin anlaşılması imkânsız hale gelir. Bu da görüntünün içinde ilgili öznitelikler varsa -uzamsal anlamda istenen durumu karşılamamasına rağmen- yanlış bir sınıflama yapılmasına neden olur. Örneğin CNN, aşağıdaki iki görüntüde de ağız, burun ve ağız özniteliklerini evrişim (convolution) katmanları arasına yerleştirilen Max-Pooling işlemlerinde kaybettiği konum bilgilerinden dolayı aynı şekilde sınıflandırılır: ikisini de yüz olarak!

Bilgisayarlı Görüde Yeni Bir Dönemin Başlangıcı: Kapsül Ağları?

CNN algoritmasında problem olduğu ve bunun geliştirilmesi gerektiğini uzun süredir savunan Geoffrey Hinton, ekibiyle birlikte 23 Ekim ve 3 Kasım 2017 tarihlerinde 2 makale;

[1]https://arxiv.org/abs/1710.09829

[2]http://www.cs.toronto.edu/~fritz/absps/transauto6.pdf

Kapsül Ağları (Capsule Ağları) -kısaca CapsNet-, insan beynin çalışma yapısına daha yakın bir ağ yapısı olarak karşımıza çıkmaktadır.

Kapsül Ağları Nasıl Çalışır?

Kapsül ağları ile birlikte artık sıkça duyacağımız kapsül (capsule), “dinamik yönlendirme” (dynamic routing), “ezme” (squashing) kavramlarının ne olduğuna hızlıca bir bakalım. Aşağıdaki şekilde bir CapsNet mimarisi görülmektedir.

CapsNet ağ yapısında, CNN’den farklı olarak nöron tabanlı işlemler, bir grup nöron olan “kapsül” ile gösterilmektedir. Kapsül denmesinin en önemli sebebi, derinliğin artık katmanların art arda bağlanması ile değil iç içe kapsüllerle bağlanmasıyla elde edilmesidir. Böylece bir katmanın içine birden çok kapsül katman eklenebilir. Bir kapsül bir vektör ile ifade edilir.

Kapsüllerin dinamik aktarımı yönlendirme “routing” işlemi ile gerçekleştirilir. Bu işlem şu an CNN yapısında kullanılan max-pooling işleminden çok daha güçlü özniteliklerin oluşmasını sağlar. Böylece bulunan öznitelik alakasız bir konumda ya da pozisyondayken sınıflandırma işlemi daha verimli yapılır. Ancak dinamik yönlendirme işlemi fazladan hesaplama maliyeti gerektirir. Ayrıca dinamik yönlendirme işlemi dışında CapsNet’in diğer bir özelliği de ezme “squashing” işlemidir. Bu işlem ağdaki non-lineerliği oluşturur. CNN yapısındaki ReLU aktivasyonu, tek nöronda güzel çalışan bir fonksiyondu. Ancak her biri iç içe geçmiş olan kapsüle “ezme” işlemi CNN’deki ReLU yerine aktivasyon fonksiyonu olarak eklenir. Bu sayede kapsül çıkışı, giriş vektörü kısa ise 0, uzun ise 1 şeklinde belirlenir. Squashing {ezme} fonksiyonu aşağıda görülmektedir:

Kapsül ve geleneksel nöron yapısında girişler, işlemler ve çıkış yapısının temel karşılaştırması:

MNIST seti üzerindeki denemeler ve ağ performansı?

State of art veri kümesi olan el yazısı rakamlardan oluşan MNIST’te CapsNet 3 “routing” iterasyonu ile denenmiştir. Sonuçlar CNN yapısında bulunmayan görüntünün poz bilgilerinden yararlanması dolayısıyla son derece başarılıdır. Aşağıdaki tablodan da görüleceği üzere 3 katmanlı yapı ile MNIST verisetinde ilk defa %0.25 test hatası CapsNet ile elde edilmiştir.

Sonuç

Kapsül ağ yapısı, görüntü içindeki hiyerarşik ilişkiyi daha verimli modelleyen yepyeni bir derin öğrenme yapısıdır. Kapsül ağlarının CNN’de yaşanan problemlerin tamamının çözeceğini söylemek için çok erken fakat zaman içerisinde algoritmada yapılacak iyileştirmeler ve farklı verisetleri ile denenmesiyle birlikte durum daha da netleşecektir. Ama şu da bir gerçek ki, günümüzde kullanılan yapay zeka uygulamalarının neredeyse tamamında “öğrenmeyi” gerçekleştirmek için kullanılan geriye yayılım (backprogation) algoritmasının ilk başarılı uygulayıcısı, Boltzman makinelerini 1985’de keşfeden iki kişiden birisi olan ve şu an Google Brain ekibinde yer alan Prof.Dr.Geoffrey Hinton’un yıllardır dile getirdiği ve şimdi uygulamaya geçirdiği kapsül (capsule) fikri dünyadaki yapay zeka çalışmalarına yeni bir yön belirlemiştir.

Yazı ilk olarak http://www.ayyucekizrak.com/blogdetay/yapay-zeka-ve-derin-ogrenme-yazi-dizisi/yapay-zekada-buyuk-yenilik-kapsul-aglari-capsule-networks adresinde yayınlanmıştır.

Aşağıdaki linklerden kapsül ağlarının (capsule networks) çeşitli Python kütüphaneleri ile açık kaynak kodlarına ulaşabilirsiniz:

 

Merve AYYÜCE KIZRAK