Evrişimli Sinir Ağı Mimarisi: Bilmeniz Gerekenler?
Yayınlanan: 2020-12-01Genellikle ConvNets veya CNN gibi isimlerle anılan Evrişimli Sinir Ağları, en yaygın kullanılan Sinir Ağı Mimarilerinden biridir. CNN'ler genellikle görüntü tabanlı veriler için kullanılır. Görüntü tanıma, görüntü sınıflandırma, nesne algılama vb. CNN'lerin yaygın olarak kullanıldığı alanlardan bazılarıdır.
Applied AI'nın özellikle görüntü verileri üzerindeki dalı, Bilgisayarla Görme olarak adlandırılır. CNN'lerin tanıtılmasından bu yana Computer Vision'da muazzam bir büyüme oldu. CNN'nin ilk bölümü, normalleştirme için evrişim ve aktivasyon işlevini kullanarak görüntülerden öznitelikler çıkarır.
Son blok, herhangi bir özel problemi çözmek için Sinir Ağı ile bu özellikleri kullanır, örneğin bir sınıflandırma probleminde, sınıflandırma için mevcut sınıfların sayısına bağlı olarak 'n' sayıda çıkış nöronu olacaktır. Bir CNN'nin mimarisini ve işleyişini anlamaya çalışalım.
İçindekiler
evrişim
Evrişim, görüntü üzerinde dönmek, çekirdek öğelerini görüntü pikselleriyle çarpmak ve eklemek için ağırlıklı bir çekirdek (kare matris) kullanan bir görüntü işleme tekniğidir. Bu yöntem, aşağıda gösterilen görüntü ile kolayca görselleştirilebilir.
Resim: Peltarion
Evrişim filtresi ve çıkışı

Gördüğümüz gibi 3×3 evrişim kulübesi kullandığımızda görüntünün 3×3 kısmı çalıştırılıyor ve çarpma ve ardından toplama işleminden sonra çıktı olarak bir değer geliyor. 4×4 bir görüntüde, çekirdek boyutu 3×3 olduğu için 2×2 kıvrımlı matris çıktısı alacağız.
Kıvrımlı çıktı, evrişim için kullanılan çekirdeğin boyutuna göre değişebilir. Bu, bir CNN'nin tipik başlangıç katmanıdır. Kıvrımlı çıktı, görüntüden bulunan özelliklerdir. Bu, kullanılan çekirdek boyutuyla doğrudan ilgilidir.
Bir görüntünün özelliği, bir görüntüdeki küçük farklılıklar bile farklı bir çıktı kategorisine girmesine neden olacak şekildeyse, özellik çıkarma için küçük bir çekirdek boyutu kullanılır. Aksi takdirde daha büyük bir çekirdek kullanılabilir. Çekirdekte kullanılan değerler genellikle evrişimsel ağırlıklar olarak adlandırılır. Bunlar başlatılır ve ardından gradyan inişi kullanılarak geri yayılım üzerine güncellenir.
Okuyun: Yeni Başlayanlar İçin TensorFlow Nesne Algılama Eğitimi
havuzlama
Havuzlama katmanı, evrişim katmanları arasına yerleştirilir. Bir evrişim katmanı tarafından gönderilen özellik haritaları üzerinde havuzlama işlemlerini gerçekleştirmekten sorumludur. Havuzlama işlemi, boyutsallık azaltma olarak da bilinen özelliklerin uzamsal boyutunu azaltır.
Havuzlamanın en önemli nedenlerinden biri, verileri işlemek için gereken hesaplama gücünü azaltmaktır. Bir havuzlama katmanı görüntülerin boyutunu küçültse de önemli özelliklerini korur. Çalışma, bir CNN filtresine benzer. Çekirdek, özellikleri gözden geçirir ve filtrenin kapsadığı değerleri toplar.
Görüntüden, çeşitli toplama işlevlerinin olabileceği açıkça görülmektedir. Ortalama ve maksimum havuzlama en sık kullanılan havuzlama işlemleridir. Havuzlama, özelliklerin boyutlarını azaltır ancak özellikleri olduğu gibi tutar.
Parametre sayısını azaltarak, ağdaki hesaplamalar da azalır. Bu, aşırı öğrenmeyi azaltır ve ağın verimliliğini artırır. Maksimum değerler, evrişimden elde edilen haritalara kıyasla havuzlanmış haritada daha az doğru bir şekilde tespit edildiğinden, çoğunlukla kullanılır.
Bu pek çok durum için iyidir. Diyelim ki bir köpeği tanımak istiyorsak, kulaklarının mümkün olduğunca tam olarak yerleştirilmesine gerek yok, neredeyse başının yanında olduğunu bilmek yeterli.
Max Pooling ayrıca Gürültü Bastırıcı olarak da çalışır. Gürültülü aktivasyonları tamamen ortadan kaldırır ve ayrıca boyutsallık azaltma ile birlikte gürültü giderme gerçekleştirir. Öte yandan, Ortalama Havuzlama, bir gürültü bastırma mekanizması olarak basitçe boyutsallık azaltma gerçekleştirir. Dolayısıyla, Max Pooling'in Ortalama Pooling'den çok daha iyi performans gösterdiğini söyleyebiliriz.
Aktivasyon Fonksiyonu
ReLU (Rectified Linear Units) en sık kullanılan aktivasyon fonksiyon katmanıdır.
Aynısı için denklem: ReLU(x)=max(0,x)
Ve grafiksel gösterimi aşağıda verilmiştir:
Kaynak: Orta
ReLU temsili
ReLU, negatif değerleri sıfıra eşler ve pozitifleri olduğu gibi tutar.
Tam Bağlantılı Katman
Tamamen bağlı bir katman, genellikle herhangi bir sinir ağının son katmanıdır. Bu katman girdi vektörlerini alır ve yeni bir çıktı katmanı üretir. Bu çıktı katmanında n sayıda nöron vardır ve burada n, görüntünün sınıflandırmasındaki sınıf sayısıdır. Vektörün her elemanı, görüntünün belirli bir sınıfta olma olasılığını sağlar. Dolayısıyla çıktı katmanındaki tüm vektörlerin toplamı her zaman 1'dir.

