:::: MENU ::::
Makale İncelemeleri

ImageNet Classification with Deep Convolutional Neural Networks

“ImageNet Classification with Deep Convolutional Neural Networks” çalışması Alex Krizhevsky, Ilya Sutskever ve Geoffrey E. Hinton tarafından yapılmış olup Advances in neural information processing systems dergisinde 2012 yılında basılmıştır.

Deep Learning furyasının başlangıç makalesidir.

ImageNet LSVRC-2010 veri kümesinde 1,2 milyon yüksek çözünürlüklü resim bulunmakta ve bu resimler 1000 kategoride sınıflanmaktadır. top-1 ve top-5 hata oranı olarak 37.5% ve 17.0% bulunarak o güne kadarki çalışmalardan daha başarılı olduklarını belirtmişlerdir.

Çalışmada 60,000,000 parametreli, 650,000 nöronlu, bazılarını max-pooling katmanının takip ettiği 5 evrişimsel(convolutional) katmanlı, 3 fully-connected katmana sahip sonunda da 1000 yollu softmax olan bir yapay sinir ağı kullanılmıştır.

Overfitting’den kaçmak için dropout algoritması kullanılmıştır. Evrişimsel(convolutional) katman hesapları GPU üzerinde yapılarak hızlanma sağlanmıştır.

Ayrıca ILSVRC-2012 yarışmasında da bu yapı top-5 test hatası %15.3 ile birinci olurken ikinci olan %26.2 hata ile olmuştur.

Giriş

Onbinlerce resmin olduğu veri kümeleri ile yapılan çalışmalardan iyi sonuçlar elde edilmişti. Örneğin MNIST veri kümesi üzerinde hata %0,3’ten daha aşağıya çekilerek insan ile hemen hemen aynı seviyeye getirilmiştir. Fakat obje tanıma işleminde böyle bir başarı henüz ortada yoktur. Bunun için çok büyük veri setleri gereklidir. Bu veri setleri segmente edilmiş ve sınıflandırılmış olmalıdır.

LabelMe : Yüzbinlerce tamamen segmente edilmiş resim içermektedir.
[B.C. Russell, A. Torralba, K.P. Murphy, and W.T. Freeman. Labelme: a database and web-based tool for image annotation. International journal of computer vision, 77(1):157–173, 2008.]

ImageNet: 22000 kategoride 15 milyondan fazla resim içermektedir.
[J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09, 2009.]

Milyonlarca resmin içindeki binlerce objeyi tespit etme işlemi oldukça büyük işlem gücü gerektiren bir süreçtir. Convolutional neural networks (CNNs) bir model oluşturarak derinlik(depth ve genişliğe (breadth) bağlı çıkarımlarla daha efektif bir eğitim gerçekleştirmektedir.

CNN çok avantajlı olmasına rağmen yine de büyük ölçekli yüksek çözünürlüklü resimlere bunu uygulamak hesaplama açısından çok maliyetlidir. Günümüz GPU teknolojisi bu işi yapmak için elverişlidir ve elimizde eğitim yapacak kadar da resim bulunmaktadır.

Bu çalışmada ;
Şimdiye kadar kurulmuş en büyük CNN yapısı kullanılmıştır.
CUDA üzerinde 2D convolution için optimize edilmiş bir yapı hazırlanmıştır. CUDA CONVNET olarak paylaşılmaktadır.
Eğitim süresini kısaltan yeni ve alışılmadık öznitelikler çıkarılmış ve bunlar izah edilmiştir.
1,200,000 etiketlenmiş resim ile çalışıldığından overfittiğing olmaktadır, bundan nasıl kaçınıldığı izah edilmiştir.
5 convolutional ve 3 fully-connected katman bulunmaktadır. Bunları azaltmak başarıyı düşürmektedir.
2 adet GTX 580 3GB GPU ile eğitim 5-6 gün sürmektedir.

Veri Kümesi

ImageNet içerisinde 15,000,000’dan fazla resim olan 22,000 kategoriye ayrılmış bir veri kümesidir. Resimler insanlar tarafından Amazon’s Mechanical Turk crowd-sourcing tool ile etiketlenmiştir. Bu çalışmada ise ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) veri kümesi kullanılmıştır. 1,200,000 eğitim resmi, 50,000 doğrulama resmi, 150,000 test resmi bulunmaktadır.
Test işlemi top-1 ve top-5 hata ölçütleriyle kıyaslanmaktadır.
Sistem tek bir çıktı vermekte ve gerçek çıktı ile kıyaslanmaktadır. Bu şekilde top-1 hatası bulunur.
Sistem 5 adet çıktı vermekte ve gerçek çıktı bunlardan biri değilse hatalı sayılmaktadır. Bu şekilde top-5 hatası bulunur.
Girdi resimleri 256*256 olacak şekilde ölçeklenmiştir. Dikdörtgen olan resimler ise kısa kenarı 256 olacak şekilde ölçeklenmiş, daha sonra 256*256 olacak şekilde merkezden kırpılmıştır. Başka bir işlem yapılmamış, ham RGB verisi ile sistem eğitilmiştir.

