Professional Documents
Culture Documents
CNN Makale
CNN Makale
CNN Makale
1
Bilgisayar Bilimleri Bölümü, Aberystwyth Üniversitesi, Ceredigion, SY23 3DB
keo7@aber.ac.uk
2
Bilgisayar ve İletişim Okulu, Lancaster Üniversitesi, Lancashire, LA1
4YW
nashrd@live.lancs.ac.uk
Soyut. Makine öğrenimi alanı, Yapay Sinir Ağı'nın (YSA) yükselişiyle son zamanlarda
çarpıcı bir dönüş yaptı. Biyolojik olarak ilham alan bu hesaplama modelleri, yaygın
makine öğrenimi görevlerinde önceki yapay zeka biçimlerinin performansını çok
aşabilir. YSA mimarisinin en etkileyici biçimlerinden biri, Evrişimli Sinir Ağı'dır (CNN).
CNN'ler öncelikle zor görüntü güdümlü örüntü tanıma görevlerini çözmek için
kullanılır ve kesin ancak basit mimarileriyle YSA'lara başlamak için basitleştirilmiş
bir yöntem sunar.
Bu belge, CNN'lere kısa bir giriş sağlar, son zamanlarda yayınlanan makaleleri ve bu
parlak, fantastik görüntü tanıma modellerini geliştirmede yeni oluşturulmuş
teknikleri tartışır. Bu giriş, ANN'lerin ve makine öğreniminin temellerine aşina
olduğunuzu varsayar.
Anahtar Kelimeler: Örüntü tanıma, yapay sinir ağları, makine öğrenmesi, görüntü analizi
1. Giriş
Yapay Sinir Ağları (YSA), biyolojik sinir sistemlerinden (insan beyni gibi) büyük
ölçüde ilham alan hesaplamalı işleme sistemleridir. YSA'lar esas olarak, nihai
çıktısını optimize etmek için girdiden toplu olarak öğrenmek için dağıtılmış
bir şekilde birbirine dolanan çok sayıda birbirine bağlı hesaplama düğümünden
(nöronlar olarak adlandırılır) oluşur.
Bir YSA'nın temel yapısı Şekil 1'de gösterildiği gibi modellenebilir. Girdiyi,
genellikle çok boyutlu bir vektör biçiminde, girdi katmanına yüklerdik ve
bunu gizli katmanlara dağıtırdık. Gizli katmanlar daha sonra önceki katmandan
kararlar alacak ve kendi içindeki stokastik bir değişimin nihai çıktıya nasıl
zarar verdiğini veya iyileştirdiğini tartacak ve bu öğrenme süreci olarak
anılacaktır. Birbiri üzerine yığılmış birden çok gizli katmana sahip olmak
genellikle derin öğrenme olarak adlandırılır.
Machine Translated by Google
Giriş 1
Giriş 2
Çıktı
Giriş 3
Giriş 4
Şekil 1: Bir girdi katmanı, bir gizli katman ve bir çıktı katmanından oluşan basit bir üç
katmanlı ileri beslemeli sinir ağı (FNN). Bu yapı, İleri Beslemeli Sinir Ağları (FNN), Kısıtlı
Boltzmann Makineleri (RBM'ler) ve Tekrarlayan Sinir Ağları (RNN'ler) dahil ancak bunlarla
sınırlı olmayan bir dizi yaygın ANN mimarisinin temelidir.
Denetimsiz öğrenme , eğitim setinin herhangi bir etiket içermemesi bakımından farklılık
gösterir. Başarı, genellikle ağın ilişkili bir maliyet fonksiyonunu azaltıp azaltamayacağına
veya artırılıp artırılamayacağına göre belirlenir. Bununla birlikte, çoğu görüntü odaklı örüntü
tanıma görevinin genellikle denetimli öğrenme kullanılarak yapılan sınıflandırmaya bağlı
olduğuna dikkat etmek önemlidir.
Konvolüsyonel Sinir Ağları (CNN'ler), öğrenme yoluyla kendi kendini optimize eden
nöronlardan oluşmaları bakımından geleneksel YSA'lara benzer. Her nöron yine de bir girdi
alacak ve sayısız YSA'nın temeli olan bir işlem (skaler bir ürün ve ardından doğrusal olmayan
bir işlev gibi) gerçekleştirecektir. Girilen ham görüntü vektörlerinden sınıf puanının son
çıktısına kadar, ağın tamamı tek bir algısal puan işlevini (ağırlık) ifade etmeye devam
edecektir.
Son katman, sınıflarla ilişkili kayıp fonksiyonlarını içerecektir ve geleneksel YSA'lar için
geliştirilmiş tüm düzenli ipuçları ve püf noktaları hala geçerlidir.
CNN'ler ve geleneksel YSA'lar arasındaki tek dikkate değer fark, CNN'lerin öncelikle görüntüler
içinde örüntü tanıma alanında kullanılmasıdır. Bu, görüntüye özgü özellikleri mimariye
kodlamamıza izin vererek, ağ
Machine Translated by Google
görüntü odaklı görevler için daha uygundur - modeli kurmak için gereken parametreleri
daha da azaltırken.
64 × 64'lük daha önemli bir renkli görüntü girişi düşünürseniz, ilk katmanın yalnızca
tek bir nöronundaki ağırlıkların sayısı önemli ölçüde 12, 288'e yükselir. Ayrıca, bu girdi
ölçeğiyle başa çıkmak için ağın ayrıca renk normalleştirilmiş MNIST basamaklarını
sınıflandırmak için kullanılandan çok daha büyük olması gerekir, o zaman bu tür
modelleri kullanmanın sakıncalarını anlayacaksınız.
Ama neden önemli? Elbette ağımızdaki gizli katmanların sayısını ve belki de içlerindeki
nöronların sayısını artırabilir miyiz?
Bu sorunun basit cevabı hayır. Bu, iki nedene bağlıdır; birincisi, bu devasa YSA'ları
eğitmek için sınırsız hesaplama gücüne ve zamana sahip olmama sorunudur.
İkinci neden, aşırı takmanın etkilerini durdurmak veya azaltmaktır. Aşırı uyum , temel
olarak bir ağın çeşitli nedenlerden dolayı etkili bir şekilde öğrenememesidir. Tüm
makine öğrenmesi algoritmaları olmasa da çoğu için önemli bir kavramdır ve etkilerini
azaltmak için her türlü önlemin alınması önemlidir.
Modellerimiz aşırı uyum belirtileri gösterecek olsaydı, yalnızca eğitim veri kümemiz için
değil, aynı zamanda test ve tahmin kümelerimiz için de genelleştirilmiş özellikleri
saptama yeteneğinin azaldığını görebiliriz.
2 CNN mimarisi
Daha önce belirtildiği gibi, CNN'ler öncelikle girdinin görüntülerden oluşacağı temeline
odaklanır. Bu, belirli veri türüyle ilgilenme ihtiyacına en uygun şekilde kurulacak
mimariye odaklanır.
Machine Translated by Google
ReLu havuzu
ile evrişim tamamen bağlı
...
9
giriş
çıktı
ReLu ile tam
bağlantılı
1. Diğer YSA formlarında olduğu gibi, giriş katmanı piksel değerlerini tutacaktır.
resmin.
2. Evrişim katmanı , ağırlıkları ile giriş hacmine bağlı bölge arasındaki skaler
çarpımı hesaplayarak, girişin yerel bölgelerine bağlı nöronların çıkışını
belirleyecektir. Doğrultulmuş doğrusal birim (genellikle ReLu olarak kısaltılır)
uygulamayı amaçlar
Machine Translated by Google
3. Havuzlama katmanı daha sonra verilen girdinin uzamsal boyutu boyunca basit bir
şekilde altörnekleme gerçekleştirecek ve bu aktivasyon içindeki parametre sayısını
daha da azaltacaktır.
4. Tam olarak bağlı katmanlar , daha sonra, içinde bulunan aynı görevleri yerine getirecektir.
standart YSA'lar ve aktivasyonlardan sınıf puanları üretme girişimi,
sınıflandırmak için kullanılacaktır. Ayrıca ReLu'nun kullanılabileceği de önerilmektedir.
performansı artırmak için bu katmanlar arasında.
Ancak, bir CNN mimarisinin genel mimarisini basitçe anlamanın yeterli olmayacağını
belirtmek önemlidir. Oluşturma ve optimizasyon
Bu modellerden bazıları oldukça zaman alabilir ve oldukça kafa karıştırıcı olabilir. Yapacağız
şimdi ayrı ayrı katmanları ayrıntılı olarak keşfedin, hiperparametrelerini detaylandırın
ve bağlantılar.
Adından da anlaşılacağı gibi, evrişim katmanı, CNN'lerin nasıl olduğu konusunda hayati bir rol oynar.
işletmek. Katman parametreleri, öğrenilebilir çekirdeklerin kullanımına odaklanır .
Machine Translated by Google
Bu çekirdekler genellikle uzamsal boyutluluk açısından küçüktür, ancak yüzey boyunca yayılır.
girdi derinliğinin tamamı. Veri bir evrişim katmanına çarptığında,
katman, her filtreyi girdinin uzamsal boyutluluğu boyunca sarar.
2D aktivasyon haritası oluşturun. Bu aktivasyon haritaları görüldüğü gibi görselleştirilebilir.
Şekil 3'te.
Girişte süzülürken, skaler çarpım, içindeki her bir değer için hesaplanır.
o çekirdek. (Şekil 4) Bundan ağ, ne zaman 'ateşleyen' çekirdekleri öğrenecektir.
girdinin belirli bir uzaysal konumunda belirli bir özelliği görürler. Bunlar
genellikle aktivasyonlar olarak bilinir.
Giriş Vektörü
00 0 00 0 Çekirdek
havuzlanmış vektör Hedef Piksel
01 2 1 1 2
00 0 40 0
01 1 1 1 1
01 2 00 0 -8
1 0 0 00 0
01 1 00 -4
00 1 1 1 0
01 1 1 1 1
Her çekirdeğin karşılık gelen bir etkinleştirme haritası olacaktır ve bu haritadan istiflenecektir.
konvolüsyonel katmandan tam çıktı hacmini oluşturmak için derinlik boyutu boyunca.
Daha önce de değindiğimiz gibi, YSA'ları görüntü gibi girdiler üzerinde eğitmek,
modelleri etkili bir şekilde eğitmek için çok büyük. Bu, standart YSA nöronlarının
tamamen bağlantılı tarzına iner, dolayısıyla buna karşı hafifletmek için her
Evrişimsel katmandaki nöron sadece girişin küçük bölgesine bağlanır.
Ses. Bu bölgenin boyutuna genel olarak nöronun alıcı alan boyutu denir. aracılığıyla
bağlantının büyüklüğü
derinlik neredeyse her zaman girişin derinliğine eşittir.
Örneğin, ağa giriş 64 × 64 × 3 boyutunda bir görüntü (64 × 64 boyutlu RGB renkli bir
görüntü) ise ve alıcı alanı ayarlarsak
6 × 6 boyutunda olsaydık, her nöronda toplam 108 ağırlığa sahip olurduk.
evrişim katmanı. (6 × 6 × 3 burada 3, bağlantının büyüklüğüdür.
hacmin derinliği) Bunu perspektife sokmak için, standart bir nöron görülen
diğer YSA formlarında her biri 12,288 ağırlık içerecektir.
Ayrıca , alıcı alanı yerleştirmek için girdinin uzamsal boyutluluğu etrafındaki derinliği
ayarladığımız adımı da tanımlayabiliriz . Örneğin, 1 olarak bir adım atarsak, son derece
büyük aktivasyonlar üreten yoğun şekilde örtüşen bir alıcı alanımız olur. Alternatif
olarak, adımı daha büyük bir sayıya ayarlamak, örtüşme miktarını azaltacak ve daha
düşük uzamsal boyutlarda bir çıktı üretecektir.
Sıfır doldurma , girdinin sınırlarını doldurmanın basit bir işlemidir ve çıktı hacimlerinin
boyutsallığı konusunda daha fazla kontrol sağlamak için etkili bir yöntemdir.
(V - Sağ) + 2Z
S+1
Şimdiye kadarki en iyi çabalarımıza rağmen, herhangi bir gerçek boyutlu bir görüntü
girdisi kullanırsak, modellerimizin hala çok büyük olduğunu göreceğiz. Bununla
birlikte, evrişim katmanı içindeki toplam parametre sayısını büyük ölçüde azaltacak
yöntemler geliştirilmiştir.
Parametre paylaşımı , eğer bir bölge özelliğinin belirli bir uzamsal bölgede
hesaplanması faydalıysa, o zaman başka bir bölgede faydalı olacağı varsayımıyla çalışır.
Çıktı hacmi içindeki her bir bireysel aktivasyon haritasını aynı ağırlıklar ve sapma ile
kısıtlarsak, evrişim katmanı tarafından üretilen parametre sayısında büyük bir
azalma göreceğiz.
Bunun bir sonucu olarak, geri yayılım aşaması meydana geldiğinde, çıkıştaki her
bir nöron, toplam gradyanı derinlik boyunca toplanabilecek - böylece her birinin
aksine yalnızca tek bir ağırlık kümesini güncelleyecektir.
Machine Translated by Google
Havuzlama katmanının yıkıcı doğası nedeniyle, genel olarak gözlemlenen yalnızca iki
maksimum havuzlama yöntemi vardır. Genellikle, havuzlama katmanlarının adımları
ve filtreleri, katmanın girdinin uzamsal boyutluluğunun tamamı boyunca genişlemesine
izin verecek şekilde 2 × 2'ye ayarlanır. Ayrıca , adımın 2'ye ve çekirdek boyutu 3'e
ayarlandığında örtüşen havuzlama kullanılabilir. Havuzlamanın yıkıcı doğası nedeniyle,
çekirdek boyutunun 3'ün üzerinde olması genellikle modelin performansını büyük
ölçüde düşürür.
Tam bağlantılı katman, içlerindeki herhangi bir katmana bağlanmadan, iki bitişik
katmandaki nöronlara doğrudan bağlı nöronları içerir. Bu, nöronların geleneksel YSA
formlarında düzenlenme şekline benzer. (Şekil 1)
3 Tarif
Bir CNN oluşturmak için gereken nispeten az sayıda katmana rağmen, bir CNN
mimarisini formüle etmenin belirlenmiş bir yolu yoktur. Bununla birlikte, birkaç
katmanı bir araya getirmek ve çalışmasını beklemek aptalca olurdu. İlgili literatürün
okunması yoluyla, diğer YSA biçimleri gibi, CNN'lerin ortak bir mimariyi takip etme
eğiliminde olduğu açıktır. Bu ortak mimari, evrişimli katmanların istiflendiği, ardından
tamamen bağlı katmanlara ilerlemeden önce katmanların tekrar tekrar havuzlandığı
Şekil 2'de gösterilmektedir.
Machine Translated by Google
Diğer bir yaygın CNN mimarisi, Şekil 5'te gösterildiği gibi, her bir havuzlama
katmanından önce iki evrişimli katmanı istiflemektir.
ReLu havuzu ile evrişim ReLu havuzu ile evrişim havuzlama tamamen bağlı
...
çıktı
giriş
ReLu ile ReLu ile tam
evrişim bağlantılı
Şekil 5: Bir veya daha fazla tamamen bağlı ReLus arasında geçmeden önce, havuzlama
katmanından geçirilmeden önce evrişimli katmanların ReLus arasında sürekli olarak
istiflendiği CNN mimarisinin yaygın bir biçimi.
Ayrıca, büyük evrişimli katmanların çok sayıda daha küçük boyutlu evrişimli
katmanlara bölünmesi tavsiye edilir. Bu, belirli bir evrişim katmanı içindeki hesaplama
karmaşıklığının miktarını azaltmak içindir. Örneğin, 3 × 3 alıcı alanla üst üste üç
evrişim katmanı istiflerseniz. İlk evrişim katmanının her bir nöronu, giriş
vektörünün 3×3 görünümüne sahip olacaktır. İkinci evrişim katmanındaki bir nöron,
giriş vektörünün 5 × 5 görünümüne sahip olacaktır. Üçüncü evrişim katmanındaki
bir nöron daha sonra giriş vektörünün 7 × 7 görünümüne sahip olacaktır. Bu yığınlar
doğrusal olmayan özelliklere sahip olduğundan, girdinin daha güçlü özelliklerini daha
az parametre ile ifade etmemize olanak tanır. Bununla birlikte, bunun, özellikle geri
yayılım algoritmasını kullanırken, belirgin bir bellek ayırma sorunu ile geldiğini anlamak
önemlidir.
Giriş katmanı özyinelemeli olarak ikiye bölünebilir olmalıdır. Yaygın sayılar arasında
32 × 32, 64 × 64, 96 × 96, 128 × 128 ve 224 × 224 bulunur.
CNN'ler son derece güçlü makine öğrenme algoritmalarıdır, ancak korkunç derecede
kaynak ağırlıklı olabilirler. Bu sorunun bir örneği, büyük bir görüntüyü filtrelemek
olabilir (128 × 128'in üzerindeki herhangi bir şey büyük olarak kabul edilebilir), bu
nedenle girdi 227 × 227 ise (ImageNet'te görüldüğü gibi) ve her biri 64 çekirdekle
filtreliyorsak. sıfır doldurma, 227 × 227 × 64 boyutunda üç etkinleştirme vektörü
olacaktır - bu, yaklaşık 10 milyon etkinleştirme anlamına gelir - veya görüntü başına
muazzam bir 70 megabayt bellek. Bu durumda iki seçeneğiniz var. İlk olarak, girdi
görüntülerinin uzamsal boyutluluğunu şu şekilde azaltabilirsiniz:
Machine Translated by Google
ham görüntüleri biraz daha az ağır bir şeye yeniden boyutlandırmak. Alternatif olarak, bu
belgede daha önce belirttiğimiz her şeye karşı çıkabilir ve daha büyük adımlı daha büyük
filtre boyutlarını tercih edebilirsiniz (1 yerine 2 tane).
Yukarıda özetlenen birkaç temel kurala ek olarak, genelleştirilmiş YSA eğitim teknikleri
hakkında birkaç 'püf noktası' bilgisine sahip olmak da önemlidir. Yazarlar, Geoffrey
Hinton'ın mükemmel “Kısıtlı Boltzmann Makinelerinin Eğitimi için Pratik Kılavuz”un
okunmasını önermektedir.
4. Sonuç
Bu makale, bir katman oluşturmak için gereken katmanları açıklayarak ve çoğu görüntü
analizi görevinde ağın en iyi nasıl yapılandırılacağını detaylandırarak, Evrişimli Sinir Ağlarının
temel kavramlarını özetlemiştir.
Sinir ağlarını kullanarak görüntü analizi alanındaki araştırmalar son zamanlarda biraz
yavaşladı. Bu, kısmen, bu son derece güçlü makine öğrenimi algoritmalarını modellemeye
başlamak için gereken karmaşıklık ve bilgi düzeyini çevreleyen yanlış inançtan
kaynaklanmaktadır. Yazarlar, bu makalenin bir şekilde bu karışıklığı azalttığını ve alanı
yeni başlayanlar için daha erişilebilir hale getirdiğini umuyor.
Teşekkür
Yazarlar, faydalı tartışma ve öneriler için Dr. Chuan Lu ve Nicholas Dimonaco'ya teşekkür
eder.
Referanslar
1. Ciresan, D., Meier, U., Schmidhuber, J.: Görüntü sınıflandırması için çok sütunlu derin sinir
ağları. İçinde: Bilgisayarla Görme ve Örüntü Tanıma (CVPR), 2012 IEEE Konferansı on. s.
3642–3649. IEEE (2012)
2. Cires¸an, DC, Giusti, A., Gambardella, LM, Schmidhuber, J.: Derin sinir ağları ile meme kanseri
histoloji görüntülerinde mitoz tespiti. İçinde: Tıbbi Görüntü Hesaplama ve Bilgisayar
Destekli Müdahale–MICCAI 2013, s. 411–418. Bahar (2013)
3. Ciresan, DC, Meier, U., Masci, J., Maria Gambardella, L., Schmidhuber, J.: Görüntü
sınıflandırması için esnek, yüksek performanslı evrişimli sinir ağları. İçinde: IJCAI
Proceedings-Uluslararası Yapay Zeka Ortak Konferansı. cilt 22, s. 1237 (2011)
Machine Translated by Google
4. Cires¸an, DC, Meier, U., Gambardella, LM, Schmidhuber, J.: El yazısı karakter sınıflandırması için
evrişimli sinir ağı komiteleri. In: Document Analysis and Recognition (ICDAR), 2011 International
Conference on. s. 1135–1139. IEEE (2011)
5. Egmont-Petersen, M., de Ridder, D., Handels, H.: Sinir ağı ile görüntü işleme
çalışma incelemesi. Örüntü tanıma 35(10), 2279–2301 (2002)
6. Farabet, C., Martini, B., Akselrod, P., Talay, S., LeCun, Y., Culurciello, E.: Sentetik görüş sistemleri
için donanım hızlandırmalı evrişimli sinir ağları. İçinde: Devreler ve Sistemler (ISCAS), 2010 IEEE
Uluslararası Sempozyumu Bildiriler Kitabı. s.
257–260. IEEE (2010)
7. Hinton, G.: Kısıtlı boltzmann makinelerinin eğitimi için pratik bir rehber. İtme
9(1), 926 (2010)
8. Hinton, GE, Srivastava, N., Krizhevsky, A., Sutskever, I., Salakhutdinov, RR: Özellik dedektörlerinin
birlikte uyarlanmasını önleyerek sinir ağlarını kanıtlıyorum. arXiv ön baskı arXiv:1207.0580 (2012)
9. Ji, S., Xu, W., Yang, M., Yu, K.: İnsan eylemi tanıma için 3 boyutlu evrişimli sinir ağları. Model Analizi
ve Makine Zekası, IEEE İşlemleri 35(1), 221–231 (2013)
10. Karpathy, A., Toderici, G., Shetty, S., Leung, T., Sukthankar, R., Fei-Fei, L.: Evrişimsel sinir ağları ile
büyük ölçekli video sınıflandırması. İçinde: Bilgisayarla Görme ve Örüntü Tanıma (CVPR), 2014
IEEE Konferansı on. s. 1725-1732. IEEE (2014)
11. Krizhevsky, A., Sutskever, I., Hinton, GE: Derin konvolusyonel sinir ağları ile Imagenet sınıflandırması.
İçinde: Sinirsel bilgi işleme sistemlerindeki gelişmeler. s. 1097–1105 (2012)
12. LeCun, Y., Boser, B., Denker, JS, Henderson, D., Howard, RE, Hubbard, W., Jackel, LD: El yazısı posta
kodu tanımaya uygulanan geri yayılım. Sinirsel hesaplama 1(4), 541–551 (1989)
13. LeCun, Y., Bottou, L., Bengio, Y., Haffner, P.: Belge tanımaya uygulanan gradyan tabanlı öğrenme.
IEEE 86(11), 2278–2324 (1998) Bildirileri
14. Nebauer, C.: Görsel tanıma için evrişimli sinir ağlarının değerlendirilmesi.
Sinir Ağları, IEEE İşlemleri 9(4), 685–696 (1998)
15. Simard, PY, Steinkraus, D., Platt, JC: Görsel belge analizine uygulanan evrişimli sinir ağları için en
iyi uygulamalar. içinde: boş. p. 958. IEEE (2003)
16. Srivastava, N.: Bırakma ile sinir ağlarının iyileştirilmesi. Doktora tezi, Üniversitesi
Toronto (2013)
17. Szarvas, M., Yoshizawa, A., Yamamoto, M., Ogata, J.: Evrişimsel sinir ağları ile yaya tespiti. İçinde:
Akıllı Araçlar Sempozyumu, 2005. Bildiriler.
IEEE. s. 224–229. IEEE (2005)
18. Szegedy, C., Toshev, A., Erhan, D.: Nesne tespiti için derin sinir ağları. İçinde: Sinirsel Bilgi İşleme
Sistemlerindeki Gelişmeler. s. 2553–2561 (2013)
19. Tivive, FHC, Bouzerdoum, A.: Evrişimli sinir ağlarının (siconnet'ler) yeni bir sınıfı ve yüz algılama
uygulamaları. In: Neural Networks, 2003. Uluslararası Ortak Konferansın Bildirileri. cilt 3, s. 2157–
2162. IEEE (2003)
20. Zeiler, MD, Fergus, R.: Derin evrişimli sinir ağlarının düzenlenmesi için stokastik havuzlama. arXiv
ön baskı arXiv:1301.3557 (2013)
21. Zeiler, MD, Fergus, R.: Evrişimsel ağları görselleştirme ve anlama. İçinde:
Bilgisayarla Görme–ECCV 2014, s. 818–833. Bahar (2014)