Evrişimli sinir ağı (CNN): görüntüyü filtrelerle okuyan model
Sözlük

Evrişimli sinir ağı (CNN): görüntüyü filtrelerle okuyan model

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

CNN, yani evrişimli sinir ağı, görüntülerdeki örüntüleri filtrelerle öğrenen bir derin öğrenme mimarisidir. Katmanlar, örnek ve kullanım alanları.

CNN nedir?

CNN (Convolutional Neural Network), Türkçe adıyla evrişimli sinir ağı, görüntü gibi komşu noktaların birbiriyle anlamlı ilişki kurduğu verileri işlemek için tasarlanmış bir yapay sinir ağı türüdür. Ağın temel fikri, bütün girdiyi tek seferde tek bir büyük katmana vermek yerine küçük filtreleri girdinin üzerinde gezdirmek ve her konumda aynı filtreyi uygulamaktır.

Bu yaklaşım birkaç fayda sağlar. Birincisi, öğrenilecek parametre sayısı tam bağlantılı bir ağa göre çok daha az olur. Bir diğeri, bir nesne görüntünün neresinde olursa olsun aynı filtre onu yakalayabilir. Bir kedi sol üst köşede de olsa sağ altta da olsa, kulak ya da bıyık gibi örüntüleri bulan filtreler aynı kalır.

CNN nasıl çalışır?

Bir CNN, art arda dizilmiş katmanlardan oluşur ve her katman bir öncekinin çıktısını daha soyut bir temsile çevirir. Temel yapı taşları şunlardır:

  • Evrişim katmanı: Küçük bir filtre (çekirdek) girdinin üzerinde kayar, her konumda filtre ile altındaki değerler çarpılıp toplanır. Sonuç, filtrenin aradığı örüntünün nerede bulunduğunu gösteren bir özellik haritasıdır.
  • Aktivasyon fonksiyonu: Özellik haritasına doğrusal olmayan bir dönüşüm uygular; ağın karmaşık ilişkileri öğrenebilmesi için gereklidir.
  • Havuzlama (pooling) katmanı: Özellik haritasını küçültür, en belirgin değeri tutar. Böylece hesap yükü azalır ve ağ küçük kaymalara karşı daha dayanıklı olur.
  • Tam bağlantılı katman: Son aşamada çıkarılan özellikler bir sınıflandırma ya da regresyon çıktısına dönüştürülür.

Eğitim sırasında filtrelerin değerleri elle belirlenmez. Ağ tahmin üretir, hatayı ölçer ve geri yayılım ile filtreleri hatayı azaltacak yönde günceller. Sonunda ilk katmanlar kenar ve köşe gibi basit örüntüleri, derindeki katmanlar ise göz, tekerlek ya da yazı karakteri gibi daha karmaşık parçaları yakalar.

Küçük bir örnek: el yazısı rakam tanıma

Örneğin bir okulun sınav kâğıtlarındaki el yazısı rakamları okuyacak bir model kurulduğunu düşünelim. Girdi, her rakamın gri tonlu küçük bir görüntüsüdür. İlk evrişim katmanı yatay, dikey ve eğik çizgi parçalarını bulan filtreler öğrenir. Havuzlama bu çizgilerin yaklaşık konumunu korur ama ayrıntıyı azaltır. Sonraki evrişim katmanı bu çizgi parçalarını birleştirip halka, kanca ve kapalı döngü gibi şekilleri tanır. Son katman, bu şekillerin birleşimine bakarak görüntünün hangi rakam olduğuna karar verir.

Aynı mantık fabrikada bir parçadaki çizik tespitine, tıbbi görüntüde şüpheli bölge işaretlemeye ya da perakendede raf fotoğrafından ürün saymaya taşınır. Değişen yalnızca eğitim verisi, etiketler ve ağın derinliğidir.

CNN nerelerde kullanılır?

CNN'ler en çok görüntü ve video tabanlı işlerde kullanılır:

  • Görüntü sınıflandırma: Bir fotoğrafın hangi kategoriye girdiğini belirlemek.
  • Nesne tespiti: Görüntüde nesneleri bulup etrafına kutu çizmek.
  • Görüntü segmentasyonu: Her bir noktayı bir sınıfa atamak, örneğin tıbbi görüntüde organ sınırlarını çıkarmak.
  • Kalite kontrol: Üretim hattında kusurlu parçaları kameradan yakalamak.
  • Belge ve yazı işleme: Basılı ya da el yazısı metni okumak.

CNN yalnızca görüntüyle sınırlı değildir. Ses sinyalinin spektrogramı, zaman serisi ya da metin gibi ızgara veya dizi benzeri veriler de evrişimle işlenebilir. Ancak bu alanlarda başka mimariler de güçlü seçeneklerdir; seçim verinin yapısına göre yapılır.

CNN ile RNN ve tam bağlantılı ağ arasındaki fark

