Derin Evrişimli Sinir Ağları ile ImageNet Sınıflandırma

Cahit Barkin Ozer
16 min readJun 8, 2024

--

2012'de yayımlanmış “ImageNet Classification with Deep Convolutional Neural Networks” makalesinin Türkçe çevirisidir.

Basit Açıklama

Sinir ağlarını ve bilgisayarların nasıl öğrenebileceğini önceki makaleden hatırlıyoruz. İşte bu makale, bilgisayarların resimleri nasıl tanıyabileceği anlatılıyor. Bilgisayarların resimlerdeki nesneleri doğru bir şekilde tanıyabilmesi için çok büyük ve karmaşık sinir ağları kullanılıyor. Bu sinir ağlarına “Derin Evrişimli Sinir Ağları” (Deep Convolutional Neural Networks) veya kısaca CNN’ler denir.

CNN’ler, resimlerdeki desenleri ve özellikleri tanımak için özel olarak tasarlanmış bir tür sinir ağıdır. Bu ağlar, bir resmi alır ve onu birçok katman boyunca işler. Her katman, resmin farklı özelliklerini öğrenir, örneğin kenarlar, renkler veya dokular gibi. En sonunda, ağ, resmin ne olduğunu söyleyebilir, örneğin “Bu bir köpektir” ya da “Bu bir arabadır” gibi.

2012 yılında, Alex Krizhevsky, Ilya Sutskever ve Geoffrey Hinton adında üç bilim insanı, bu tür bir sinir ağı kullanarak çok büyük bir resim veri kümesi olan ImageNet üzerinde çalıştı. ImageNet, içinde milyonlarca resim ve binlerce farklı kategori bulunan bir veri kümesidir. Bu bilim insanları, AlexNet adını verdikleri çok derin bir CNN modeli tasarladılar ve bunu ImageNet üzerinde eğittiler.

Sonuçta, AlexNet, o zamana kadar görülmemiş bir doğrulukla resimleri sınıflandırdı ve bir yarışmada birinci oldu. Bu başarı, derin öğrenme ve CNN’lerin resim tanıma görevlerinde ne kadar güçlü olduğunu gösterdi. İşte bu makale, bilgisayarların resimlerdeki nesneleri tanımasında devrim yaratan bu önemli gelişmeyi anlatıyor.

Öz

2012 yılında Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton ve diğerleri ImageNet LSVRC-2010 yarışmasındaki 1,2 milyon yüksek çözünürlüklü görüntüyü 1000 farklı sınıfa sınıflandırmak için geniş, derin evrişimli bir sinir ağını eğitti. Test verilerinde %37,5 ve %17,0'lık ilk 1 ve ilk 5 hata oranlarına ulaştılar; bu, önceki en iyi teknolojiden çok daha iyidir. 60 milyon parametreye ve 650.000 nörona sahip olan sinir ağı, bazıları maksimum havuzlama (max pooling) katmanları tarafından takip edilen beş evrişimli (convolutional) katmandan ve son 1000 yönlü softmax’a sahip üç tamamen bağlı (fully connected) katmandan oluşur. Eğitimi daha hızlı hale getirmek için doymamış nöronlar ve evrişim işleminin çok verimli bir GPU uygulaması kullanıldı. Tamamen bağlı katmanlardaki aşırı uyumu azaltmak için, son zamanlarda geliştirilen ve çok etkili olduğu kanıtlanan “sönümleme” (dropout) adı verilen bir düzenleme yöntemini kullanıldı. Ayrıca makalenin yazarları ILSVRC-2012 yarışmasına da bu modelin bir çeşidiyle katıldı ve ikinci en iyi katılımcının elde ettiği %26,2'ye kıyasla %15,3'lük ilk 5 test hata oranını elde ettiler.

1. Giriş

Nesne tanımaya yönelik mevcut yaklaşımlar, makine öğrenimi yöntemlerini temel almaktadır. Performanslarını artırmak için daha büyük veri kümeleri toplayabilir, daha güçlü modeller öğrenebilir ve aşırı uyumu önlemek için daha iyi teknikler kullanabiliriz. Yakın zamana kadar, etiketlenmiş görüntülerin veri kümeleri onbinlerce görüntüye nazaran nispeten küçüktü (örneğin, NORB [16], Caltech-101/256 [8, 9] ve CIFAR-10/100 [12]). Basit tanıma görevleri, bu boyuttaki veri kümeleriyle, özellikle de etiket koruyucu dönüşümlerle zenginleştirilirlerse oldukça iyi bir şekilde gerçekleştirilebilir. Örneğin, MNIST rakam tanıma görevindeki mevcut en iyi hata oranı (<%0,3) insan performansına yaklaşmaktadır [4]. Ancak gerçekçi ortamlardaki nesneler önemli ölçüde değişkenlik gösterir, dolayısıyla onları tanımayı öğrenmek için çok daha büyük eğitim setlerinin kullanılması gerekir. Aslında, küçük görüntü veri kümelerinin eksiklikleri geniş çapta kabul edilmiştir (örneğin, Pinto ve diğerleri [21]), ancak milyonlarca görüntü içeren etiketli veri kümelerini toplamak ancak yakın zamanda mümkün hale gelmiştir. Yeni daha büyük veri kümeleri arasında yüzbinlerce tam bölümlenmiş görüntüden oluşan LabelMe [23] ve 22.000'den fazla kategoride 15 milyondan fazla etiketli yüksek çözünürlüklü görüntüden oluşan ImageNet [6] bulunmaktadır.

