Convolutional neural network derin öğrenmenin iki temel algoritmasından birisidir diğeri ise recurrent neural network (RNN) dir. CNN algoritması logistic regression gibi bir sınıflandırma algoritmasıdır. Resim sınıflandırma, nesne tanımlama, image ve captioning problemlerinde sıklıkla kullanılır.[The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches]
Convolutional neural network mimarisi yukarıda ki şekilde görüldüğü gibi 3 ana kısımdan meydana geliyor. Input olarak bir araba resmi var. Araba resmindeki öznitelikleri bulmaya yarayan hidden layer’lar bulunuyor ve son olarak sınıflandırma işleminin yapıldığı classification kısmı var.
Convolution Operation
Convolutional layer’da input olarak verilen resim üzerinden feature’ları bulmamızı sağlayan filtreler bulunuyor. Bilindiği gibi input olarak verilen resim aslında bir matris. Bu matris içerisinden feature bulabilmemiz için feature matrislerini kullanmamız gerekiyor. Feature matrislerine kernel ismi veriliyor. Eğer input resmi bir araba ise arabanın farlarını veya tekerleklerini bulmamızı sağlar. Convolution bir şeklin diğeri tarafından nasıl değiştirildiği ifade eden matematiksel bir fonksiyondur. Matematikte aşağıda ki formülle tanımlanır.
Convolution işlemine 3 unsur tabi olur. Input image, convolution filter başka bir deyişle feature detector ve feature map.
Convolution işlemi yukarıda görüldüğü gibi input resimin üzerinde convolutional filter’ın kaydırılması sonucu yapılır. Çakışan sayılar çarpılır. Çarpım sonucu elde edilen sayılar toplanarak feature map matrisine aktarılır. Bu işlem input resminin boyutunu düşürürken veri kaybına da sebep oluyor. Veri kaybını önlemek için same padding metodu kullanılıyor. Same padding input resminin etrafına sıfır değerlerinden oluşan bir çerçeve eklenmesine deniyor. Bu sayede veri kaybı önleniyor. Feature map resme ait bir feature tutar, örneğin arabanın farı gibi, dolayısıyla input resmindeki tüm feature’ları tespit edebilmek için çok sayıda feature map’e ihtiyaç duyarız. Convolution işleminin ardından feature map’e bir aktivasyon fonksiyonu olan relu uygulanır. İşlemin relu fonksiyonuna sokulmasının sebebi eksi değerlerin sıfırlanmasıdır. Relu aktivasyon fonksiyonunu incelersek,
ifadesinde olduğu gibi sıfırdan küçük değerler için sonuç sıfır oluyor. Sıfıra eşit veya büyük değerler için sonuç değişmeden fonksiyondan çıkıyor.
Max Pooling
Max pooling işlemi parametre sayısını azaltmak için uygulanan bir down sampling yöntemidir. Bunun dışında overfitting(aşırı öğrenme) problemini çözmek için de kullanılır. Feature map matrisi üzerinde belirlenen ölçülerde bir pencere dolaştırılır. Pencere içerisinde ki max değerin alınmasıyla yapılan bir işlemdir.
Flattening
Convolution ve pooling işlemlerinden sonra ortaya çıkan matrisleri n satır 1 sütundan oluşan vektörlere dönüştürme işlemine flattening deniyor. Bu vektörler artificial neural network’ün inputları olacaktır.
Fully Connected Layer
Fully connected layer artificial neural network’ün olduğu kısımdır. Yapay sinir ağlarıyla öğrenmenin gerçekleştiği layerdır. Dolayısıyla logistic regression‘da olduğu gibi forward propagation ve backward propagation bu katmanda gerçekleşir.
Bu yazımda özetle derin öğrenme metodlarından biri olan Convolutional Neural Network (CNN) mimarisine değinmeye çalıştım. Umarım faydalı olmuştur, sonrakı yazılarımda görüşmek üzere.
Murat 🙂
Merhaba,ben veri setimi sınıflandırmak istiyorum ama veri seti image ve xml dosyalarından oluşuyor.Bu xml dosyaları da görüntülerin bazı bilgilerini içermekle birlikte yine bu xml dosyalarında görüntüler de mevcut.Sınıflandırma işlemine bu xml dosyalarını nasıl dahil edebilirim ya da bu xml dosylarını da sınıflandırmak gibi bir şey sözkonusu mudur acaba?
Merhaba,
anladığım kadarıyla resimlerden oluşan bir datasetin var ve sınıflandırma yapmak istiyorsun. Kullandığın datasetin ismini gönderebilir misin? Mesela burada bir örnek var. https://www.analyticsvidhya.com/blog/2021/07/step-by-step-guide-for-image-classification-on-custom-datasets/ resimleri sınıflandırırken kullandığı dataset is burada https://www.kaggle.com/datasets/drgfreeman/rockpaperscissors?resource=download, kullanılan tensorflow/keras. Belki yardımcı olabilir sana.