Temel CNN Mimarisi: Evrişimli Sinir Ağının 5 Katmanını Açıklama
Yayınlanan: 2020-12-07İçindekiler
Tanıtım
BT endüstrisinin son birkaç yılında, Derin Öğrenme olarak bilinen bir zamanlar belirli becerilere yönelik büyük bir talep olmuştur. Derin Öğrenme, insan beyninin veya sinir ağlarının işleyişinden ilham alan algoritmalardan oluşan bir Makine Öğrenimi alt kümesidir.
Bu yapılara Sinir Ağları denir. Bilgisayara, insanlara doğal olarak gelenleri yapmayı öğretir. Derin öğrenme, Yapay Sinir Ağları (YSA), Otomatik Kodlayıcılar, Tekrarlayan Sinir Ağları (RNN) ve Güçlendirmeli Öğrenme gibi çeşitli modeller vardır. Ancak, bilgisayarla görme ve görüntü analizi alanında çok katkıda bulunan belirli bir model, Evrişimli Sinir Ağları (CNN) veya ConvNets olmuştur.
CNN'ler, görüntülerden belirli özellikleri tanıyabilen ve sınıflandırabilen ve görsel görüntüleri analiz etmek için yaygın olarak kullanılan bir Derin Sinir Ağları sınıfıdır. Uygulamaları, görüntü ve video tanıma, görüntü sınıflandırma, tıbbi görüntü analizi, bilgisayarla görme ve doğal dil işlemeye kadar uzanır.
CNN'deki 'Evrişim' terimi, bir işlevin şeklinin diğeri tarafından nasıl değiştirildiğini ifade eden üçüncü bir işlev üretmek için iki işlevin çarpıldığı özel bir doğrusal işlem türü olan evrişimin matematiksel işlevini belirtir. Basit bir ifadeyle, matris olarak temsil edilebilen iki görüntü çarpılarak görüntüden özellikleri çıkarmak için kullanılan bir çıktı elde edilir.
Kariyerinizi hızlandırmak için Makine Öğrenimi'ni dünyanın en iyi Üniversiteleri - Yüksek Lisanslar, Yönetici Yüksek Lisans Programları ve Makine Öğrenimi ve Yapay Zeka alanında Gelişmiş Sertifika Programından çevrimiçi öğrenin .
Öğrenin: Derin Öğrenmeye ve Sinir Ağlarına Giriş