Milyonlarca görüntüden binlerce nesne hakkında bilgi edinmek için geniş öğrenme kapasitesine sahip bir modele ihtiyacımız bulunmaktadır. Bununla birlikte, nesne tanıma görevinin muazzam karmaşıklığı, bu sorunun ImageNet kadar büyük bir veri kümesi tarafından bile belirlenemeyeceği anlamına gelir; bu nedenle modelimiz, sahip olmadığımız tüm verileri telafi edecek çok sayıda ön bilgiye de sahip olmalıdır. Evrişimli sinir ağları (CNN’ler) böyle bir model sınıfını oluştururlar [16, 11, 13, 18, 15, 22, 26]. Kapasiteleri, derinlik ve genişlikleri değiştirilerek kontrol edilebilir ve ayrıca görüntülerin doğası (yani istatistiklerin durağanlığı ve piksel bağımlılıklarının yerelliği) hakkında güçlü ve çoğunlukla doğru varsayımlarda bulunurlar. Bu nedenle, benzer boyutlu katmanlara sahip standart ileri beslemeli sinir ağlarıyla karşılaştırıldığında, CNN’ler çok daha az bağlantıya ve parametreye sahiptir ve bu nedenle eğitilmeleri daha kolaydır, ancak teorik olarak en iyi performansları muhtemelen biraz daha kötü olacaktır.

CNN’lerin çekici niteliklerine ve yerel mimarilerinin göreceli verimliliğine rağmen, bunların büyük ölçekte yüksek çözünürlüklü görüntülere uygulanması hala aşırı derecede pahalıdır. Neyse ki, son derece optimize edilmiş bir 2D evrişim uygulamasıyla eşleştirilen mevcut GPU’lar, ilginç derecede büyük CNN’lerin eğitimini kolaylaştıracak kadar güçlüdür ve ImageNet gibi yeni veri kümeleri, bu tür modelleri ciddi aşırı uyum (overfit) olmadan eğitmek için yeterli sayıda etiketli örnek içerir.