Çıktı katmanında gerçekleşen hesaplamalar aşağıdaki gibidir:
- Nöronun ağırlığı ile çarpılan eleman
- Aktivasyon fonksiyonunu katmana uygula (n=2 olduğunda lojistik, n>2 olduğunda sigmoid)
Çıktı artık görüntünün belirli bir sınıfa ait olma olasılığı olacaktır. Katmanın ağırlıkları, eğitim sırasında gradyanın geri yayılmasıyla öğrenilir.
Ayrıca Okuyun: Sinir Ağı Modeline Giriş
Bırakma Katmanı
Bırakma katmanları, fazla uydurmayı azaltan ve genelleme hatasını iyileştiren bir düzenleme katmanı olarak çalışır. Bir Sinir Ağı kullanırken aşırı takma büyük bir endişe kaynağıdır. Bırakma, adından da anlaşılacağı gibi, kullanıldığı katmanlardaki nöronun bir yüzdesini bırakır.
Bırakma tarafından kullanılan düzenlileştirme yöntemi, farklı paralel mimarilere sahip çok sayıda sinir ağının eğitilmesine yaklaşmasıdır. Eğitim periyodu sırasında bazı katman çıktıları rasgele bırakılır veya yok sayılır. Bu, katmanın farklı sayıda düğüme sahip bir katman gibi görünmesini sağlar ve bazı nöronlar kapatılır. Dolayısıyla bağlantı da önceki katmana göre değişir.
hiperparametreler
Ele alınan görüntü verisine göre kontrol edilebilen belirli parametreler vardır. Bir CNN'nin her katmanı, ister evrişim katmanı, ister havuz katmanı olsun, parametrelendirilebilir. Parametreler, o belirli katmanın çıktısı olan özellik haritasının boyutunu etkiler.
Her görüntü (girdi) veya özellik haritası (katmanların sonraki çıktıları) şu boyutlardadır: G x Y x D burada G x Y genişlik x yükseklik, yani harita veya görüntünün boyutu. D, renk segmentleri temelinde boyutu temsil eder. Tek renkli görüntülerde D=1 ve RGB yani renkli görüntülerde D=3 olacaktır.
Evrişim Katmanı hiper parametreleri
- Filtre sayısı (K)
- FxFxD boyutunun filtresinin (F) boyutu
- Adımlar: Çekirdeğin görüntü üzerinde kayması için atılan adım sayısı. S=1, çekirdeğin adım olarak 1 piksel ile hareket edeceği anlamına gelir.
- Sıfır doldurma: Daha az boyuta sahip görüntüler için sıfır doldurma yapılır, çünkü evrişim ve maksimum havuz katmanları, her yinelemede özellik haritasının boyutunu azaltır.
Kaynak: XRDS
Sıfır dolgu, giriş görüntüsünün boyutunu artırdı
W×H×D boyutundaki her girdi görüntüsü için havuzlama katmanı, Wc×Hc×Dc boyutlarında bir matris döndürür. Neresi
Wc= (W-F+2P)/S+1
Hc= (H-F+2P)/S+1
Dc= K
Padding(P)=F-1/2 ve Stride(S)=1 değerini bulmak için denklemleri çözme
Genel olarak, daha sonra F=3,P=1,S=1 veya F=5,P=2,S=1'i seçeriz.
Havuzlama Katmanı hiper parametreleri
- Hücre boyutu (F): Haritanın havuzlama için bölüneceği kare hücre boyutu. FxF
- Adım boyutu (S): Hücreler S piksellerle ayrılır
W×H×D boyutundaki her girdi görüntüsü için havuzlama katmanı, Wp×Hp×Dp boyutlarında bir matris döndürür.
Wp= (WF)/S+1