Mimari

ReLU Nonlinearity

Nöronların çıkışında klasik olarak tanh ve (1 + e^-x)^-1 gibi fonksiyonlar kullanılmaktadır. Bu fonksiyonlarda negatif değerlerde olduğundan eğitim sürecini uzattığı tespit edilmiştir. Bu yüzden negatif değerlerde 0, pozitif değerlerde kendi değerini veren Rectified Linear Unit (ReLU) aktivasyon fonksiyonu kullanılmıştır.

CIFAR-10 veri kümesi üzerinde tanh ve RELU testi yapılmış ve 6 kat hızlı eğitim yapıldığı görülmüştür.

ReLU ilk defa 2010 yılında önerilmiş olsada [V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010.], 2009 yılında da tanh fonksiyonu mutlak değer içerisine alınarak negatifliğin etkisinden kurtulma çalışması [K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.] yapılmıştır.

Çoklu GPU ile Eğitim

GTX 580 GPU’nun 3 GB belleği olduğundan eğitim için yetersizdir. O yüzden iki adet GPU kullanılmıştır. GPU’lar birbirlerinin belleklerine direk olarak yazma ve okuma işlemi yapma yeteneğine sahiptir. Ağ ortadan ikiye bölünmüştür. Belirli noktalarda iletişime izin verilmiştir. Bu yapı sütunlu (columnar) CNN yapısına [D.C. Cire¸san, U. Meier, J. Masci, L.M. Gambardella, and J. Schmidhuber. High-performance neural networks for visual object classification. Arxiv preprint arXiv:1102.0183, 2011.] benzemektedir fakat bu çalışmada sütunlar bağımsız değildir.

ReLU her ne kadar normalizasyon yapılması ihtiyacını kısmen ortadan kaldırsada “Local Response Normalization” ismi verilen bir yaklaşımla normalizasyon yapılmaktadır. Bu normalizasyon işlemiyle test hatası biraz daha düşürülmüştür. Ayrıca CIFAR-10 veri kümesinde ise test hatası %13’ten %11’e düşürülmüştür.

Pooling işlemi öznitelikleri anlamlı bir şekilde azaltmak için kullanılmaktadır:

Çalışmada Overlapping Pooling yaklaşımının Local Pooling yaklaşımından biraz daha iyi olduğu söylenmiştir.

Local Pooling: Patch Size ve Stride sayısının eşit olduğu işlemdir. 3×3’lük bir pool matrisi, 3’er adım atlayarak işlem yapması anlamına gelir.

Overlapping Pooling: Patch Size sayısının Stride sayısından büyük olduğu işlemdir. 3×3’lük bir pool matrisinin, 2 veya 1’er adım atlayarak işlem yapması anlamına gelir.

Ayrıca Average Pooling ve Max Pooling işlemleri yapılabilir. Max Pooling’in daha iyi olduğu söylenmektedir.

