Temel CNN Mimarisi: Evrişimli Sinir Ağının 5 Katmanını Açıklama [ABD]

Yayınlanan: 2023-04-16

Bir CNN (Evrişimli Sinir Ağı), büyük veri kümelerinden özellikleri öğrenmek için evrişimli ve alt örnekleme katmanlarının bir kombinasyonunu kullanan bir tür derin öğrenme sinir ağıdır. Genellikle görüntü tanıma ve sınıflandırma görevleri için kullanılır. Evrişimli katmanlar, girdi verilerine filtreler uygular ve alt örnekleme katmanları, girdi verilerinin boyutunu azaltır. Evrişimli Sinir Ağı mimarisi, girdideki nesneleri sınıflandırmak veya algılamak için kullanılabilecek verilerden özellikleri öğrenmeyi amaçlar. Aşağıda açıklanan 5 CNN katmanı bulunmaktadır .

Dünyanın en iyi Üniversitelerinden Makine Öğrenimi Kursuna kaydolun . Kariyerinizi hızlandırmak için Master, Executive PGP veya Advanced Certificate Programları kazanın.

İçindekiler

Evrişimli Sinir Ağının 5 Katmanı

1. Evrişimli Katman:

Bu katman, verilerden çeşitli özellikleri çıkaran girdi verileri üzerinde evrişim işlemini gerçekleştirir.

Bir CNN model mimarisindeki Evrişimli Katmanlar, CNN katmanlarının en hayati bileşenlerinden biridir . Bu katmanlar, girdi verilerinden özniteliklerin çıkarılmasından ve daha fazla işleme ve öğrenme için temel oluşturmaktan sorumludur.

Evrişimli bir katman, girdi verilerine kayan pencere tarzında uygulanan bir dizi filtreden (çekirdek olarak da bilinir) oluşur. Her filtre, kendisiyle ilişkili ağırlıklara dayalı olarak girdi verilerinden belirli bir özellik kümesi çıkarır.

Konvolüsyonel katmanda kullanılan filtre sayısı, mimarideki en önemli hiperparametrelerden biridir. İşlenmekte olan verinin türüne ve modelin istenen doğruluğuna göre belirlenir. Genel olarak, daha fazla filtre, girdi verilerinden daha fazla özelliğin çıkarılmasıyla sonuçlanacak ve daha karmaşık ağ mimarilerinin verileri daha iyi anlamasına izin verecektir.

Evrişim işlemi, her filtreyi kayan pencere içindeki verilerle çarpmaktan ve sonuçları özetlemekten oluşur. Bu işlem tüm filtreler için tekrarlanır ve tek bir evrişimli katman için birden çok özellik haritası elde edilir. Bu özellik haritaları daha sonra sonraki katmanlar için girdi olarak kullanılır ve ağın verilerden daha karmaşık özellikleri öğrenmesine olanak tanır.

Evrişimli katmanlar, derin öğrenme mimarilerinin temelidir ve görüntü tanıma, doğal dil işleme ve konuşma tanıma gibi çeşitli uygulamalarda kullanılır. Evrişimli katmanlar, girdi verilerinden en kritik özellikleri çıkararak ağın daha karmaşık kalıpları öğrenmesini ve daha iyi tahminler yapmasını sağlar.

2. Havuzlama Katmanı:

Bu katman, özellik haritalarında gerekli hesaplama miktarını azaltan ve aynı zamanda aşırı uydurmayı azaltmaya yardımcı olan bir alt örnekleme işlemi gerçekleştirir.

Havuzlama katmanı, CNN mimarisinin hayati bir bileşenidir . Genellikle verilerden anlamlı bilgiler çıkarılırken giriş hacmi boyutunu azaltmak için kullanılır. Havuzlama katmanları genellikle bir CNN'nin sonraki aşamalarında kullanılır ve ağın bir görüntünün veya diğer girdi türlerinin daha soyut özelliklerine odaklanmasına olanak tanır. Havuzlama katmanı, giriş hacminin üzerine bir pencere kaydırarak ve pencere içindeki değerler için özet bir istatistik hesaplayarak çalışır.

Yaygın istatistikler, pencere içindeki değerlerin maksimumunu, ortalamasını veya toplamını almayı içerir. Bu, verilerle ilgili önemli bilgileri korurken giriş hacminin boyutunu azaltır.

