İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
DersBaşlangıç35 dakikaComputer Vision Engineer · 2. ders

Evrişim, havuzlama ve alıcı alan

Evrişimin görüntü için neden doğru varsayılan olduğunu, alıcı alanın katman yığınında nasıl büyüdüğünü ve mimari ailelerinin hangi baskıya cevap verdiğini öğretir.

Önkoşul: Computer Vision

BU DERSİN SONUNDA

  • Tam bağlı katman ile evrişim katmanını parametre ve varsayım açısından ayırt etmek
  • Bir katman yığınının alıcı alanını ve adım aralığını hesaplamak
  • Havuzlama, adımlı evrişim ve genişletilmiş evrişim arasında seçim yapmak
  • Omurga derinliğini hedef nesne boyutuna ve bütçeye göre gerekçelendirmek
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Evrişim, aynı küçük ağırlık kümesini görüntünün her konumunda yeniden uygulamaktır. Bu, iki varsayımı doğrudan mimariye gömer: anlamlı örüntüler yereldir ve nerede göründüklerinden bağımsız olarak aynıdır. Kazanç parametre ekonomisi ve konum kaymasına dayanıklılık; bedeli, bir katmanın yalnızca sınırlı bir komşuluğu görebilmesidir. Alıcı alan bu sınırın adıdır ve tasarımın çoğu kararı onun etrafında döner.

Teori: ağırlık paylaşımı ne satın alır?#

Tam bağlı bir katman her piksel için ayrı ağırlık tutar: parametre sayısı görüntü boyutuyla birlikte büyür ve sol üstte görülen bir kenar ile sağ altta görülen aynı kenar birbirinden bağımsız olarak öğrenilir. Evrişim bunun yerine k×k×giriş_kanalı×çıkış_kanalı kadar ağırlık tutar; bu sayı girdi çözünürlüğünden bağımsızdır. Aynı süzgeç her konumda gezdiği için tek bir örüntü tek bir kez öğrenilir.

Sık karıştırılan iki kavramı ayırmak gerekir. Evrişim kaymaya eşdeğişimlidir: girdi kayarsa çıktı haritası da aynı miktarda kayar; yani konum bilgisi silinmez, çıktıya taşınır. Kaymaya değişmezlik, yani nesne nerede olursa olsun aynı kararın üretilmesi, evrişimden değil havuzlama ve özellikle sonda gelen global havuzlamadan gelir. Sınıflandırma başında değişmezlik istenir; tespit ve segmentasyonda ise konum bilgisini erken harcamamak gerekir.

Alıcı alan nasıl büyür?#

Alıcı alan, çıkış haritasındaki bir hücrenin girdide baktığı kenar uzunluğudur ve tanımdan çıkan basit bir özyinelemeyle hesaplanır: her katman alıcı alanı (etkin çekirdek − 1) × o ana kadarki adım aralığı kadar büyütür, adım aralığı ise katmanın adımıyla çarpılır. Genişletilmiş (dilated) evrişimde etkin çekirdek, genişletme × (çekirdek − 1) + 1 olur. Bu yüzden adım artırmak sonraki bütün katmanların etkisini büyütür; ucuz görünen bir kararın alıcı alana etkisi bileşiktir.

python
def alici_alan(katmanlar):
    """katmanlar: [(cekirdek, adim, genisletme), ...] girdiden cikisa dogru."""
    r, j = 1, 1              # r: alici alan, j: girdideki adim araligi
    izleme = []
    for cekirdek, adim, genisletme in katmanlar:
        etkin = genisletme * (cekirdek - 1) + 1
        r = r + (etkin - 1) * j
        j = j * adim
        izleme.append((r, j))
    return izleme


# Uc adet 3x3 evrisim ve arada 2x2 havuzlama:
alici_alan([(3, 1, 1), (3, 1, 1), (2, 2, 1), (3, 1, 1)])
# -> [(3, 1), (5, 1), (6, 2), (10, 2)]  : son katmanda 10 piksel, adim araligi 2

Yapı taşları ve bedelleri#

Yapı taşıAlıcı alana etkisiÇözünürlüğe etkisiBedeli
3×3 evrişim, adım 1O ana kadarki adım aralığının iki katı kadar büyütür; adım aralığı 1 iken bu iki pikseldirUygun dolguyla değişmezAlıcı alanı büyütmek çok sayıda katman ister
Adım 2 evrişimSonraki bütün katmanların katkısını ikiye katlarYarıya inerKonum çözünürlüğü geri alınamaz biçimde seyrelir
2×2 maksimum havuzlamaAdımlı evrişimle aynı ölçek etkisiYarıya inerÖğrenilen ağırlık yoktur; neyin atılacağına sabit bir kural karar verir
Genişletilmiş evrişimParametre eklemeden çekirdeği seyrek biçimde genişletirDeğişmezÖrnekleme seyrek olduğu için ızgara deseni artefaktı üretebilir
1×1 evrişimEtkisi yokturDeğişmezYalnızca kanalları karıştırır; uzamsal bağlam eklemez
Global ortalama havuzlamaTüm haritayı kapsarTek hücreye inerKonum bilgisi tamamen düşer; sınıflandırma başı için uygun, yoğun görev için değil