Bu bilgilerden sonra ağı komple izaha geçebiliriz:

8 katman ve ağırlıkları vardır.
5 katman convolutional
3 katman fullyconnected
fullyconnected’dan sonraki çıkış katmanında 1000-way softmax ile 1000 kategorik veriye ait olasılıkları içeren bir çıktı vektörü bulunmaktadır.
Eğitim sürecinde sınıflandırma başarısını maksimize etmeye çalışır.
2,4 ve 5.katmanlarda sadece aynı GPU içerisindeki veriler işlenmektedir.
2.katmandaki tüm kerneller, 3.katmanda birleşmektedir.
fullyconnected katmanlardaki tüm nöronlar bir önceki katmana tamamen bağlıdır.
Local Response Normalization 1. ve 2. katmanlarda yapılmıştır.
Max Pooling 1,2 ve 5.katmanlarda yapılmıştır.

İşlem adımları:
224x224x3’lük girdiyi 11x11x3’lük convolutional katman filtresi 4 piksel adımlarla uygulanarak 55×55 adet değer elde edilmektedir. 96 kernel 48-48 olacak şekilde 2 GPU’da tutulmaktadır.

Daha sonra her katmanda farklı convolutional katman filtreleri uygulanarak ağ aşağıdaki şekle getirilmektedir.

1000 kategorik veri olduğundan 10 bit ile çıktı temsil edilmektedir. 2^10=1024 olduğundan 1000 farklı nesne bu şekilde çıktı formatı olarak kullanılabilir. Bu şekilde ağın yaklaşık 60 milyon parametresi bulunmaktadır.

Overfitting ile Mücadele

Aşırı uyum veya ezberleme olarak çevrilebilecek overfitting istenmeyen bir durumdur. En basit mücadele yöntemi eğitim setini genişletmektir.

Çalışmada mevcut resimlerde otomatik olarak CPU ile hafif değişiklikler yapılarak GPU’da eğitim devam ederken, diske kaydetmeden ve hesaplama maliyetini artırmadan yeni resimler üretilmiştir.

256×256’lık ham resimlerden 224×224’lük resimler ve yatay yansımaları elde edilmiştir. Örnek bir yatay yansımayı aşağıda görebilirsiniz:

Bu işlem eğitim verisini 2048 kat artırmıştır.

Daha sonra RGB değerlerine PCA işlemi uygulanmıştır. Ortalaması 0, standart sapması 0.1 olan Gauss/Normal dağılımla üretilmiş rastgele sayıları içeren bir özdeğer vektörü ile bu işlem yapılmıştır. Bu işlem ile hata oranı %1 daha azalmıştır.

Dropout

Katmanların belirli oranda etkisizleştilmesi mantığına dayanmaktadır. Böylece hem eğitim süresi kısalmakta, hem de kimi veri kümeleri için ezberleme ortadan kalkmaktadır. Dropout ilk iki fully-connected katmana uygulanmıştır.

Daha fazla ayrıntı için:

Srivastava, Nitish, et al. “Dropout: a simple way to prevent neural networks from overfitting.” Journal of machine learning research 15.1 (2014): 1929-1958.
G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R.R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.

Nasıl Öğreniyor?

Stokastik düşüş inişi (stochastic gradient descent) ile 128 örneklik batch grupları ile, 0.9 momentum ve 0.0005 azaltım ile öğrenme sağlanmıştır.

Her katmanda ağırlıklar 0 ortalama, 0.01 standart sapma ile normal dağılıma uygun olarak rastgele atanmıştır.

Nöronlara 2,4 ve 5. convolutional katmanlarda bias eklenmiştir. Ayrıca fully-connected gizli katmanlarda bu değer 1 alınmıştır. Bu aşama ilk adımlarda öğrenmeyi hızlandırıp, pozitif etkisiyle ReLU’nun etkisini artırmıştır. Diğer katmanlarda bias değeri 0 verilmiştir.