Havuzlama katmanı aynı zamanda tipik olarak uzamsal değişmezliği tanıtmak için kullanılır, yani ağın görüntü içindeki girdinin konumundan bağımsız olarak aynı çıktıyı üreteceği anlamına gelir. Bu, ağın yalnızca tam konumunu ezberlemek yerine görüntü hakkında daha genel özellikleri devralmasına olanak tanır.

3. Aktivasyon Katmanı:

Bu katman, ReLU veya tanh gibi doğrusal olmayan bir aktivasyon fonksiyonu uygulayarak modele doğrusal olmama özelliğini ekler.

Bir CNN'deki aktivasyon katmanı, evrişim katmanının çıkışında doğrusal olmayan bir dönüşüm görevi gören bir katmandır. Girdi ve çıktı verileri arasındaki karmaşık ilişkileri öğrenmesine izin veren, ağın birincil bileşenidir.

Aktivasyon katmanı, evrişim katmanının çıktısını alan ve onu farklı bir değerler kümesine eşleyen bir işlev olarak düşünülebilir. Bu, ağın verilerdeki daha karmaşık kalıpları öğrenmesini ve daha iyi genelleme yapmasını sağlar.

CNN'lerde kullanılan yaygın aktivasyon fonksiyonları arasında ReLu (Düzeltilmiş Doğrusal Birim), sigmoid ve tanh bulunur. Her etkinleştirme işlevi farklı bir amaca hizmet eder ve farklı senaryolarda kullanılabilir.

ReLu, çoğu evrişimli ağda en sık kullanılan aktivasyon işlevidir. Tüm negatif değerler için 0 ve tüm pozitif değerler için girişle aynı değeri veren doğrusal olmayan bir dönüşümdür. Bu, ağın verilerdeki daha karmaşık kalıpları özümsemesine olanak tanır.

Sigmoid, herhangi bir girdi için 0 ile 1 arasında değerler veren, yaygın olarak kullanılan başka bir aktivasyon işlevidir. Bu, ağın girdi ve çıktı verileri arasındaki karmaşık ilişkileri anlamasına yardımcı olur, ancak hesaplama açısından ReLu'dan daha pahalıdır.

Tanh, herhangi bir giriş için -1 ile 1 arasında değerler veren, en az kullanılan aktivasyon fonksiyonudur.

Aktivasyon katmanı, doğrusallığı önlediği ve çıktıdaki doğrusal olmayanlığı geliştirdiği için CNN'nin temel bir bileşenidir. Her aktivasyon fonksiyonu farklı bir amaca hizmet ettiğinden ve farklı senaryolarda kullanılabildiğinden, ağ için doğru aktivasyon fonksiyonunun seçilmesi önemlidir. Uygun bir aktivasyon fonksiyonunun seçilmesi, CNN yapısının daha iyi performans göstermesine yol açabilir .

4. Tamamen Bağlantılı Katman:

Bu katman, bir katmandaki her nöronu bir sonraki katmandaki her nörona bağlayarak tam bağlantılı bir ağ oluşturur.

Bir CNN'deki tamamen bağlı bir katman, ağdaki önceki katmandaki her nörona bağlı bir nöron katmanıdır. Bu, nöronların yalnızca belirli bir modele dayalı olarak önceki katmandaki bir nöron alt kümesine bağlandığı evrişimli katmanların tersidir.

Tam bağlantılı katman, bir katmandaki her nöronu bir sonraki katmandaki her nörona bağlayarak, bir önceki katmandaki bilgilerin tüm ağda paylaşılmasını sağlar ve böylece verilerin daha kapsamlı bir şekilde anlaşılmasına olanak tanır.

CNN'deki tamamen bağlı katmanlar , evrişimli katmanların tanımamış olabileceği kalıpları ve korelasyonları belirlemeye yardımcı olduklarından, tipik olarak bir CNN model mimarisinin sonuna doğru, evrişimli katmanlardan ve havuzlama katmanlarından sonra kullanılır .

Ek olarak, sınıflandırma için kullanılabilecek doğrusal olmayan bir karar sınırı oluşturmak için tamamen bağlantılı katmanlar kullanılır. Sonuç olarak, tamamen bağlantılı katmanlar, herhangi bir CNN'nin ayrılmaz bir parçasıdır ve verilerdeki kalıpları ve korelasyonları belirlemek için güçlü bir araç sağlar.

5. Çıktı Katmanı:

Bu, çıktı etiketlerini veya değerlerini üreten ağın son katmanıdır.

