CNN'lerin Gelişimi, Kullanmı ve Neden Derin Öğrenme?
🎙️ Yann LeCun##Evrişimli Sinir Ağlarının (CNN) Gelişimi
Hayvan beyinlerinde, sinir hücreleri belirli yönelimlerdeki kenarlara tepki verir. Aynı yönelimlere tepki veren sinir hücresi grupları görme alanının tümünde kopyalanmıştır.
1982 yılında Fukushima iki konsepte dayanan ve beyinle aynı şekilde çalışan bir sinir ağı (NN) oluşturdu. Bu konseptlerden ilki sinir hücrelerinin görme alanının içinde kopyalanmış olması, ikincisi ise bilgiyi basit hücrelerden örnekleyen kompleks hücrelerin (yönelim seçici birimler) bulunmasıydı. Sonuç olarak, resmin kayması basit hücrelerin aktivasyonunu değiştirse bile, kompleks hücrenin birleşmiş aktivasyonunu etkilemeyecekti (evrişimli örnekleme).
1990 yılında LeCun elle yazılmış sayıları tanıması için bir CNN’i geri yayılım kullanarak eğitti. Bu algoritmanın her biçimde yazılmış sayıları tanıyabildiğini gösteren 1992’den bir demo mevcut. O zamanlarda karakter/şekil tanımayı uçtan uca eğitilmiş bir model kullanarak yapmak yeniydi. Bunun öncesinde üstlerinde denetimli bir model bulunan özellik çıkartıcılar kullanılıyordu.
Bu yeni CNN sistemleri bir görseldeki birden fazla karakteri aynı anda tanıyabiliyorlardı. Bu, CNN için küçük bir girdi penceresi kullanılarak ve bu pencere tüm görsel üzerinde kaydırılarak yapılıyordu. Aktive olması, orada bir karakterin var olduğunu gösteriyordu.
Sonralarda, bu fikir hem yüz/insan belirlemede hem de anlamsal bölümlemede (piksel bazlı sınıflandırma) kullanıldı. Hadsell (2009) ve Farabet (2012) bunun örneği olarak gösterilebilir. En sonunda fikir endüstride popüler hale geldi ve şerit takibi gibi otonom sürüş uygulamalarında kullanıldı.
CNN’leri eğitmek için kullanılan özel donanımlar 1980’lerde popüler bir konuydu, sonrasında ilgi düştü, ve günümüzde tekrar popüler oldu.
Derin öğrenmedeki (bu terim o zamanlarda kullanılmasa da) devrim 2010-2013 yıllarında başladı. Araştırmacılar büyük CNN’lerin daha hızlı eğitilebilmesi için algoritmalar keşfetmeye odaklandılar. 2012 yılında Krizhevsky eskiden kullanılan CNN’lerden çok daha büyük olan AlexNet’i tasarladı ve ImageNet’te (1.3 milyon örnek içeren) GPU kullanarak eğitti. Birkaç hafta çalıştırıldıktan sonra AlexNet eskiden %25.8 olan ilk 5 hata oranını %16.4 hata oranıyla çok büyük bir farkla geçti.
AlexNet’in başarısını gördükten sonra bilgisayarlı görme (computer vision, CV) topluluğu CNN’lerin iyi çalıştığına ikna oldu. 2011-2012 yıllarında CNN’lerden bahseden tüm makaleler reddedilmesine rağmen, 2016dan itibaren kabul edilen çoğu makale CNN’leri kullanmakta.
Yıllar geçtikçe CNN’lerde kullanılan katman sayısı da artış gösterdi: LaNet – 7, AlexNet – 12, VGG – 19, ResNet – 50. Ancak çıktının oluşturulması için gereken işlem sayısı ve modelin büyüklüğüyle modelin doğruluğu arasında bir ödünleşim (trade-off) olması sebebiyle, şimdilerdeki popüler bir araştırma konusu da işlemleri hızlandırmak amacıyla ağların nasıl daha küçük oluşturulabileceği.
Derin Öğrenme ve Özellik Çıkarımı
Çok katmanlı ağlar, doğal verilerin bileşimsel yapısından faydalandıkları için başarılıdır. Bileşimsel hiyeraşide, hiyeraşinin bir katmanındaki objelerin kombinasyonu, bir sonraki katmandaki nesneleri oluşturur. Birden çok katman kullanarak ve ağın doğru özelliklerin kombinasyonunu öğrenmesini sağlayarak bu hiyeraşi taklit edilebilir, ve Derin Öğrenme Mimarileri elde edilir. Sonuç olarak derin öğrenme ağları tabiatları gereği hiyeraşiktir.
Derin Öğrenme Mimarileri, nesnelerin etrafında doğru maskelerin tanımlanması ve üretilmesinden nesnelerin uzamsal özelliklerinin belirlenmesine uzanan bilgisayarlı görme görevlerinde olağanüstü bir ilerlemeye yol açtı. Mask-RCNN ve RetinaNet bu gelişime yol açan ana mimarilerdendir.
Mask-RCNN’ler bir görseli her obje için parçalara ayırmada başka bir deyişle görseldeki her obje için maske yaratmakta kullanılıyor. Bu kullanım şeklinde hem girdi hem de çıktı görsel. Aynı zamanda mimari, örnek sınıflandırma başka bir deyişle bir görsel içinde aynı tipteki farklı objeleri belirlemekte de kullanılıyor. Facebook AI Research (FAIR) grubunun bir yazılım sistemi olan Detectron, tüm bu nesne belirleme algoritmalarını oluşturmuş, ve açık kaynak halinde bulunabiliyor.
CNN’ler pratikte otonom sürüşe ve medikal görselleri analiz etme gibi uygulamalara da güç veriyor.
Derin öğrenmenin arkasında yatan matematik ve bilime dair fikirler neredeyse tamamen anlaşılmış olsa da, halen araştırılmaya ihtiyacı olan ve yanıtlanmamış sorular da bulunuyor. Bu sorulardan bazıları şöyle sıralanabilir: Neden iki katman kullanarak her fonksiyona yaklaşılabilmesine rağmen birçok katman içeren mimariler daha iyi sonuç veriyor? CNN’ler neden konuşma, görüntü ve yazı gibi doğal verilerde iyi çalışıyor? Konveks olmayan fonksiyonları eniyileştirme konusunda neden bu kadar iyi sonuç alınıyor? Neden aşırı parametrize edilmiş mimariler çalışıyor?
Daha çok boyutlu uzaylarda olası ayırma düzlemlerinin sayısının artması sebebiyle veri noktalarının doğrusal ayrılabilir olma olasılığı daha yüksektir. Bu sebeple özellik çıkarmada yapılan işlemlerden biri de genişletilmiş özelliklerin doğrusal ayrılabilir olması için temsil boyutunun genişletilmesidir.
Daha öncelerde makine öğrenmesinde çalışanlar yapay zeka modellerini oluşturmak için yüksek kaliteli, el yapımı ve göreve özel özelliklere dayanıyordu, fakat derin öğrenmenin ortaya çıkmasıyla modeller kapsamlı özellikleri otomatik olarak çıkarabilmeye başladı. Yaygın kullanılan bazı özellik çıkarma algoritmaları aşağıda belirtilmiştir:
- Uzayın bölünmesi (tiling)
- Rastgele İzdüşümler
- Polinom Sınıflandırıcı (özellik vektör çarpımları)
- Radyal temel fonksiyonları
- Kernel makineleri
Verilerin birleşik doğası sebebiyle öğrenilmiş özellikler yükselen soyutluk seviyesine göre hiyeraşik bir gösterime sahiptir. Örneğin:
- Görseller - En tanecikli haliyle, görseller pikseller olarak düşünülebilir. Piksellerin kombinasyonu kenarları, kenarların kombinasyonu ise textonları (çok kenarlı şekiller) oluşturur. Texton’lar motifleri, motiflerse görselin parçalarını oluşturur. Bu parçaları birleştirerek ise görselin bütününü elde ederiz.
- Metin - Görsellere benzer olarak, metinsel verinin doğasında da bir hiyeraşi vardır. Karakterler kelimeleri, kelimeler kelime gruplarını, kelime grupları yan cümleleri, son olarak da yan cümleler cümleleri oluşturur. Cümleler de bize aktarılan hikayenin içeriğiyle ilgili bilgi verir.
- Konuşma - Konuşmada, örnekler frekans bantlarını, frekans bantları sesleri, sesler sesbirimciklerini, sesbirimcikleri sesbirimlerini, sesbirimleri kelimeleri, kelimeler ise cümleleri oluşturur. Bu da gösterimde kullanılabilecek açık bir hiyeraşidir.
Öğrenme gösterimleri
“Eğer 2 katman kullanarak her fonksiyona yakaşabiliyorsak neden daha fazlasını kullanalım?” sorusundan yola çıkarak derin öğrenmeyi reddedenler bulunuyor.
Örneğin: Destek Vektör Makineleri (Support Vector Machine, SVM) “veri aralığında” bir ayırıcı üst düzlem bulur, bunun anlamı da tahminlerin eğitim örnekleriyle karşılaştırılarak yapıldığıdır. SVM’ler temelde oldukça basit 2 katmanlı bir sinir ağıdır, ilk katman “şablonları” tanımlarken ikinci katman bir doğrusal sınıflayıcıdır. 2 katman yanılgısındaki sorun ise ortanca katmanın büyüklüğü ve karmaşıklığının $N$ ile üstel bir şekilde orantılı olmasıdır (zor bir görevde iyi sonuç elde etmek için, ÇOK FAZLA şablona ihtiyaç duyulur). Ama katman sayısı $\log(N)$’e orantılı olacak şekilde genişletildiğinde, katmanların karmaşıklığı $N$ ile orantılı hale gelir. Zaman ve katmanların sayısı arasında bir ödünleşim mevcuttur.
Az önce anlatılanlara benzeşim olarak iki katmandan daha fazla mantık geçidi (logic gate) içermeyen ve mantıksal bir fonksiyonu hesaplayan bir devre örnek gösterilebilir. Bu şekilde herhangi bir mantıksal fonksiyon hesaplanabilir. Fakat, ilk katmanın karmaşıklığı ve kullanılacak kaynaklar (geçit sayısı) kompleks bir fonksiyon için kolay bir şekilde mümkün olmayan hale gelebilir.
“Derin” nedir?
- SVM sadece iki katmandan oluştuğu için derin değildir.
- Sınıflandırma ağacı (Classification tree) her katmanı aynı (ham) özellikleri analiz ettiği için derin değildir.
- Derin ağ birçok katmandan oluşur ve bu katmanları bir artan karmaşıklıkla özellik hiyeraşisi oluşturmak için kullanır.
Modeller gösterimleri (iyi özellikler) nasıl öğrenir?
Manifold hipotezi: Doğal veriler düşük boyutlu bir manifoldda yer alır. Olabilecek her görselin sayısı sonsuz bir küme oluştursa da, “doğal” görsellerin kümesi bu sonsuz kümenin küçük bir alt kümesidir. Örneğin: bir insanın görselini ele alırsak, olası görseller kümesinin büyüklüğü hareket edebilen yüz kasları büyüklüğüne göre belirlenir (serbestlik derecesi (degrees of freedom)) ~ 50. İdeal (ve gerçekçi olmayan) bir özellik çıkarıcı değişebilecek tüm faktörleri temsil eder (hareket edebilen herhangi bir kas, ışıklar, vb.).
Dersin sonundan soru-cevap:
- Yüz örneğini ele alırsak, başka bir boyut azaltma tekniği (PCA gibi) bu özellikleri çıkarabilir miydi?
- Cevap: Sadece manifold yüzeyi bir üst düzlem (hyperplane) olsaydı işe yarardı, fakat değil.
📝 Marina Zavalina, Peeyush Jain, Adrian Pearl, Davida Kollmar
tugbatumer
27 Jan 2020