Öğrenme katsayısı (learning rate) 0.01 olarak başlatılmış, bitime kadar 3 kere değiştirilmiştir. Doğrulama hatası (validation error) iyileşmediği zaman değer 10’a bölünerek daha da küçültülmüştür.

Ağ 90 çevrim eğitilmiştir.

Sonuçlar

top-1 37.5% ve top-5 17.0% hata ile sınıflandırma yapılmıştır.

8 test resmi ve sonuçları aşağıda görülmektedir:

Verilen 5 test resmine en yakın eğitim verisinden getirdiği örnek resimler:

Ara katmanları azaltmak başarıyı düşürmektedir.

İndirmek için:

imagenet-classification-with-deep-convolutional-neural-networks


Makale içindeki kaynakların referanslar listesinde verilmediği bir çalışma

Makale içindeki kaynakların referanslar listesinde verilmediği bir çalışma:

Not: Bilimsel Etik dersimizde vurgulanan bir durum olduğundan, araştırmacıların bu duruma karşı dikkatli olmaları gerektiği söylenirken örnek olarak gösterilebilecek bir vaka olması açısından kayıtlara geçelim dedim. Amacım bu insanları rencide etmek değildir. Amaç daha dikkatli ve titiz çalışmaların yapılmasına vesile olmaktır.

“A Real Coded Genetic Algorithm with an Explorer and an Exploiter Populations” başlıklı çalışma Shigeyoshi Tsutsui, Ashish Ghosh, David Corne ve Yoshiji Fujimoto tarafından yapılmış olup Proceedings of the 7th International Conference on Genetic Algorithms (ICGA-97), pp. 238-245.sayfaları arasında basılmıştır.

Metin içindeki geçen bu kaynaklar (Tanese 1989; Whitley et al. 1990; Gorges-Schleuter, 1991) referans listesinde yoktur.

metin-ici

Referanslar:

referanslar

Aynı çalışmada (Eshelman and Schaffer, 1993) şeklinde verilen çalışma aslında 1992 yılında yapılmıştır.

İlgili çalışma:

A_real_coded_genetic_algorithm_with_an_explorer_and_an_exploiter_populations


A self-adaptive binary differential evolution algorithm for large scale binary optimization problems

“A self-adaptive binary differential evolution algorithm for large scale binary optimization problems” başlıklı çalışma Akbar Banitalebi, Mohd Ismail Abd Aziz, Zainal Abdul Aziz tarafından yapılmış olup Information Sciences dergisinin 367.sayısının (2016): 487-511.sayfaları arasında basılmıştır.

Bir çok önemli optimizasyon problemi ikili (binary) optimizasyon problemi olarak gösterilebilir ve çözülebilir.

Stokastik optimizasyon metodlarından sürekli uzayda çalışanlar aşağıdaki yöntemlerle ikili uzaya taşınabilir.

-Transfer fonksiyonu: Sigmoid fonksiyonuyla sürekli değerler ikili değerlere dönüştürülebilir. Başka transfer fonksiyonları da önerilmiştir.
Örnek çalışmalar:
(Memetic binary particle swarm optimization for discrete optimization problems)
(Binary particle swarm optimization: challenges and new solutions)

-Açı modülasyonu: Sinyal işleme alanından esinlenilmiş bir sinüs-cosinüs içeren fonksiyonlarla ikili diziler üretme esasına dayanır.
Örnek çalışma:
(Binary differential evolution)

-Kuantumdan ilham alan bitler:
Örnek çalışma:
(A quantum-inspired gravitational search algorithm for binary encoded optimization problems)

-Genetik operatörler: Binary crossover ve swap operatörleri kullanılmaktadır.
Örnek çalışma:
(A novel binary artificial bee colony algorithm based on genetic operators)

-Logic kapılar: xor,or, not, and kapıları ile yeni bireyler oluşturmak.
Örnek çalışma:
(Xor-based artificial bee colony algorithm for binary optimization)
(Novel binary encoding differential evolution algorithm)

Benzerlik ölçüsü: İkili dizilerin benzerlik ölçümlerinden yola çıkan yöntemdir.
Örnek çalışma:
(Disabc: a new artificial bee colony algorithm for binary optimization)