Hp= (HF)/S+1
Dp= D
Havuzlama katmanı için yaygın olarak F=2 ve S=2 seçilir. Giriş piksellerinin %75'i elimine edilir. F=3 ve S=2 de seçilebilir. Daha büyük hücre boyutu, büyük bilgi kaybına neden olur, bu nedenle yalnızca çok büyük boyutlu girdi görüntüleri için uygundur.
Genel hiperparametreler
- Öğrenme hızı: Öğrenme hızını optimize etmek için SGD, AdaGrad veya RMSProp gibi optimize ediciler seçilebilir.
- Dönemler: Eğitimde bir boşluk ve doğrulama hatası ortaya çıkana kadar Dönem sayısı artırılmalıdır.
- Parti boyutu: 16 ila 128 seçilebilir. Sahip olduğu işlem gücü miktarına bağlıdır.
- Aktivasyon Fonksiyonu: Modele doğrusal olmayanlık getirir. ReLu genellikle Conv Ağları için kullanılır. Diğer seçenekler şunlardır: sigmoid, tanh.
- Bırakma: 0.1'lik bir bırakma değeri, nöronların %10'unu düşürür. 0,5 iyi bir başlangıç noktasıdır. 0.25 iyi bir son seçenektir.
- Ağırlık Başlatma: Ölü nöron olasılığını saptırmak için küçük rastgele ağırlıklar başlatılabilir. Ama eğimli iniş için çok küçük değil. Düzgün dağılım uygundur.
- Gizli katmanlar: Test hatası azalana kadar gizli katmanlar artırılabilir. Artan gizli katmanlar, hesaplamayı artıracak ve düzenleme gerektirecektir.
Çözüm
Sıfırdan bir CNN oluşturmak için temel bilgilere sahibiz. Temel düzeyde her şeyi kapsayan kapsamlı bir makale olmasına rağmen, her parametre veya katman daha derine inilebilir. Her kavramın arkasındaki matematik de modelin iyileştirilmesi için anlaşılabilecek bir şeydir.
Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka PG Diplomasına göz atın. B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.