Derin Evrişimli Sinir Ağı (DCNN) Nedir?
Derin evrişimli sinir ağı (DCNN), görüntüleri analiz etmek için en yaygın kullanılan yapay sinir ağı türlerinden biridir ve özellik haritaları oluşturma yeteneğiyle öne çıkar. Bu ağlar, beş temel bileşenden oluşur: bir evrişim ve düzeltilmiş doğrusal birim (ReLU) katmanı, bir havuzlama katmanı, bir tam bağlı katman, bir bırakma katmanı ve bir aktivasyon fonksiyonları katmanı.
DCNN, birden fazla katmandan oluşan evrişimli sinir ağlarının (CNN) daha gelişmiş bir versiyonudur. Genellikle görüntü analizi için kullanılır ve giriş özellikleri boyunca kayan, çeviri eşdeğer yanıtlar sağlayan evrişim çekirdekleri veya filtrelerin paylaşılan ağırlık mimarisine dayanır. Bu tür ağlar, kaymayla veya uzayla değişmeyen yapay sinir ağları (SIANN) olarak da bilinir.
DCNN’nin mimarisi şu beş bileşeni içerir:
1. Evrişim ve ReLU katmanı
2. Havuzlama katmanı
3. Tam bağlı katman
4. Bırakma katmanı
5. Aktivasyon fonksiyonları katmanı
Derin Evrişimli Sinir Ağı (DCNN) Mimarisi Nedir?
Derin evrişimli sinir ağları (CNN) beş ana katmandan oluşur: Evrişimsel, ReLU, Havuzlama, Tam Bağlantılı ve Bırakma katmanları. Bu katmanlar, giriş görüntülerinden özellik çıkarma, hesaplama maliyetlerini düşürme, sınıflandırma ve aşırı uyumun önlenmesi gibi görevler için kullanılır. Ayrıca, aktivasyon fonksiyonları katmanı, modelin veri noktalarını öğrenip işlediği kısımdır.
Aşağıda her bir katmanın işleyişi açıklanmıştır:
1. Evrişimsel Katman ve ReLU
Evrişimsel katman, giriş görüntülerinden çeşitli özellikleri çıkarmak için kullanılan ilk katmandır. Bu katmanda, giriş görüntüsü ile belirli bir MxM boyutundaki filtre arasında matematiksel evrişim işlemi gerçekleştirilir. Filtreyi giriş görüntüsü üzerinde kaydırarak, filtre boyutuna göre nokta çarpımlar alınır.
Çıktı, görüntüdeki köşeler ve kenarlar gibi bilgileri içeren bir özellik haritasıdır. Bu özellik haritası, diğer katmanlara beslenerek giriş görüntüsünün diğer özelliklerini öğrenir.
2. Havuzlama Katmanı
Genellikle evrişim katmanından sonra gelen havuzlama katmanının amacı, hesaplama maliyetlerini azaltmak için özellik haritasının boyutunu küçültmektir. Bu, katmanlar arasındaki bağlantıları azaltarak ve her özellik haritası üzerinde bağımsız çalışarak gerçekleştirilir. Yaygın havuzlama yöntemleri arasında maksimum havuzlama (en büyük öğeyi seçme) ve ortalama havuzlama (bölümdeki öğelerin ortalamasını alma) bulunur.
3. Tam Bağlantılı Katman
Tam bağlantılı katman, nöronları iki farklı katman arasında bağlayan ağırlıklar ve önyargılar içerir. Bu katman, önceki katmanlardan gelen giriş görüntüsünü düzleştirerek sınıflandırma işlemini başlatır. Genellikle CNN’in son birkaç katmanını oluşturur ve matematiksel işlemler burada gerçekleşir.
4. Bırakma Katmanı
Tam bağlantılı katmanların aşırı uyuma yol açmaması için bırakma katmanı kullanılır. Bu katman, eğitim sürecinde modelin bazı nöronlarını rastgele çıkararak aşırı uyumu önler. Örneğin, %30’luk bir bırakma oranı, sinir ağındaki düğümlerin %30’unun rastgele çıkarılması anlamına gelir.
5. Aktivasyon Fonksiyonları Katmanı
Aktivasyon fonksiyonları, ağın değişkenleri arasındaki karmaşık ilişkileri öğrenmesini sağlar. ReLU, Softmax, tanH ve Sigmoid gibi fonksiyonlar, modelin hangi bilgileri tetiklemesi gerektiğine karar verir. İkili sınıflandırma için Sigmoid ve Softmax, çoklu sınıf sınıflandırma için ise Softmax kullanılır.
Bu katmanlar bir araya gelerek CNN’in görüntüleri işleyip sınıflandırmasına olanak tanır. Her biri, modelin belirli görevleri yerine getirmesi için kritik öneme sahiptir.
Derin Evrişimli Sinir Ağı (DCNN) Nasıl Çalışır?
CNN, görüntüleri parça parça karşılaştırarak çalışır. Görüntülerde aradığı parçalara, MxM boyutunda matrisler olan özellikler denir. Bir bilgisayar için görüntüler, piksel değerlerinden oluşan MxM sayı matrisleridir. CNN’ler, görüntülerde benzer özellikleri bulmada diğer yöntemlerden çok daha başarılıdır çünkü iki görüntüdeki kabaca aynı konumlarda özellik eşleşmeleri ararlar.
Ancak, CNN yeni bir görsel ile karşılaştığında bu özelliklerin nerede eşleşeceğini tam olarak bilemediği için, tüm olası konumlarda deneme yapar. Özellik matrislerini adım adım kaydırarak görüntünün tamamında eşleşmeleri hesaplar. Bu süreçte özellikleri filtreler olarak kullanır ve bu işlemi gerçekleştirmek için kullanılan matematiksel işlem evrişimdir; bu da evrişimli sinir ağlarının adını aldığı süreçtir.
Bir sonraki adım, diğer tüm özellikler için evrişim sürecini tekrar etmektir. Sonuç olarak, her bir filtre için bir dizi filtrelenmiş görüntü elde edilir. Bu evrişim işlemlerinin tüm koleksiyonunu tek bir işlem adımı olarak görmek mümkündür.
Modelimizin doğrusal olmayan sınırları öğrenebilmesi için, doğrusal olmayan bir adım ekleriz. Bu genellikle doğrusal olmayan bir fonksiyon (ReLU veya GeLU gibi) kullanarak yapılır. En yaygın kullanılan doğrusal olmayan fonksiyon, negatif değerleri sıfıra dönüştüren basit bir matematiksel işlem olan ReLU’dur. Bu, öğrenilen değerlerin sıfıra yakın kalmasını veya aşırı büyümesini engelleyerek CNN’nin matematiksel olarak dengede kalmasını sağlar. Ancak, evrişim ve ReLU işlemleri büyük özellik haritaları oluşturabilir ve bu haritaların boyutunu küçültmek önemlidir.
Havuzlama, büyük görüntüleri önemli bilgileri koruyarak küçültmenin bir yoludur. Bu işlem, görüntü üzerinde küçük bir pencerenin kaydırılması ve her adımda penceredeki maksimum değerin alınmasıyla yapılır. Genelde, iki veya üç piksellik pencereler ve iki piksellik adımlar iyi sonuçlar verir. Havuzlama katmanı, görüntü veya görüntü koleksiyonları üzerinde havuzlama işlemi gerçekleştirir ve çıktıda aynı sayıda ama daha az piksele sahip görüntüler elde edilir. Bu, hesaplama yükünü yönetmek açısından da faydalıdır.
İstenilen miktarda evrişim işlemi tamamlandıktan sonra, modelin önceki aşamalardaki işlemlerden tam anlamıyla faydalanabilmesi için derin öğrenme sinir ağlarının gücünden yararlanma zamanı gelir. Ancak, havuzlanmış özellik haritalarını sinir ağına aktarmadan önce düzleştirmek gerekir. Çünkü sinir ağları yalnızca tek boyutlu girdi kabul eder. Bu nedenle, matrisleri tek boyutlu hale getiririz. Sonuçta, ham görüntüler filtrelenir, düzeltilir ve küçültülmüş, özellik filtreli görüntüler halinde birleştirilir ve bu noktada sinir ağına, yani nöronların dünyasına girmeye hazır hale gelirler.
Sinir ağındaki tamamen bağlantılı katmanlar, yüksek düzeyde filtrelenmiş görüntüleri, tek boyutlu düzeltilmiş havuzlanmış özellik haritalarını alır ve bunları oy veya sinyallere dönüştürür. Bu oylar, her değer ve her kategori arasındaki ağırlıklar veya bağlantı güçleri olarak ifade edilir. CNN’e yeni bir görüntü sunulduğunda, bu bilgi katmanlardan süzülerek tamamen bağlantılı katmana ulaşır ve en yüksek oyu alan cevap belirlenir. Böylece girdinin kategorisi ilan edilir.
İşte DCNN (Derin Evrişimli Sinir Ağı) bu şekilde çalışır.
Derin Evrişimli Sinir Ağı (DCNN) Modeli Nasıl Tasarlanır
Ne yazık ki, CNN’lerin her yönünü bu kadar basit bir şekilde öğrenmek mümkün değil. Bir CNN tasarımcısının vermesi gereken birçok önemli karar bulunuyor.
Her evrişim katmanı için kaç özellik haritası kullanılacak? Bu haritaların her birinde kaç piksel olacak?
Her havuzlama katmanı için pencere boyutu ne olmalı? Hangi adım kullanılmalı?
Hangi aktivasyon fonksiyonu kullanılmalı? Kaç dönem eğitim yapılmalı? Erken durdurma uygulanmalı mı?
Her ekstra tam bağlantılı katman için kaç gizli nöron olmalı?
Bunlara ek olarak, her katmandan kaç tane ekleyeceğiniz gibi üst düzey mimari kararlar da var. Bu katmanlar hangi sırayla düzenlenmeli? Yeni katman türleri eklemek, katmanları birbirine bağlamanın daha karmaşık yollarını denemek, eğitim dönemlerini artırmak veya aktivasyon fonksiyonunu değiştirmek gibi yapabileceğimiz pek çok ince ayar var.
En iyi kararı vermenin yolu ise, bu kararları kendiniz deneyimleyerek görmektir.