Evrişimsel Sinir Ağları (Convolutional Neural Network-CNN)
Evrişimsel sinir ağları, derin öğrenmenin bir alt dalıdır ve genellikle görsel bilginin analiz edilmesinde kullanılır.
Genel bir tanım yapmak gerekirse:
Evrişimsel sinir ağları, sinir ağının evrişim yani konvolüsyon adı verilen matematiksel işlemi kullanır. Konvolüsyon özel bir doğrusal (lineer) işlem türüdür. Evrişimli sinir ağları, katmanlarından en az birinde genel matris çarpımı yerine evrişimi kullanan basit sinir ağlarıdır.
Yaygın olarak resim ve video tanıma, öneri sistemleri, resim sınıflandırma, tıbbi görüntü analizi ve doğal dil işlemede kullanılır.
Öncelikli olarak bu algoritmanın nasıl çalıştığına bakalım ve convolution katmanından başlayalım.
Convolution Katmanı
Bu katmanda filtreler görev alır. Çekirdekteki yani kerneldeki değerler görüntü üzerinde kaydırılır ve değerler görüntünün değerleriyle çarpılır. Elde edilen değerler toplanır. Bu işlem bütün görsele uygulandığında yeni bir görüntü elde etmiş oluruz.
6x6'lık görüntüye 3x3'lük bir filtre uygulayarak 4x4 boyutunda görüntü elde etmiş olduk.
Pooling Katmanı (Ortaklama)
Ortaklama katmanı (POOL), tipik olarak bir miktar uzamsal değişkenlik gösteren bir evrişim katmanından sonra uygulanan bir örnekleme işlemidir. Özellikle, maksimum ve ortalama ortaklama, sırasıyla maksimum ve ortalama değerin alındığı özel ortaklama türleridir.
Maksimum ortaklamada amaç, yapılan her ortaklama işlemi geçerli matrisin maksimum değerini seçer. Algılanan özellikleri korur ve en sık kullanılan ortaklama yöntemidir.
Ortalama ortaklamadaki amaç ise yapılan her ortaklama işlemi geçerli matrisin değerlerinin ortalamasını alır. LeNet’te kullanılmıştır.
Activation Katmanı-Dropout
Bu katmanda dropout fonksiyonu bulunmaktadır. Ağımızdaki bazı nöronlar rastgele olarak etkisiz hale getirir. Bu fonksiyonun en önemli noktası eğitim sırasında nöronlara bağımsızlık kazandırarak sistemin daha iyi verim elde etmesini sağlamasıdır.
Flatting Layer
Bu katmanın görevi son ve en önemli katman olan Fully Connected Layer (FC)’ın girişindeki verileri hazırlamaktır. Genel olarak, sinir ağları, giriş verilerini tek boyutlu bir diziden alır. Bu sinir ağındaki veriler ise Convolutional ve Pooling katmanından gelen matrikslerin tek boyutlu diziye çevrilmiş halidir.
Fully-Connected Layer (FC) (Classification)
Bu katman ConvNet’in son ve en önemli katmanıdır. Verileri bir önceki adımdan alır ve sinir ağı yoluyla öğrenme işlemini gerçekleştirir.
Öngörülebilir gelecekte bir bütün olarak yapay zekaya güç veren ve ona güç verecek algoritmalar oluşturmada anahtar olan çeşitli CNN mimarileri mevcuttur. Bunlardan bazıları aşağıda listelenmiştir:
- LeNet
- AlexNet
- VGGNet
- GoogLeNet
- ResNet
- ZFNet
Şimdilik CNN için yazımızı burada sonlandırıyoruz. Bir sonraki bölümlerde görüşmek üzere…
Yardımcı Kaynaklar:
- https://tr.wikipedia.org/wiki/Evri%C5%9Fimli_sinir_a%C4%9Flar%C4%B1
- https://stanford.edu/~shervine/l/tr/teaching/cs-230/cheatsheet-convolutional-neural-networks
- https://www.ardamavi.com/2017/07/convolutional-networks.html
- https://medium.com/@tuncerergin/convolutional-neural-network-convnet-yada-cnn-nedir-nasil-calisir-97a0f5d34cad
- https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53