Temel Mimari
Bir CNN mimarisinin iki ana bölümü vardır.
- Özellik Çıkarma olarak adlandırılan bir süreçte analiz için görüntünün çeşitli özelliklerini ayıran ve tanımlayan bir evrişim aracı
- Evrişim sürecinin çıktısını kullanan ve önceki aşamalarda çıkarılan özelliklere dayalı olarak görüntünün sınıfını tahmin eden tam bağlantılı bir katman.
Kaynak
Evrişim Katmanları
Evrişimsel katmanlar, havuzlama katmanları ve tam bağlantılı (FC) katmanlar olan CNN'yi oluşturan üç tür katman vardır. Bu katmanlar yığıldığında bir CNN mimarisi oluşacaktır. Bu üç katmana ek olarak, aşağıda tanımlanan dropout katmanı ve aktivasyon fonksiyonu olan iki önemli parametre daha vardır.
1. Evrişimsel Katman
Bu katman, girdi görüntülerinden çeşitli özellikleri çıkarmak için kullanılan ilk katmandır. Bu katmanda, girdi görüntüsü ile belirli bir MxM boyutundaki bir filtre arasında matematiksel evrişim işlemi gerçekleştirilir. Filtreyi giriş görüntüsünün üzerine kaydırarak, filtrenin boyutuna (MxM) göre filtre ile giriş görüntüsünün bölümleri arasında nokta ürün alınır.
Çıktı, bize köşeler ve kenarlar gibi görüntü hakkında bilgi veren Özellik haritası olarak adlandırılır. Daha sonra, bu özellik haritası, girdi görüntüsünün diğer bazı özelliklerini öğrenmek için diğer katmanlara beslenir.
2. Havuzlama Katmanı
Çoğu durumda, bir Evrişim Katmanını bir Havuz Katmanı izler. Bu katmanın birincil amacı, hesaplama maliyetlerini azaltmak için kıvrımlı özellik haritasının boyutunu küçültmektir. Bu, katmanlar arasındaki bağlantıları azaltarak gerçekleştirilir ve her bir özellik haritasında bağımsız olarak çalışır. Kullanılan yönteme bağlı olarak, birkaç tür Havuzlama işlemi vardır.
Max Pooling'de en büyük eleman özellik haritasından alınır. Ortalama Havuzlama, önceden tanımlanmış boyutlu bir Görüntü bölümündeki öğelerin ortalamasını hesaplar. Önceden tanımlanmış bölümdeki öğelerin toplam toplamı, Sum Pooling'de hesaplanır. Havuzlama Katmanı genellikle Evrişim Katmanı ve FC Katmanı arasında bir köprü görevi görür.
Okumalısınız: Sinir Ağı Proje Fikirleri
3. Tam Bağlantılı Katman
Fully Connected (FC) katmanı, nöronlarla birlikte ağırlık ve önyargılardan oluşur ve nöronları iki farklı katman arasında bağlamak için kullanılır. Bu katmanlar genellikle çıktı katmanından önce yerleştirilir ve bir CNN Mimarisinin son birkaç katmanını oluşturur.
Bunda, önceki katmanlardan gelen girdi görüntüsü düzleştirilir ve FC katmanına beslenir. Düzleştirilmiş vektör daha sonra matematiksel fonksiyon işlemlerinin genellikle gerçekleştiği birkaç FC katmanından daha geçer. Bu aşamada sınıflandırma işlemi gerçekleşmeye başlar.
4. Bırakma
Genellikle, tüm özellikler FC katmanına bağlandığında, eğitim veri setinde aşırı uyumlanmaya neden olabilir. Belirli bir model, yeni bir veri üzerinde kullanıldığında modelin performansında olumsuz bir etkiye neden olan eğitim verileri üzerinde çok iyi çalıştığında, fazla uyum oluşur.
Bu sorunun üstesinden gelmek için, eğitim işlemi sırasında sinir ağından birkaç nöronun düşürüldüğü ve modelin boyutunun küçüldüğü bir bırakma katmanı kullanılır. 0,3'lük bir düşüşü geçtikten sonra, düğümlerin %30'u sinir ağından rastgele çıkarılır.
5. Aktivasyon Fonksiyonları
Son olarak, CNN modelinin en önemli parametrelerinden biri aktivasyon fonksiyonudur. Ağın değişkenleri arasındaki her türlü sürekli ve karmaşık ilişkiyi öğrenmek ve tahmin etmek için kullanılırlar. Basit bir deyişle, modelin hangi bilgilerinin ileri yönde tetiklenmesi ve hangilerinin ağın sonunda olmaması gerektiğine karar verir.

Ağa doğrusal olmayanlık ekler. ReLU, Softmax, tanH ve Sigmoid işlevleri gibi yaygın olarak kullanılan birkaç etkinleştirme işlevi vardır. Bu işlevlerin her birinin belirli bir kullanımı vardır. İkili sınıflandırma CNN modeli için, sigmoid ve softmax fonksiyonları tercih edilirken, çok sınıflı bir sınıflandırma için genellikle softmax us kullanılır.
LeNet-5 CNN Mimarisi
1998'de, LeNet-5 mimarisi Yann LeCun, Leon Bottou, Yoshua Bengio ve Patrick Haffner tarafından “Gradient-Based Learning Applied to Document Recognition” başlıklı bir araştırma makalesinde tanıtıldı. En eski ve en temel CNN mimarisinden biridir.
7 katmandan oluşur. İlk katman, 32×32 boyutlarında bir girdi görüntüsünden oluşur. 5×5 boyutunda 6 filtre ile kıvrılır ve 28x28x6 boyutunda sonuçlanır. İkinci katman, 2×2 boyutunda ve 2 adımda filtre uygulayan bir Havuzlama işlemidir. Dolayısıyla, elde edilen görüntü boyutu 14x14x6 olacaktır.
Benzer şekilde, üçüncü katman ayrıca 5×5 boyutunda 16 filtre ve ardından benzer filtre boyutu 2×2 ve adım 2 olan dördüncü bir havuzlama katmanı ile bir evrişim işlemini içerir. Böylece, elde edilen görüntü boyutu 5x5x16'ya düşürülecektir.
Görüntü boyutu küçültüldüğünde, beşinci katman, her biri 5×5 boyutunda 120 filtreye sahip tam bağlantılı bir evrişim katmanıdır. Bu katmanda, bu katmandaki 120 birimin her biri, önceki katmanlardan 400 (5x5x16) birime bağlanacaktır. Altıncı katman da 84 birim ile tam bağlantılı bir katmandır.
Son yedinci katman, veri kümesindeki sınıfların sayısına bağlı olarak 'n' olası sınıfları olan bir softmax çıktı katmanı olacaktır.
Kaynak
Yukarıdaki diyagram, LeNet-5 CNN Mimarisinin 7 katmanının bir temsilidir.
Aşağıda, TensorFlow çerçevesi ile keras kitaplığını kullanarak bir LeNet-5 CNN mimarisi oluşturmak için Python kodunun anlık görüntüleri bulunmaktadır.