Bu makalenin spesifik katkıları şu şekildedir: ILSVRC-2010 ve ILSVRC-2012 yarışmalarında [2] kullanılan ImageNet alt kümeleri üzerinde bugüne kadarki en büyük evrişimli sinir ağlarından birini eğittik ve bu veri kümeleri ile şu ana kadar rapor edilen en iyi sonuçları elde ettik. 2D evrişimin yüksek düzeyde optimize edilmiş bir GPU uygulamasını ve evrişimli sinir ağlarının eğitiminin doğasında olan tüm diğer işlemleri yazdık ve bunları kamuya açık hale getirdik. Ağımız, Bölüm 3'te ayrıntılı olarak açıklanan, performansını artıran ve eğitim süresini kısaltan bir dizi yeni ve olağandışı özellik içermektedir. Ağımızın boyutu, 1,2 milyon etiketli eğitim örneğine rağmen aşırı uyumu önemli bir sorun haline getirmiştir, bu nedenle Bölüm 4'te açıklanan aşırı uyumu önlemek için birkaç tane etkili teknik kullandık. Son ağımız beş evrişimli ve üç tam bağlantılı katman içeriyor ve bu derinlik önemli görünüyor: Herhangi bir evrişimli katmanın (her biri 1'den fazla içermeyen) kaldırılması gerektiğini bulduk.

Sonuçta ağın boyutu, esas olarak mevcut GPU’larda bulunan bellek miktarı ve tahammül etmeye hazır olduğumuz eğitim süresi miktarıyla sınırlıdır. Ağımızın iki GTX 580 3 GB GPU üzerinde eğitilmesi beş ila altı gün sürüyor. Tüm deneylerimiz, daha hızlı GPU’ların ve daha büyük veri kümelerinin kullanıma sunulmasını bekleyerek sonuçlarımızın iyileştirilebileceğini gösteriyor.

2. Veri Kümesi

ImageNet, yaklaşık 22.000 kategoriye ait 15 milyondan fazla etiketli yüksek çözünürlüklü görselden oluşan bir veri kümesidir. Görüntüler internetten toplanmıştır ve insan etiketleyiciler tarafından Amazon’un Mechanical Turk kitle kaynak aracı kullanılarak etiketlenmiştir. 2010 yılından itibaren Pascal Görsel Nesne Yarışması’nın bir parçası olarak, ImageNet Büyük Ölçekli Görsel Tanıma Yarışması (ILSVRC) adı verilen yıllık bir yarışma düzenlenmektedir. ILSVRC, ImageNet’in 1000 kategorinin her birinde yaklaşık 1000 görsel içeren bir alt kümesini kullanır. Toplamda yaklaşık 1,2 milyon eğitim görüntüsü, 50.000 doğrulama görüntüsü ve 150.000 test görüntüsü bulunmaktadır.

LSVRC-2010, test seti etiketlerinin mevcut olduğu tek ILSVRC sürümüdür, dolayısıyla deneylerimizin çoğunu üzerinde gerçekleştirdiğimiz sürüm budur. Modelimizi ILSVRC-2012 yarışmasına da girdiğimizden dolayı Bölüm 6'da test seti etiketlerinin mevcut olmadığı veri setinin bu versiyonuna ilişkin sonuçlarımızı da rapor ediyoruz. ImageNet’te ilk 1 ve ilk 5 hata oranı geleneksel olarak raporlanır. Burada ilk 5 hata oranı, doğru etiketin model tarafından en olası olarak kabul edilen beş etiket arasında olmadığı test görüntülerinin oranıdır.

ImageNet değişken çözünürlüklü görüntülerden oluşurken sistemimiz sabit bir girdi boyutu gerektirir. Bu nedenle, görüntüleri 256 × 256 sabit çözünürlüğe kadar alt örnekledik (down-sampled). Dikdörtgen bir görüntü verildiğinde, önce görüntüyü kısa kenarı 256 uzunlukta olacak şekilde yeniden ölçeklendirdik ve ardından ortaya çıkan sonuçtan merkezi 256 × 256 yamayı kırptık. Her pikselden eğitim seti üzerinden ortalama aktiviteyi çıkarmak dışında görüntüleri başka bir şekilde ön işleme tabi tutmadık. Böylece ağımızı piksellerin (merkezlenmiş) ham RGB değerlerine göre eğittik.

3. Mimari

Ağımızın mimarisi Şekil 2'de özetlenmiştir. Sekiz adet öğrenilmiş katman içerir; beşi evrişimli ve üçü tam bağlantılıdır. Aşağıda ağımızın mimarisinin bazı yeni veya olağandışı özelliklerini açıklıyoruz. Bölüm 3.1–3.4, önemlerine ilişkin tahminlerimize göre, en önemlileri ilk sırada olacak şekilde sıralanmıştır.

3.1 ReLU Lineersizliği (ReLU Nonlinearity)

Bir nöronun f çıktısını , x girdisinin bir fonksiyonu olarak modellemenin standart yolu, f(x) = tanh(x) veya f(x) = (1 + e^-x )^-1'dir. Gradyan inişli eğitim süresi açısından, bu doyurucu doğrusal olmayan durumlar, doygun olmayan doğrusal olmayan f(x) = max(0, x)’den çok daha yavaştır. Nair ve Hinton’u [20] takip ederek, bu doğrusal olmayan özelliğe sahip nöronları Düzeltilmiş Doğrusal Birimler (ReLU’lar) olarak adlandırıyoruz. ReLU’lere sahip derin evrişimli sinir ağları, tanh birimlerine sahip eşdeğerlerinden birkaç kat daha hızlı eğitilir. Bu, belirli bir dört katmanlı evrişimli ağ için CIFAR-10 veri kümesinde %25'lik bir eğitim hatasına ulaşmak için gereken yineleme sayısını gösteren Şekil 1'de gösterilmektedir. Bu çizim, eğer geleneksel doygun nöron modellerini kullanmış olsaydık, bu çalışma için bu kadar büyük sinir ağlarıyla deney yapamayacağımızı gösteriyor.

CNN’lerde geleneksel nöron modellerinin alternatifleri düşünen ilk kişi biz değiliz. Örneğin Jarrett ve ark. [11] doğrusal olmama durumunun f(x) = |tanh(x)| Caltech-101 veri kümesinde yerel ortalama havuzlamanın (local average pooling’in) takip ettiği kontrast normalleştirme türüyle özellikle iyi çalışır. Bununla birlikte, bu veri kümesinde asıl endişe aşırı uyumun önlenmesidir, dolayısıyla gözlemledikleri etki, ReLU’ları kullanırken raporladığımız eğitim setine uyum sağlamanın hızlandırılmış yeteneğinden farklıdır. Daha hızlı öğrenmenin, büyük veri kümeleri üzerinde eğitilen büyük modellerin performansı üzerinde büyük etkisi vardır.

Şekil 1: ReLU’lara (düz çizgi) sahip dört katmanlı bir evrişimli sinir ağı, tanh nöronlara (kesikli çizgi) sahip eşdeğer bir ağdan altı kat daha hızlı CIFAR-10'da %25'lik bir eğitim hatası oranına ulaşır. Her ağın öğrenme oranları, eğitimi olabildiğince hızlı hale getirmek için bağımsız olarak seçildi. Burada herhangi bir düzenleme yapılmamıştır. Gösterilen etkinin büyüklüğü ağ mimarisine göre değişir, ancak ReLU’lara sahip ağlar, sürekli olarak doymuş nöronlara sahip eşdeğerlere göre birkaç kat daha hızlı öğrenir.

3.2 Birden Fazla GPU Üzerinde Eğitim Yapmak

Tek bir GTX 580 GPU’nun yalnızca 3 GB belleği vardır ve bu, üzerinde eğitilebilecek ağların maksimum boyutunu sınırlar. Tek bir GPU’ya sığmayacak kadar büyük ağları eğitmek için 1,2 milyon eğitim örneğinin yeterli olduğu ortaya çıktı. Bu nedenle ağı iki GPU’ya yaydık. Mevcut GPU’lar, ana makine belleğinden geçmeden doğrudan birbirlerinin belleğinden okuyup yazabildikleri için, GPU’lar arası paralelleştirmeye özellikle uygundur. Kullandığımız paralelleştirme şeması esasen çekirdeklerin (veya nöronların) yarısını her bir GPU’ya yerleştiriyor ve GPU’lar yalnızca belirli katmanlarda iletişim kuruyor. Bu, örneğin 3. katmandaki çekirdeklerin 2. katmandaki tüm çekirdek haritalarından girdi aldığı anlamına gelir. Bununla birlikte, 4. katmandaki çekirdekler yalnızca aynı GPU’da bulunan 3. katmandaki çekirdek haritalarından girdi alır. Bağlantı modelini seçmek çapraz doğrulama için bir sorundur, ancak bu, hesaplama miktarının kabul edilebilir bir kısmı olana kadar iletişim miktarını hassas bir şekilde ayarlamamıza olanak tanır.

Ortaya çıkan mimari, Ciresan ve diğerleri tarafından kullanılan “sütunlu” CNN’nin mimarisine bir şekilde benzer [5], ancak sütunlarımız bağımsız değildir (bkz. Şekil 2). Bu şema, ilk 1 ve ilk 5 hata oranlarımızı, tek bir GPU üzerinde eğitilmiş her evrişimsel katmanda yarısı kadar kernel içeren ağ ile karşılaştırıldığında sırasıyla %1,7 ve %1,2 oranında azaltır. İki GPU ağının eğitimi, tek GPU ağından biraz daha az zaman alır.

3.3 Yerel Yanıt Normalleştirmesi (Local Response Normalization)

ReLU’ler, doymalarını önlemek için girdi normalizasyonu gerektirmemeleri gibi arzu edilen bir özelliğe sahiptir. En azından bazı eğitim örnekleri ReLU’ya olumlu bir girdi üretirse öğrenme o nöronda gerçekleşecektir. Ancak yine de aşağıdaki yerel normalleştirme şemasının genellemeye yardımcı olduğunu görüyoruz. (x, y) konumunda kernel i uygulanarak ve ardından ReLU lineersizliği uygulanarak hesaplanan bir nöronun aktivitesini a_x,y^i ile gösteren, yanıtla normalleştirilmiş b_x,y^i aktivitesi şu ifadeyle verilir:

Toplamın aynı uzamsal konumdaki n “bitişik” çekirdek haritası üzerinden geçen ve N’nin katmandaki toplam çekirdek sayısıdır. Kernel haritalarının sıralaması elbette isteğe bağlıdır ve eğitim başlamadan önce belirlenir. Bu tür yanıt normalleştirmesi, gerçek nöronlarda bulunan türden ilham alan bir tür yanal engelleme uygulayarak, farklı kerneller kullanılarak hesaplanan nöron çıktıları arasında büyük faaliyetler için rekabet yaratır. k, n, α ve β sabitleri, değerleri bir doğrulama seti kullanılarak belirlenen hiperparametrelerdir; k = 2, n = 5, α = 10−4 ve β = 0,75'i değerlerini kullandık. ReLU doğrusal olmayanlığını belirli katmanlara uyguladıktan sonra bu normalleştirmeyi uyguladık.

Bu şema Jarrett ve arkadaşlarının yerel kontrast normalizasyon şemasına bazı benzerlikler taşımaktadır[11]. Ancak ortalama aktiviteyi çıkarmadığımız için bizimki daha doğru bir şekilde “parlaklık normalizasyonu” (brightness normalization) olarak adlandırılacaktır. Yanıt normalleştirme, ilk 1 ve ilk 5 hata oranlarımızı sırasıyla %1,4 ve %1,2 oranında azaltır. Bu şemanın etkinliğini CIFAR-10 veri seti üzerinde de doğruladık: dört katmanlı bir CNN, normalleştirme olmadan %13 ve normalleştirme ile %11 test hata oranı elde eder.

3.4 Çakışan Havuzlama (Overlapping Pooling)

CNN’lerdeki havuzlama katmanları, aynı çekirdek haritasındaki komşu nöron gruplarının çıktılarını özetler. Geleneksel olarak, bitişik havuzlama birimleri tarafından özetlenen komşuluklar (neighbourhood) örtüşmez (örneğin, [17, 11, 4]). Daha kesin olmak gerekirse, bir havuzlama katmanının, her biri havuzlama ünitesinin konumunda ortalanmış z × z boyutunda bir komşuluğu özetleyen, birbirinden s piksel aralıklı havuzlama birimlerinden oluşan bir ızgaradan oluştuğu düşünülebilir. Eğer s = z değerini ayarlarsak, CNN’lerde yaygın olarak kullanılan geleneksel yerel havuzlamayı elde ederiz. Eğer s<z’yi ayarlarsak örtüşen havuzlamayı elde ederiz. Ağımız genelinde s = 2 ve z = 3 ile kullandığımız şey budur. Bu şema, üst üste binmeyen şema s = 2 ile karşılaştırıldığında ilk 1 ve ilk 5 hata oranlarını sırasıyla %0,4 ve %0,3 oranında azaltır. z = 2 eşdeğer boyutlarda çıktı üretir. Eğitim sırasında genellikle örtüşen havuzlamalı modellerin fazla uyum sağlamanın biraz daha zor olduğunu gözlemliyoruz.

3.5 Genel Mimari

Şekil 2: CNN’imizin mimarisinin, iki GPU arasındaki sorumlulukların tanımını açıkça gösteren bir örnek. GPU’lardan biri şeklin üst kısmındaki katman parçalarını çalıştırırken diğeri alttaki katman parçalarını çalıştırır. GPU’lar yalnızca belirli katmanlarda iletişim kurar. Ağın girdisi 150.528 boyutlu olup, ağın geri kalan katmanlarındaki nöron sayısı 253.440–186.624–64.896–64.896–43.264– 4096–4096–1000 olarak verilmektedir.

Artık CNN’imizin genel mimarisini anlatmaya hazırız. Şekil 2'de gösterildiği gibi ağ, ağırlıklarla birlikte sekiz katman içerir; ilk beşi evrişimlidir ve geri kalan üçü tam bağlantılıdır. Tam bağlı son katmanın çıktısı, 1000 sınıf etiketi üzerinde bir dağıtım üreten 1000 yollu softmax’a beslenir. Ağımız, tahmin dağılımı altında doğru etiketin log olasılığının eğitim durumları arasındaki ortalamayı maksimuma çıkarmaya eşdeğer olan çok terimli lojistik regresyon hedefini maksimuma çıkarır. İkinci, dördüncü ve beşinci evrişimli katmanların çekirdekleri yalnızca önceki katmandaki aynı GPU’da bulunan çekirdek haritalarına bağlanır (bkz. Şekil 2). Üçüncü evrişimsel katmanın çekirdekleri, ikinci katmandaki tüm çekirdek haritalarına bağlanır. Tam bağlantılı katmanlardaki nöronlar, bir önceki katmandaki tüm nöronlara bağlıdır. Yanıt normalleştirme katmanları, birinci ve ikinci evrişim katmanlarını takip eder. Bölüm 3.4'te açıklanan türden maksimum havuzlama katmanları, hem yanıt normalleştirme katmanlarını hem de beşinci evrişim katmanını takip eder.

ReLU’nun doğrusal olmama özelliği, her evrişimli ve tam bağlantılı katmanın çıktısına uygulanır. İlk evrişimsel katman, 224×224×3 girdi görüntüsünü 11×11×3 boyutunda 96 çekirdekle 4 piksellik bir adımla filtreler (bu, bir çekirdek haritasındaki komşu nöronların alıcı alan merkezleri arasındaki mesafedir). İkinci evrişimli katman, birinci evrişimli katmanın (yanıt normalleştirilmiş ve havuzlanmış) çıktısını girdi olarak alır ve onu 5 × 5 × 48 boyutunda 256 çekirdekle filtreler. Üçüncü, dördüncü ve beşinci evrişim katmanları, araya giren herhangi bir havuzlama veya normalleştirme katmanı olmadan birbirine bağlanır. Üçüncü evrişim katmanı, ikinci evrişim katmanının (normalleştirilmiş, havuzlanmış) çıktılarına bağlı 3 × 3 × 256 boyutunda 384 çekirdeğe sahiptir. Dördüncü evrişimsel katmanda 3 × 3 × 192 boyutunda 384 çekirdek bulunur ve beşinci evrişimsel katmanda 3 × 3 × 192 boyutunda 256 çekirdek bulunur. Tam bağlı katmanların her birinde 4096 nöron bulunur.

4. Fazla Uyumun Azaltılması (Reducing Overfitting)

Sinir ağı mimarimizde 60 milyon parametre var. Her ne kadar ILSVRC’nin 1000 sınıfı, her eğitim örneğinin görüntüden etikete eşlemede 10 bitlik kısıtlama getirmesini sağlasa da, bunun, aşırı uyum olmadan bu kadar çok parametreyi öğrenmek için yetersiz olduğu ortaya çıkıyor. Aşağıda, aşırı uyumla mücadele etmenin iki temel yolunu açıklıyoruz.

4.1 Veri Arttırımı (Data Augmentation)

Görüntü verilerine fazla sığdırmayı azaltmanın en kolay ve en yaygın yöntemi, etiketi koruyan dönüşümler kullanarak veri kümesini yapay olarak büyütmektir (örn., [25, 4, 5]). Her ikisi de dönüştürülmüş görüntülerin çok az hesaplamayla orijinal görüntülerden üretilmesine olanak tanıyan iki farklı veri büyütme biçimi kullanıyoruz, böylece dönüştürülmüş görüntülerin diskte saklanmasına gerek kalmıyor. Bizim uygulamamızda, GPU önceki görüntü grubu üzerinde eğitim alırken, dönüştürülen görüntüler CPU üzerinde Python kodunda oluşturulur. Dolayısıyla bu veri artırma planları aslında hesaplama açısından ücretsizdir.

Veri artırmanın ilk biçimi, görüntü çevirileri ve yatay yansımalar oluşturmaktan oluşur. Bunu, 256×256 görüntülerden rastgele 224 × 224 parçayı (ve bunların yatay yansımalarını) çıkararak ve ağımızı bu çıkarılan parçalar üzerinde eğiterek yapıyoruz. Bu, eğitim setimizin boyutunu 2048 kat artırır, ancak sonuçta ortaya çıkan eğitim örnekleri elbette oldukça birbirine bağımlıdır. Bu plan olmasaydı, ağımız aşırı uyum sorunuyla karşı karşıya kalacaktı ve bu da bizi çok daha küçük ağlar kullanmaya zorlayacaktı. Test zamanında, ağ, beş “224 × 224” yama (dört köşe yamaları ve orta yamayı) ve bunların yatay yansımalarını (dolayısıyla toplamda on yama) çıkararak bir tahmin yapar ve ağın softmax katmanının on yama üzerinde yaptığı tahminleri ortalama alarak bir tahminde bulunur.

Veri artırmanın ikinci biçimi, eğitim görüntülerindeki RGB kanallarının yoğunluklarının değiştirilmesinden oluşur. Spesifik olarak, ImageNet eğitim seti boyunca RGB piksel değer setleri üzerinde PCA gerçekleştiriyoruz. Her bir eğitim görüntüsüne, bulunan temel bileşenlerin katlarını ekliyoruz; büyüklükler karşılık gelen özdeğerlerle orantılı olarak ortalama sıfır ve standart sapması 0,1 olan bir Gaussian’dan alınan rastgele bir değişkenle çarpılıyor. Bu nedenle her RGB görüntü pikseline Ixy = [I R xy, IG xy, IB xy] T, aşağıdaki miktarı ekliyoruz:

Burada pi ve λi, sırasıyla RGB piksel değerlerinin 3 × 3 kovaryans matrisinin i’inci özvektörü ve özdeğeridir ve αi, yukarıda belirtilen rastgele değişkendir. Her bir αi, belirli bir eğitim görüntüsündeki tüm pikseller için yalnızca bir kez çekilir ve o görüntü tekrar eğitim için kullanılana kadar yeniden çekilmez. Bu şema, doğal görüntülerin önemli bir özelliğini yaklaşık olarak yakalar; yani, nesne kimliği, aydınlatmanın yoğunluğu ve rengindeki değişikliklere karşı değişmezdir. Bu şema, top-1 hata oranını %1'den fazla azaltır.

4.2 Sönümleme (Dropout)

Birçok farklı modelin tahminlerini birleştirmek, test hatalarını azaltmanın çok başarılı bir yoludur [1, 3], ancak eğitimi zaten birkaç gün süren büyük sinir ağları için çok pahalı bir yöntemdir. Bununla birlikte, model kombinasyonunun, eğitim sırasında yalnızca iki kat maliyeti olan çok verimli bir versiyonu da vardır. Son zamanlarda tanıtılan “sönümleme” [10] adı verilen teknik, her bir gizli nöronun çıktısını 0,5 olasılıkla sıfıra ayarlamaktan oluşur. Bu şekilde “dışlanan” nöronlar ileri geçişe katkıda bulunmaz ve geri yayılmaya katılmazlar. Yani her girdi sunulduğunda sinir ağı farklı bir mimariyi örnekler, ancak tüm bu mimariler ağırlıkları paylaşır. Bu teknik, bir nöron belirli diğer nöronların varlığına güvenemeyeceğinden, nöronların karmaşık ortak adaptasyonlarını azaltır. Bu nedenle, diğer nöronların birçok farklı rastgele alt kümesiyle birlikte yararlı olan daha sağlam özellikleri öğrenmek zorunda kalır. Test zamanında, tüm nöronları kullanırız ancak çıktılarını 0,5 ile çarparız; bu, üstel olarak çok sayıda sönümleme ağı tarafından üretilen tahmine dayalı dağılımların geometrik ortalamasını almak için makul bir yaklaşımdır. Şekil 2'nin tamamen bağlı ilk iki katmanında sönümlemeyi kullanıyoruz. Sönümleme olmadığında ağımız önemli ölçüde aşırı uyum (overfit) sergiliyor. Sönümleme, yakınsama için gereken yineleme sayısını kabaca iki katına çıkarır.

5. Öğrenmenin ayrıntıları

Şekil 3: 224×224×3 girdi görüntüleri üzerindeki ilk evrişim katmanı tarafından öğrenilen 11×11×3 boyutunda 96 evrişimli çekirdek. En iyi 48 çekirdek GPU 1'de öğrenilirken en alttaki 48 çekirdek GPU 2'de öğrenildi. Ayrıntılar için Bölüm 6.1'e bakın.

Modellerimizi, 128 örneklik parti büyüklüğü, 0,9 momentum ve 0,0005 ağırlık azalması ile stokastik gradyan inişini (stochastic gradient descend) kullanarak eğittik. Bu küçük miktardaki ağırlık azalmasının modelin öğrenmesi açısından önemli olduğunu bulduk. Başka bir deyişle, buradaki ağırlık azalması yalnızca bir düzenleyici değildir, modelin eğitim hatasını da azaltır. Ağırlık w için güncelleme kuralı şudur:

Burada i yineleme indeksidir, v momentum değişkenidir, ε öğrenme hızıdır ve ⟨ ∂L/∂w | wi⟩Di, wi’de değerlendirilen w’ye göre hedefin türevinin i’inci Di grubu üzerinden ortalamasıdır.

Her katmandaki ağırlıkları, 0,01 standart sapması olan sıfır ortalamalı Gauss dağılımından başlattık. İkinci, dördüncü ve beşinci evrişimli katmanların yanı sıra tamamen bağlı gizli katmanlardaki nöron önyargılarını sabit 1 ile başlattık. Bu başlatma, ReLU’lere pozitif girdiler sağlayarak öğrenmenin ilk aşamalarını hızlandırır. Kalan katmanlardaki nöron önyargılarını sabit 0 ile başlattık. Tüm katmanlar için eğitim boyunca manuel olarak ayarladığımız eşit bir öğrenme oranı kullandık. İzlediğimiz sezgisel yöntem, doğrulama hata oranının mevcut öğrenme oranıyla birlikte iyileşmesi durduğunda öğrenme oranını 10'a bölmekti. Öğrenme oranı 0,01'de başlatıldı ve sonlandırılmadan önce üç kez azaltıldı. Ağı, iki NVIDIA GTX 580 3 GB GPU’da beş ila altı gün süren 1,2 milyon görüntüden oluşan eğitim seti aracılığıyla yaklaşık 90 döngü boyunca eğittik.

6. Sonuçlar

ILSVRC-2010'a ilişkin sonuçlarımız Tablo 1'de özetlenmiştir. Ağımız %37,5 ve %17,05 ile ilk 1 ve ilk 5 test seti hata oranlarına ulaşmaktadır. ILSVRC2010 yarışması sırasında elde edilen en iyi performans, farklı özellikler üzerine eğitilmiş altı seyrek kodlama modelinden üretilen tahminlerin ortalamasını alan bir yaklaşımla %47,1 ve %28,2 olmuştur [2] ve o zamandan bu yana yayınlanan en iyi sonuçlar, iki tür yoğun örneklenmiş özellikten hesaplanan Fisher Vektörleri (FV’ler) üzerinde eğitilmiş iki sınıflandırıcının tahminlerinin ortalamasını alan bir yaklaşımla %45,7 ve %25,7'dir. [24]

Tablo 1: ILSVRC2010 test setindeki sonuçların karşılaştırılması. İtalik harflerle başkaları tarafından elde edilen en iyi sonuçlar gösterilir.

Modelimizi ILSVRC-2012 yarışmasına da kattık ve sonuçlarımızı Tablo 2'de raporladık. ILSVRC-2012 test seti etiketleri kamuya açık olmadığından denediğimiz tüm modeller için test hata oranlarını rapor edemiyoruz. Bu paragrafın geri kalanında, doğrulama ve test hatası oranlarını birbirinin yerine kullanıyoruz çünkü deneyimlerimize göre aralarında %0,1'den fazla fark yoktur (bkz. Tablo 2). Bu yazıda açıklanan CNN, %18,2'lik ilk 5 hata oranına ulaşmaktadır. Beş benzer CNN’in tahminlerinin ortalaması %16,4'lük bir hata oranı verir. ImageNet Sonbahar 2011 sürümünün tamamını (15 milyon görüntü, 22 bin kategori) sınıflandırmak için son havuzlama katmanı üzerinde ekstra bir altıncı evrişim katmanıyla bir CNN eğitmek ve ardından ILSVRC-2012'de “ince ayar” (finetune) yapmak %16,6 hata oranı verir. Yukarıda belirtilen beş CNN ile 2011 Sonbahar sürümünün tamamında önceden eğitilmiş iki CNN’nin tahminlerinin ortalaması %15,3'lük bir hata oranı verir. İkinci en iyi yarışma girişi, farklı türde yoğun örneklenmiş özelliklerden hesaplanan FV’ler üzerinde eğitilmiş çeşitli sınıflandırıcıların tahminlerinin ortalamasını alan bir yaklaşımla %26,2'lik bir hata oranına ulaştı [7].

Tablo 2: ILSVRC-2012 doğrulama ve test setlerindeki hata oranlarının karşılaştırılması. Başkaları tarafından elde edilen en iyi sonuçlar italik harflerle yazılmıştır. Yıldız işaretli* modeller, ImageNet 2011 Sonbahar sürümünün tamamını sınıflandırmak için “önceden eğitilmiştir”. Ayrıntılar için Bölüm 6'ya bakın.

Son olarak ImageNet’in 10.184 kategori ve 8,9 milyon görselden oluşan Sonbahar 2009 versiyonundaki hata oranlarımızı da raporluyoruz. Bu veri setinde, literatürdeki görüntülerin yarısını eğitim, yarısını da test için kullanma geleneğini takip ediyoruz. Yerleşik bir test seti olmadığından, bizim bölünmemiz önceki yazarlar tarafından kullanılan bölünmelerden zorunlu olarak farklıdır, ancak bu, sonuçları kayda değer ölçüde etkilemez. Bu veri kümesindeki ilk 1 ve ilk 5 hata oranlarımız %67,4 ve %40,9 olup, yukarıda açıklanan net tarafından elde edilmiştir, ancak son havuzlama katmanının üzerinde ek bir altıncı evrişim katmanı bulunmaktadır. Bu veri setinde yayınlanan en iyi sonuçlar %78,1 ve %60,9'dur [19].

6.1 Niteliksel Değerlendirmeler (Qualitative Evaluations)

Şekil 3, ağın veriye bağlı iki katmanı tarafından öğrenilen evrişimli çekirdekleri göstermektedir. Ağ, çeşitli frekans ve yön seçici çekirdeklerin yanı sıra çeşitli renkli damlaları da öğrenmiştir. Bölüm 3.5'te açıklanan kısıtlı bağlantının bir sonucu olarak iki GPU’nun sergilediği uzmanlığa dikkat edin. GPU 1'deki çekirdekler büyük ölçüde renkten bağımsızdır, GPU 2'deki çekirdekler ise büyük ölçüde renge özgüdür. Bu tür bir uzmanlaşma her çalıştırma sırasında meydana gelir ve herhangi bir rastgele ağırlık başlatma işleminden bağımsızdır (GPU’ların modülo yeniden numaralandırılması).

Şekil 4: (Sol) Sekiz ILSVRC-2010 test görüntüsü ve modelimiz tarafından en olası olduğu düşünülen beş etiket. Her görüntünün altına doğru etiket yazılır ve doğru etikete atanan olasılık da kırmızı bir çubukla gösterilir (eğer ilk 5'te yer alıyorsa). (Sağda) İlk sütunda beş ILSVRC-2010 test görüntüsü var. Geri kalan sütunlar, test görüntüsü için özellik vektöründen en küçük Öklid mesafesine sahip son gizli katmanda özellik vektörleri üreten altı eğitim görüntüsünü gösterir.

Şekil 4'ün sol panelinde, sekiz test görüntüsü üzerinde ilk 5 tahmini hesaplayarak ağın öğrendiklerini niteliksel olarak değerlendiriyoruz. Sol üst köşedeki akar (mite) örneğinde olduğu gibi merkezin dışındaki nesnelerin bile ağ tarafından tanınabileceğine dikkat edin. İlk 5 etiketin çoğu makul görünüyor. Örneğin, yalnızca diğer kedi türleri leopar için makul etiketler olarak kabul edilir. Bazı durumlarda (ızgara ve kiraz örneğinde olduğu gibi) fotoğrafın amaçlanan odağı konusunda gerçek bir belirsizlik vardır. Ağın görsel bilgisini incelemenin bir başka yolu, son 4096 boyutlu gizli katmandaki bir görüntünün neden olduğu özellik aktivasyonlarını dikkate almaktır. Eğer iki görüntü küçük bir Öklid ayrımına sahip özellik aktivasyon vektörleri üretiyorsa, sinir ağının daha yüksek seviyelerinin bunları benzer olarak değerlendirdiğini söyleyebiliriz. Şekil 4, bu ölçüme göre her birine en çok benzeyen test setinden beş görüntüyü ve eğitim setinden altı görüntüyü göstermektedir. Piksel düzeyinde, alınan eğitim görüntülerinin genellikle L2'de ilk sütundaki sorgu görüntülerine yakın olmadığına dikkat edin. Örneğin, ele geçirilen köpekler ve filler çeşitli pozlarda görünüyor. Ek materyalde daha birçok test görüntüsünün sonuçlarını sunuyoruz. İki 4096 boyutlu, gerçek değerli vektör arasındaki Öklid mesafesini kullanarak benzerliğin hesaplanması verimsizdir, ancak bu vektörleri kısa ikili kodlara sıkıştırmak için bir otomatik kodlayıcıyı eğiterek verimli hale getirilebilir. Bu, görüntü etiketlerini kullanmayan ve dolayısıyla semantik olarak benzer olsun veya olmasın benzer kenar desenlerine sahip görüntüleri alma eğiliminde olan ham piksellere [14] otomatik kodlayıcılar uygulamaktan çok daha iyi bir görüntü alma yöntemi üretmelidir.

7. Tartışma

Sonuçlarımız, büyük, derin evrişimli bir sinir ağının, tamamen denetimli öğrenmeyi kullanarak son derece zorlu bir veri kümesinde rekor kıran sonuçlara ulaşma kapasitesine sahip olduğunu gösteriyor. Tek bir evrişimsel katmanın kaldırılması durumunda ağımızın performansının düşmesi dikkat çekicidir. Örneğin, orta katmanlardan herhangi birinin kaldırılması, ağın ilk 1 performansında yaklaşık %2'lik bir kayıpla sonuçlanır. Sonuçlarımıza ulaşmak için derinlik gerçekten önemlidir. Deneylerimizi basitleştirmek için, özellikle etiketli veri miktarında karşılık gelen bir artış elde etmeden ağın boyutunu önemli ölçüde artırmak için yeterli hesaplama gücü elde edersek, yardımcı olacağını beklememize rağmen herhangi bir denetimsiz ön eğitim kullanmadık. Şu ana kadar, ağımızı genişlettiğimiz ve daha uzun süre eğittiğimiz için sonuçlarımız iyileşti ancak insan görsel sisteminin alt-zamansal yolunu eşleştirmek için hala kat etmemiz gereken birçok büyüklük sırası var. Sonuçta, zamansal yapının statik görüntülerde eksik olan veya çok daha az belirgin olan çok yararlı bilgiler sağladığı video dizilerinde çok geniş ve derin evrişimli ağlar kullanmak istiyoruz.

Kaynak

Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, (2012), ImageNet Classification with Deep Convolutional Neural Networks:

[https://papers.nips.cc/paper_files/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html]

--

--

Cahit Barkin Ozer
Cahit Barkin Ozer

Written by Cahit Barkin Ozer

Üretken YZ başta olmak üzere teknoloji alanındaki yenilikleri öğrenip sizlerle paylaşıyorum. Youtube Kanalım: https://www.youtube.com/@cbarkinozer

No responses yet