:::: MENU ::::
İncelemeler

2-OPT ALGORİTMASI VE BAŞLANGIÇ ÇÖZÜMÜNÜN ALGORİTMA SONUÇLARI ÜZERİNDEKİ ETKİSİ

“2-OPT ALGORİTMASI VE BAŞLANGIÇ ÇÖZÜMÜNÜN ALGORİTMA SONUÇLARI ÜZERİNDEKİ ETKİSİ” başlıklı çalışma Timur KESKİNTÜRK, Barış KİREMİTCİ ve Serap KİREMİTCİ tarafından yapılmış ve Journal of Industrial Engineering (Turkish Chamber of Mechanical Engineers) 27.3 (2016)’de yayınlanmıştır.

İndirmek için tıklayınız.


GENETİK ALGORİTMALARIN FARKLI ÇAPRAZLAMA TEKNİKLERİYLE İKİ BOYUTLU KESME PROBLEMLERİNE UYGULANIŞI

Alev SÖKE ve Zafer Bingül tarafından hazırlanmış olan “GENETİK ALGORİTMALARIN FARKLI ÇAPRAZLAMA TEKNİKLERİYLE İKİ BOYUTLU KESME PROBLEMLERİNE UYGULANIŞI” başlıklı çalışma Politeknik Dergisi 7.1 (2004)’te yayınlanmıştır.

İndirmek için:
http://politeknik.gazi.edu.tr/index.php/PLT/article/viewFile/424/419


Deep learning

“Deep learning” çalışması Yann LeCun, Yoshua Bengio ve Geoffrey Hinton tarafından yapılmış olup Nature 521.7553 (2015): 436-444.sayfaları arasında basılmıştır.

Derin öğrenmenin esprisi görüntü içerisinden çıkarılan özelliklerin insanlar tarafından değil, çeşitli işlemlerle otomatik olarak yapılmasıdır. Hesaplama kabiliyeti ve verinin gitgide büyümesiyle derin öğrenme farklı zor problemlere çözüm olmaya devam edecektir.

Eğitim aşamasında amaç hatayı veya uzaklığı minimize etmektir. Bir Derin Öğrenen Ağ milyonlarca veriyle öğrenirken, yüz milyonlarca ağırlık adı verilen parametreye sahiptir. Bu ağırlıkların ayarlanması ile öğrenme gerçekleşmiş olur.

Bir gradyan vektörü ile hata azaltılmaya çalışılır. En dik iniş yöntemiyle çözüm aranır. Genelde stochastic
gradient descent (SGD) ismi verilen yöntem kullanılır.

Giriş katmanındaki bilgiler transfer fonksiyonları yardımıyla farklı formlara dönüştürülmektedir:

Noktaların birbirine göre türevleri ve aralarındaki ilişkiler:

İleri Besleme ve Geri Yayılma işlemleri:

convolutional katmanlarda ortak özelliklere sahip alanlar belirlenmeye çalışır. pooling katmanında ise birbirine benzeyen kısımlar birleştirilmeye çalışılır.

Bir görüntüde motifler parçaları, parçaları objeleri oluşturur.
Ses ve metinde ise fonem -> hece -> kelime -> cümle şeklinde bir yapı vardır.

Pooling işlemi yukarıdaki geçişi sağlamaya çalışmaktadır.

ConvNet 1990’lı yıllarda da kulanılsada 2000’li yıllarda kısmen terk edilmişti, 2012 yılındaki ImageNet veri kümesi üzerinde elde edilen başarının ardından yeniden parladı. Bu başarının arkasında ConvNet+ReLU+Dropout vardır.

Bu başarının ardından dev firmalar bu konuyla ilgilenmeye başlamış, hatta NVIDIA, Mobileye, Intel, Qualcomm ve
Samsung firmaları ConvNet’i hızlı işleyebilen donanımlara yoğunlaşmışlardır.

Resimden metne dönüşüm ile ilgili bazı örnekler:

Cümlelerle eğitilen ağlar ile hangi kelimeden sonra hangi kelime gelir şeklinde yapılan bir çalışmada birbirine benzer kelimelerin ve kelime gruplarının benzer oranlarda, birbirlerine yakın oldukları görülmüştür:

recurrent neural network:

RNN’lerin gelişmişi : long short-term memory (LSTM) network

Gelecekte özellikle eğiticisiz öğrenmenin daha popüler olacağı öngörülmüştür.

İndirmek için:
deep-learning-nature2015


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


Sayfalar:1234567...17