Evrişimli sinir ağı, özellikle görüntü gibi düzenli ızgara yapısına sahip verilerde önemli örüntüleri otomatik öğrenen bir derin öğrenme modelidir. Bir görüntüyü doğrudan tek parça olarak değerlendirmek yerine küçük bölgelere bakar; kenar, köşe ve doku gibi basit özellikleri bulur, sonraki katmanlarda bu özellikleri birleştirerek nesne veya sınıf tahmini üretir. Sonuçta model, örneğin bir görüntünün kedi içerip içermediğini olasılık olarak bildirebilir; ancak bu sonuç modelin eğitim verisine, görüntü kalitesine ve problem tanımına bağlıdır.
Modelin temel parçası, görüntü üzerinde kayan küçük bir sayı matrisi olan filtredir. Bu filtre, görüntünün küçük bir bölgesiyle çarpılıp toplanarak yeni bir değer üretir. Filtre görüntü üzerinde ilerledikçe ortaya çıkan değerler, belirli bir özelliğin hangi bölgelerde bulunduğunu gösteren özellik haritasını oluşturur.
Örneğin gri tonlu bir görüntüde dikey kenarları arayan varsayımsal bir filtre, soldan sağa koyu-açık-koyu geçişlerinin bulunduğu bölgelerde yüksek değerler üretebilir. Bu, modelin görüntüde dikey bir kenar bulunduğunu öğrenmesine yardımcı olur. Gerçek modellerde filtre değerleri önceden elle verilmez; eğitim sırasında, tahmin hatasını azaltacak biçimde öğrenilir.
İlk evrişim katmanları genellikle kenar ve basit çizgi gibi düşük seviyeli özellikleri yakalar. Daha sonraki katmanlar bu parçaları birleştirerek köşe, şekil, göz veya tekerlek gibi daha karmaşık özellikleri temsil edebilir. Son katmanlar ise bu bilgiyi sınıf tahmini, nesne konumu veya başka bir çıktıya dönüştürür.
Varsayımsal olarak 28 × 28 piksellik el yazısı rakam görüntülerini sınıflandıran bir model düşünün. Girdi, her pikselin parlaklığını içeren 28 × 28 boyutlu bir matristir. Evrişim katmanı bu matrisi küçük filtrelerle tarar ve rakamın çizgilerini çıkarır. Havuzlama katmanı kullanılıyorsa özellik haritasını daha küçük bir boyuta indirerek baskın bilgiyi korumaya çalışır. Sonraki katmanlar çizgileri bir rakam biçimi olarak birleştirir.
Modelin çıktısı örneğin şu olasılıkları verebilir: 0 için yüzde 1, 1 için yüzde 3, 2 için yüzde 4, 3 için yüzde 86 ve diğer sınıflar için toplam yüzde 6. Bu durumda modelin seçtiği sınıf 3'tür. Bu değer, görüntünün kesin olarak 3 olduğunu kanıtlamaz; yalnızca modelin öğrendiği örüntülere göre en yüksek tahminin 3 olduğunu gösterir. Görüntü bulanıksa, rakam alışılmadık yazılmışsa veya eğitim verisinde benzer örnekler azsa tahmin hatalı olabilir.
Evrişimli sinir ağlarında sık görülen bileşenler farklı görevler üstlenir:
CNN'ler görüntü sınıflandırma, nesne algılama, görüntü bölütleme, yüzey kusuru inceleme ve bazı ses ya da zaman serisi uygulamalarında kullanılabilir. Bunun nedeni, komşu değerler arasındaki yerel ilişkileri ve aynı özelliğin farklı konumlardaki tekrarını verimli biçimde değerlendirmeleridir.
Buna karşılık CNN kendiliğinden doğru etiketleri, yeterli eğitim verisini veya gerçek dünyadaki tüm koşulları sağlamaz. Eğitim verisi dengesizse bazı sınıfları daha iyi tanıyabilir; görüntü açısı, ışık, çözünürlük veya arka plan değiştiğinde başarımı düşebilir. Modelin yüksek güvenle tahmin yapması da sonucun kesinlikle doğru olduğu anlamına gelmez.
Bir projede CNN kullanmayı değerlendirirken önce girdinin görüntü veya benzeri düzenli bir yapı taşıyıp taşımadığını, etiketli eğitim verisinin bulunup bulunmadığını ve yanlış tahminin maliyetini belirleyin. Ardından veriyi eğitim, doğrulama ve test bölümlerine ayırıp yalnızca eğitim verisiyle öğrenen, test verisiyle ise daha önce görmediği örneklerdeki başarımı ölçen bir değerlendirme düzeni kurun. Böylece modelin yalnızca eğitim örneklerini ezberleyip ezberlemediği daha doğru anlaşılır.
Evrişim işlemi nasıl çalışır?
Modelin temel parçası, görüntü üzerinde kayan küçük bir sayı matrisi olan filtredir. Bu filtre, görüntünün küçük bir bölgesiyle çarpılıp toplanarak yeni bir değer üretir. Filtre görüntü üzerinde ilerledikçe ortaya çıkan değerler, belirli bir özelliğin hangi bölgelerde bulunduğunu gösteren özellik haritasını oluşturur.
Örneğin gri tonlu bir görüntüde dikey kenarları arayan varsayımsal bir filtre, soldan sağa koyu-açık-koyu geçişlerinin bulunduğu bölgelerde yüksek değerler üretebilir. Bu, modelin görüntüde dikey bir kenar bulunduğunu öğrenmesine yardımcı olur. Gerçek modellerde filtre değerleri önceden elle verilmez; eğitim sırasında, tahmin hatasını azaltacak biçimde öğrenilir.
İlk evrişim katmanları genellikle kenar ve basit çizgi gibi düşük seviyeli özellikleri yakalar. Daha sonraki katmanlar bu parçaları birleştirerek köşe, şekil, göz veya tekerlek gibi daha karmaşık özellikleri temsil edebilir. Son katmanlar ise bu bilgiyi sınıf tahmini, nesne konumu veya başka bir çıktıya dönüştürür.
Bir görüntü örneği üzerinden
Varsayımsal olarak 28 × 28 piksellik el yazısı rakam görüntülerini sınıflandıran bir model düşünün. Girdi, her pikselin parlaklığını içeren 28 × 28 boyutlu bir matristir. Evrişim katmanı bu matrisi küçük filtrelerle tarar ve rakamın çizgilerini çıkarır. Havuzlama katmanı kullanılıyorsa özellik haritasını daha küçük bir boyuta indirerek baskın bilgiyi korumaya çalışır. Sonraki katmanlar çizgileri bir rakam biçimi olarak birleştirir.
Modelin çıktısı örneğin şu olasılıkları verebilir: 0 için yüzde 1, 1 için yüzde 3, 2 için yüzde 4, 3 için yüzde 86 ve diğer sınıflar için toplam yüzde 6. Bu durumda modelin seçtiği sınıf 3'tür. Bu değer, görüntünün kesin olarak 3 olduğunu kanıtlamaz; yalnızca modelin öğrendiği örüntülere göre en yüksek tahminin 3 olduğunu gösterir. Görüntü bulanıksa, rakam alışılmadık yazılmışsa veya eğitim verisinde benzer örnekler azsa tahmin hatalı olabilir.
CNN'nin temel parçaları
Evrişimli sinir ağlarında sık görülen bileşenler farklı görevler üstlenir:
- Evrişim katmanı: Görüntüdeki yerel özellikleri filtrelerle çıkarır.
- Etkinleştirme işlevi: Modelin doğrusal olmayan ilişkileri öğrenmesini sağlar. ReLU bunun yaygın örneklerinden biridir.
- Havuzlama katmanı: Özellik haritalarının boyutunu azaltabilir ve baskın bilgiyi koruyabilir.
- Tam bağlantılı katman: Çıkarılan özellikleri sınıflandırma veya başka bir tahmin için birleştirir.
- Çıkış katmanı: Problemin türüne göre sınıf olasılıkları, sayısal değer veya başka bir çıktı üretir.
Ne zaman kullanılır, neyi sağlamaz?
CNN'ler görüntü sınıflandırma, nesne algılama, görüntü bölütleme, yüzey kusuru inceleme ve bazı ses ya da zaman serisi uygulamalarında kullanılabilir. Bunun nedeni, komşu değerler arasındaki yerel ilişkileri ve aynı özelliğin farklı konumlardaki tekrarını verimli biçimde değerlendirmeleridir.
Buna karşılık CNN kendiliğinden doğru etiketleri, yeterli eğitim verisini veya gerçek dünyadaki tüm koşulları sağlamaz. Eğitim verisi dengesizse bazı sınıfları daha iyi tanıyabilir; görüntü açısı, ışık, çözünürlük veya arka plan değiştiğinde başarımı düşebilir. Modelin yüksek güvenle tahmin yapması da sonucun kesinlikle doğru olduğu anlamına gelmez.
Bir projede CNN kullanmayı değerlendirirken önce girdinin görüntü veya benzeri düzenli bir yapı taşıyıp taşımadığını, etiketli eğitim verisinin bulunup bulunmadığını ve yanlış tahminin maliyetini belirleyin. Ardından veriyi eğitim, doğrulama ve test bölümlerine ayırıp yalnızca eğitim verisiyle öğrenen, test verisiyle ise daha önce görmediği örneklerdeki başarımı ölçen bir değerlendirme düzeni kurun. Böylece modelin yalnızca eğitim örneklerini ezberleyip ezberlemediği daha doğru anlaşılır.