Bir CNN'nin çıktı katmanı, ağdaki son katmandır ve çıktının üretilmesinden sorumludur. Önceki katmanlardan çıkarılan özellikleri alıp istenen çıktıyı üretecek şekilde birleştiren katmandır.

Tamamen bağlantılı bir katman, tipik olarak, bir sınıflandırma veya regresyon problemi gibi çıktı tek bir değer olduğunda kullanılır. Sonuç bir olasılık dağılımı gibi bir vektör olduğunda genellikle tek bir nöron katmanı kullanılır.

Çıktı, sınıflar üzerinden bir olasılık dağılımı gibi bir olasılık dağılımı olduğunda, bir softmax aktivasyon fonksiyonu kullanılır. Bir CNN'nin çıktı katmanı, istenen çıktıyı elde etmek için gerekli hesaplamaları yapmaktan da sorumludur. Bu, gerekli çıktıyı almak için girdilerin gerekli doğrusal veya doğrusal olmayan dönüşümlerini tamamlamayı içerir.

Son olarak, bir CNN'nin çıktı katmanı, ağın performansını iyileştirmek için bırakma veya toplu normalleştirme gibi düzenlileştirme tekniklerini gerçekleştirmek için de kullanılabilir.

Çözüm

CNN mimarisi, görüntü ve video işleme görevleri için güçlü bir araçtır. Evrişimli katmanların, havuzlama katmanlarının ve tamamen bağlı katmanların bir kombinasyonudur. Görüntülerden, videolardan ve diğer veri kaynaklarından özelliklerin çıkarılmasına izin verir ve nesne tanıma, görüntü sınıflandırma ve yüz tanıma gibi çeşitli görevler için kullanılabilir. Genel olarak, bu tür bir mimari, uygun işlevlere ve veri kümelerine uygulandığında oldukça etkilidir.

upGrad ile makine öğrenimi ve DL'de yetkin bir beceri seti edinin

IIIT-B tarafından sunulan upGrad'ın Makine Öğrenimi ve Derin Öğrenme İleri Düzey Sertifika Programı ile Makine Öğrenimi ve Derin Öğrenme konularında uzmanlık kazanabilirsiniz. Program, denetimli ve denetimsiz öğrenme, doğrusal ve lojistik regresyon, evrişimli sinir ağları, takviyeli öğrenme ve doğal dil işleme gibi konuları içeren ML ve DL'nin temellerini kapsar. Ayrıca Python ve TensorFlow'da makine öğrenimi ve DL modelleri oluşturmayı ve dağıtmayı öğrenecek ve gerçek dünya projeleri üzerinde çalışarak pratik deneyim kazanacaksınız.

Bu kurs aynı zamanda aşağıdaki gibi faydaları da içerir:

  • Endüstri uzmanlarından mentorluk ve rehberlik
  • Doğru işi bulmanıza yardımcı olacak yerleştirme yardımı
  • IIIT Bangalore'dan Gelişmiş Sertifika

Yönetim, Veri Bilimi, Makine Öğrenimi, Dijital Pazarlama ve Teknoloji alanlarında upGrad tarafından sunulanücretsiz kurslarımızada göz atabilirsiniz.Tüm bu kurslarda birinci sınıf öğrenme kaynakları, haftalık canlı dersler, endüstri ödevleri ve kurs bitirme sertifikası bulunur - hepsi ücretsiz!

Bir CNN için kullanılabilecek Python'daki kütüphaneler nelerdir?

Bir CNN için kullanılabilen Python kitaplıkları arasında TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV ve SciPy bulunur. Bu kitaplıklar, uygulamalar oluşturmak ve CNN algoritmalarını kolayca uygulamak için önceden oluşturulmuş modüller elde etmek için kullanılabilir.

CNN katmanlarında kaç boyut vardır?

Evrişimli sinir ağları, 3 boyutta düzenlenmiş nöronlar içerir: genişlik, yükseklik ve derinlik. Nöronların bu üç boyutlu yapısı, elde edilen çıktıyı sunmak için verilen girdiyle hesaplama işlemi boyunca çalışan evrişim katmanı içinde bulunur.

R'de bir CNN geliştirebilir miyim?

Evet, CNN'ler hem Python hem de R kullanılarak geliştirilebilir. Son derece ayrıntılı kitaplıklar sağlayan R ile, R ile evrişimli bir sinir ağı oluşturmak oldukça kolaydır.