-Diğer:
Örnek çalışma:
(A binary differential evolution algorithm learning from explored solutions)

İkili DE varyantları:
binDE: Rastgele bir sayı üretir, 0.5’ten büyükse 1 aksi halde 0 atar.
normDE: Sayıları 0-1 aralığına normalize eder, 0.5’ten büyükse 1 aksi halde 0 atar.
angle modulated DE (AMDE): Açı modülasyonu ile üretim yapılır.
quantum inspired DE (QDE):
discrete binary DE (DBDE):
improved binary DE:
binary learning differential evolution (BLDE):
Sigmoid fonksiyonuyla çevrim yapan DE:

İkili PSO varyantları:

binary PSO (BPSO): Sigmoid fonksiyonuyla gerçek değerler binary değere dönüştürülür. Yüksek boyutlularda başarısı düşüktür.
Local PSO (LPSO): BPSO’nun gelişmişidir. Local best komşuların bilgileriyle güncellenir.
binary hybrid topology particle swarm optimization (BHTPSO-QI): İlgili çalışma: (Memetic binary particle swarm optimization for discrete optimization problems)

İkili ABC varyantları:
DisABC: Jaccard’ın benzerlik ölçeğini kullanır.
bitABC: İkili operatörleri kullanır.
binABC: İkili operatörleri kullanır.
GB-ABC: Genetik operatörleri kullanarak yeni bireyler üretilir. Mevcut birey, Rastgele iki birey, En iyi birey ve sıfırlardan oluşmuş birey; iki noktalı çaprazlama ve değişim operatörleriyle 10 bireye çıkartılır ve bunların en iyisi yeni aday çözüm olarak yoluna devam eder.

İkili HS varyantları:

simplified binary HS (SBHS): Örnek çalışma: (A simplified binary harmony search algorithm for large scale 0 −1 knapsack problems)

İkili GSA:
binary GSA:
Binary Quantum-Inspired Gravitational Search Algorithm (BQIGSA):

Yorumum:

Çalışmada yeni bir ikili DE varyantı önerilmiş, 15 CEC2015 probleminde, düşük ve yüksek boyutlu knapsack (sırt çantası) problemlerinde testler yapılmıştır. Kıyas için kullanılan algoritmalar yeniden kodlanmış, ilgili çalışmalardaki sonuçlar ile kendi buldukları sonuçları Appendix bölümünde vermişlerdir. SabDE geride kalmayan kısmen önde olan hızlı bir algoritma olarak karşımıza çıkmaktadır.

İndirmek için:
A-self-adaptive-binary-differential-evolution-algorithm-for-large scale-binary-optimization-problems


Veri Madenciliğinde Kümeleme Teknikleri Üzerine Bir Çalışma: K-Means ve K-Medoids Kümeleme Algoritmalarının Karşılaştırılması

“Veri Madenciliğinde Kümeleme Teknikleri Üzerine Bir Çalışma: K-Means ve K-Medoids Kümeleme Algoritmalarının Karşılaştırılması” başlıklı çalışma Güncel Sariman tarafından yapılmış ve Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü Dergisi 15.3 (2011)’nde yayınlanmıştır.

İndirmek için:
kmeans-kmedoids

Notlar:

Veri madenciliği:
1-Tahmin edici (Predictive):
sınıflandırma, eğri uydurma, zaman serileri
2-Tanımlayıcı (Descriptive):
kümeleme, özetleme, birliktelik kuralları, sıralı diziler

Kümeleme analizinin kullanılmasında benzer uzaklıklar dikkate alınarak yararlanılabilecek alternatif ölçü ve yöntemler bulunmaktadır. Birimler arası uzaklıklar için Euclidyen, Standardize Euclidyen, Manhattan, Mahalanobis, Kareli Euclidyen, Minkowski veya Canberra ölçüleri kullanılabilmektedir.

Kümeleme Yöntemleri:

kumeleme-yontemleri


Sayfalar:1234567...15