Tam bağlantılı (yoğun) bir ağda her girdi her nörona bağlanır ve konum bilgisi yapısal olarak kullanılmaz. Görüntü gibi büyük girdilerde bu hem çok fazla parametre demektir hem de komşuluk ilişkisini ağın kendisinin yeniden keşfetmesini gerektirir. CNN ise komşuluğu mimarinin içine gömer.

RNN ve LSTM gibi tekrarlayan ağlar ise veriyi sırayla okur ve önceki adımlardan bir bellek taşır; kelime dizisi ya da zaman serisi gibi sıranın önemli olduğu verilerde öne çıkar. Kısaca CNN uzaysal örüntüyü, RNN zamansal ya da sıralı bağımlılığı öne alır. Güncel uygulamalarda bu mimariler birlikte de kullanılır; örneğin bir video analizinde kareleri CNN işler, kareler arasındaki akışı sıralı bir model yorumlar.

CNN kurarken sık yapılan hatalar

  • Çok az veriyle sıfırdan eğitmek: Küçük veri kümelerinde ağ ezberler. Önceden eğitilmiş bir ağı alıp kendi verinizle ince ayar yapmak (transfer öğrenme) genellikle daha sağlam bir başlangıçtır.
  • Veri sızıntısı: Aynı nesnenin farklı fotoğraflarını hem eğitim hem test kümesine koymak, ölçümü olduğundan iyi gösterir.
  • Veri artırma yapmamak: Döndürme, kırpma ve parlaklık değişimi gibi dönüşümler modeli gerçek hayattaki çeşitliliğe hazırlar.
  • Yalnızca doğruluğa bakmak: Sınıflar dengesizse doğruluk yanıltır; duyarlılık, kesinlik ve karışıklık matrisi birlikte okunmalıdır.
  • Modelin neye baktığını incelememek: Isı haritası gibi görselleştirmelerle ağın arka plandaki bir ipucuna takılıp takılmadığı kontrol edilmelidir.

Mindset programlarında CNN

CNN konusunu uygulamalı çalışmak isteyenler için Mindset kataloğunda CNN ile Görüntü Modelleri eğitimi bulunur. Eğitimin modül başlıkları arasında Evrişimli Sinir Ağlarına Giriş, Klasik CNN Mimarileri, Görüntü Sınıflandırma Uygulamaları, Nesne Tespiti Mimarileri, Görüntü Segmentasyonu Teknikleri, Özellik Görselleştirme ve Model Açıklanabilirliği ile Üretim Ortamında Bilgisayarlı Görü Sistemleri yer alır.

İlgili Mindset programı

CNN ile Görüntü Modelleri

Sık sorulanlar

Sık sorulan sorular

CNN ile derin öğrenme aynı şey mi?

Hayır. Derin öğrenme, çok katmanlı yapay sinir ağlarıyla öğrenmeyi anlatan geniş bir çatıdır. CNN bu çatının altındaki mimarilerden biridir; görüntü gibi ızgara verilere uygunluğu ile öne çıkar. Tekrarlayan ağlar ve dikkat mekanizmasına dayanan modeller de aynı çatının içinde, farklı veri yapıları için geliştirilmiş mimarilerdir.

Filtre ve çekirdek aynı kavram mı?

Evet, bağlam içinde genellikle aynı anlamda kullanılır. Filtre ya da çekirdek, girdinin üzerinde kayan küçük ağırlık matrisidir. Her filtre belirli bir örüntüyü arar; bir katmanda çok sayıda filtre bulunur ve her biri ayrı bir özellik haritası üretir. Filtre değerleri eğitim sürecinde öğrenilir, elle yazılmaz.

CNN için mutlaka çok güçlü bir bilgisayar gerekir mi?

Büyük modelleri sıfırdan eğitmek için grafik işlemci (GPU) neredeyse zorunludur. Ancak küçük ağları öğrenme amacıyla eğitmek ya da hazır bir modeli ince ayarlamak, bulut ortamlarında sunulan ücretsiz ya da düşük maliyetli hesaplama kaynaklarıyla da yapılabilir. Hazır modelle çıkarım yapmak ise genellikle çok daha hafif bir iştir.

Transformer modelleri CNN'in yerini aldı mı?

Tam olarak değil. Görüntü alanında dikkat mekanizmasına dayanan modeller yaygınlaştı, ancak CNN'ler verimli, iyi anlaşılmış ve uç cihazlarda çalıştırması kolay olduğu için hâlâ yoğun kullanılır. Pratikte seçim; veri miktarına, gecikme beklentisine ve donanıma göre yapılır, bu yaklaşımlar karma mimarilerde birlikte de görülür.

CNN öğrenmeye nereden başlanmalı?

Önce temel yapay sinir ağı mantığı ve Python ile bir derin öğrenme kütüphanesi öğrenilir. Ardından basit bir veri kümesinde küçük bir CNN eğitilir, katman ekleyip çıkararak sonuca etkisi gözlenir. Sonraki adım, hazır bir ağı kendi verinize uyarlamak ve ağın hatalarını inceleyerek veri sorunlarını bulmaktır.

CNN (Evrişimli Sinir Ağı) Nedir, Nasıl Çalışır?