Mimari aileleri#

  • Düz yığın: aynı blok arka arkaya. Okuması kolaydır; derinlik arttıkça eniyileme zorlaşır ve eğitim kararsızlaşır.
  • Artık bağlantı: blok çıktısına girdinin kendisi eklenir. Katmanın öğrenmesi gereken şey tüm dönüşüm değil ondan sapma olur, gradyan derin yığında daha rahat yol bulur.
  • Darboğaz bloğu: 1×1 ile kanalı düşür, 3×3 ile uzamsal işi yap, 1×1 ile geri genişlet. Aynı derinliği belirgin biçimde daha az çarpımla kurar.
  • Derinlik-ayrık evrişim: uzamsal süzme ile kanal karıştırmayı iki ayrı adıma böler. Çarpım sayısı düşer, ancak bellek erişimi baskın hale geldiği için kazanç donanıma göre değişir.
  • Çok ölçekli birleştirme: farklı çözünürlükteki haritaları birleştirir; küçük ve büyük nesnelerin aynı ağda ele alınmasını sağlar.

Karar: omurga nasıl seçilir#

  1. 1Hedefin piksel boyutunu çıkarın

    Ele alacağınız en küçük nesnenin, girdi çözünürlüğüne ölçeklendiğinde kaç piksel kenara sahip olduğunu kendi verinizden ölçün.

  2. 2Gereken alıcı alanı belirleyin

    Karar bağlam istiyorsa (nesne ancak çevresiyle birlikte anlaşılıyorsa) alıcı alan nesneden belirgin biçimde büyük olmalıdır.

  3. 3Büyütme yolunu seçin

    Alıcı alanı büyütmenin üç yolu vardır: katman eklemek, adım artırmak, genişletme kullanmak. Adım artırmak en ucuzudur ama konum çözünürlüğünü harcar.

  4. 4Bütçeyi sayıya dökün

    Bellek, gecikme ve eğitim süresi sınırlarını önceden yazın; mimari seçimi bu sınırların altında kalan adaylar arasında yapılır.

  5. 5Veri miktarına bakın

    Az etiketli veride, güçlü yerleşik varsayımı olan ve önceden eğitilmiş ağırlığı bulunan bir omurga, kapasitesi yüksek ama varsayımı zayıf bir mimariden daha güvenlidir.

Sık yapılan hata#

En sık görülen yapısal hata, kararın verildiği katmanın alıcı alanının hedeften küçük kalmasıdır: ağ nesneyi bir bütün olarak hiç görmeden sınıflandırmaya çalışır ve doku benzerliğine takılır. İkinci hata, derinliği kör bir iyileştirme sanmaktır; derinlik alıcı alanı ve soyutlamayı büyütür ama eniyileme zorluğunu ve aşırı uyum riskini de büyütür. Üçüncüsü toplu normalleştirme katmanını çıkarımda eğitim kipinde bırakmaktır: istatistik toplu işten hesaplanmaya devam eder ve aynı görüntü, yanındaki görüntülere göre farklı sonuç verir.

LAB · UYGULAMALI ALIŞTIRMA

Kendi omurga taslağınızın alıcı alanını çıkarın

  1. 1Kullanmayı düşündüğünüz katman yığınını (çekirdek, adım, genişletme) üçlüleri hâlinde bir listeye yazın.
  2. 2Yukarıdaki fonksiyonla her katmandan sonraki alıcı alanı ve adım aralığını hesaplayıp tabloya dökün.
  3. 3Kendi görüntülerinizden en az 10 tanesinde, ayırt etmek istediğiniz en küçük nesnenin kenar uzunluğunu piksel cinsinden ölçün ve hedef girdi çözünürlüğünüze ölçekleyin.
  4. 4Nesne boyutu dağılımını tablodaki alıcı alan değerleriyle karşılaştırın: kararın verildiği katman nesneyi ve çevresini kapsıyor mu, işaretleyin.
  5. 5Kapsamıyorsa üç büyütme yolunu ayrı ayrı uygulayıp tabloyu yeniden çıkarın ve her birinin çözünürlüğe ne kaybettirdiğini yanına yazın.

Beklenen çıktı

Katman katman alıcı alan tablosu ve kendi nesne boyutu dağılımınıza dayanan, yazılı gerekçeli bir omurga derinliği ile adım kararı.

Sık sorulan sorular

Havuzlama yerine adımlı evrişim mi kullanmalıyım?

İkisi de çözünürlüğü aynı oranda düşürür; fark, neyin atılacağına kimin karar verdiğidir. Havuzlamada kural sabittir (en büyüğünü al, ortalamasını al) ve öğrenilecek parametre yoktur. Adımlı evrişimde seçim öğrenilir, karşılığında parametre ve hesap eklenir. Küçük veride sabit kural daha güvenli, bol veride öğrenilen indirgeme genellikle daha esnektir.

Alıcı alan yeterliyse daha derin ağa gerek var mı?

Alıcı alan yalnızca uzamsal erişimi ölçer, soyutlama derinliğini değil. Aynı alıcı alanı tek bir büyük çekirdekle de kurabilirsiniz ama araya giren doğrusal olmayan katmanlar olmadan ağ, kenarların birleşiminden parça, parçaların birleşiminden nesne kuran hiyerarşiyi öğrenemez. Derinlik erişim için değil, bileşim için gereklidir.

Girdi çözünürlüğünü artırmak mı kolay, mimariyi derinleştirmek mi?

Çözünürlüğü artırmak nesneyi piksel olarak büyütür ama aynı anda alıcı alanı nesneye göre görece küçültür ve hesap piksel sayısıyla birlikte artar. Yani çözünürlük tek başına bir çözüm değildir; küçük nesne sorununda çoğu zaman çözünürlük artışı ile alıcı alan ayarı birlikte yapılmalıdır.

LEARN

Computer Vision Engineer rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.