Python Programlamada en yaygın olarak kullanılan model tipi Sıralı tiptir. Keras'ta bir CNN modeli oluşturmanın en kolay yolu. Katman katman bir model oluşturmamıza izin verir. Modele katman eklemek için 'add()' işlevi kullanılır. Yukarıda açıklandığı gibi, LeNet-5 mimarisi için, genellikle Evrişim ve Yoğun katmanlar arasında bir bağlantı olarak kullanılan bir Düzleştirme katmanının izlediği iki Evrişim ve Havuzlama çifti vardır.
Yoğun katmanlar, çoğunlukla çıktı katmanları için kullanılan katmanlardır. Kullanılan aktivasyon, her sınıf için bir olasılık veren ve toplamları 1 olan 'Softmax'tır. Model tahminini en yüksek olasılığa sahip sınıfa göre yapacaktır.
Modelin özeti aşağıdaki gibi görüntülenir.
Çözüm
Bu nedenle, bu yazıda temel CNN yapısını, mimarisini ve CNN modelini oluşturan çeşitli katmanları anladık. Ayrıca Python programı ile çok ünlü ve geleneksel bir LeNet-5 modelinin mimari örneğini gördük.
Makine öğrenimi kursları 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 sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG Programına göz atın. IIIT-B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.
CNN'de etkinleştirme işlevleri nelerdir?
Aktivasyon işlevi, CNN modelindeki en hayati bileşenlerden biridir. Hem sürekli hem de karmaşık olan herhangi bir ağ değişkeni-değişken ilişkisini öğrenmek ve buna yaklaşmak için kullanılırlar. Basit bir ifadeyle, hangi model bilgilerinin ileri yönde akması gerektiğini ve hangilerinin ağın sonunda olmaması gerektiğini belirler. Ağa doğrusal olmayanlık verir. ReLU, Softmax, tanH ve Sigmoid işlevleri, en sık kullanılan etkinleştirme işlevlerinden bazılarıdır. Tüm bu işlevlerin farklı kullanımları vardır. 2 sınıflı bir CNN modeli için sigmoid ve softmax işlevleri tercih edilirken, softmax tipik olarak çok sınıflı sınıflandırma için kullanılır.
Evrişimli sinir ağı mimarisinin temel bileşenleri nelerdir?
Bir girdi katmanı, bir çıktı katmanı ve birden çok gizli katman, evrişimli ağları oluşturur. Evrişimli bir ağın katmanlarındaki nöronlar, standart bir sinir ağındakilerden (genişlik, yükseklik ve derinlik boyutları) farklı olarak üç boyutta düzenlenir. Bu, CNN'nin üç boyutlu bir girdi hacmini bir çıktı hacmine dönüştürmesini sağlar. Evrişim, havuzlama, normalleştirme ve tamamen bağlı katmanlar, gizli katmanları oluşturur. Giriş hacimlerini daha yüksek soyutlama seviyelerine filtrelemek için CNN'lerde çoklu dönüşüm katmanları kullanılır.
Standart CNN mimarilerinin faydası nedir?
Geleneksel ağ mimarileri yalnızca yığılmış evrişim katmanlarından oluşurken, daha yeni mimariler, öğrenme verimliliğini artırmak için evrişimli katmanları oluşturmanın yeni ve özgün yollarını araştırır. Bu mimariler, makine öğrenimi pratisyenlerinin çeşitli bilgisayar görme problemlerini ele almak için uyarlamaları için genel mimari öneriler sunar. Bu mimariler, görüntü sınıflandırma, nesne tanımlama, resim bölütleme ve çeşitli diğer gelişmiş görevler için zengin öznitelik çıkarıcılar olarak kullanılabilir.