Derin öğrenme alanında evrişim nedir ve kaç tür vardır?

Bu makalenin içeriği

1. Evrişim ve Çapraz Korelasyon

2. Derin öğrenmede evrişim (tek kanallı sürüm, çok kanallı sürüm)

3. 3D Evrişim

4. 1 × 1 Evrişim

5. Evrişim Aritmetiği

6. Yer değiştirmiş evrişim (ters evrişim, dama tahtası etkisi)

7. Dilate Evrişim

8. Ayrı evrişim (boşlukla ayrılabilir evrişim, derinlikle ayrılabilir evrişim)

9. Evrişimi Düzleştir

10. Gruplanmış evrişim

11. Karışık grup evrişimi

12. Noktadan noktaya gruplama evrişimi

Bir, evrişim ve çapraz korelasyon

Sinyal işleme, görüntü işleme ve diğer mühendislik / bilim alanlarında, evrişim yaygın olarak kullanılan bir tekniktir. Derin öğrenme alanında, evrişimli sinir ağı (CNN) model mimarisi bu teknolojinin adını almıştır. Bununla birlikte, derin öğrenme alanındaki evrişim, esas olarak sinyal / görüntü işleme alanında bir çapraz korelasyondur. Bu iki işlem arasında ince farklar vardır.

Ayrıntılara çok fazla girmeden farkı görebiliriz. Sinyal / görüntü işleme alanında evrişimin tanımı şöyledir:

Tanımı, ters çevirme ve yer değiştirmeden sonra iki fonksiyondan birinin çarpılmasıyla elde edilen çarpımın integralidir. Aşağıdaki görselleştirme bu fikri göstermektedir:

Sinyal işlemede evrişim. Filtre g ters çevrilir ve ardından yatay eksen boyunca kayar. Her konumda, f ile ters çevrilmiş g arasındaki kesişen alanın alanını hesaplıyoruz. Bu kesişen alanın alanı, belirli bir konumdaki evrişim değeridir.

Burada g fonksiyonu bir filtredir. Ters çevrildikten sonra yatay eksen boyunca kayar. Her konumda, f ile ters çevrilmiş g arasındaki kesişen alanın alanını hesaplıyoruz. Bu kesişen alanın alanı, belirli bir konumdaki evrişim değeridir.

Öte yandan çapraz korelasyon, kayan nokta çarpımı veya kayan iç çarpımı iki işlev arasında gösterir. Çapraz korelasyondaki filtre tersine çevrilmez, ancak doğrudan f fonksiyonu üzerinden kayar. F ve g arasındaki kesişme alanı çapraz korelasyondur. Aşağıdaki şekil, evrişim ve çapraz korelasyon arasındaki farkı göstermektedir.

Sinyal işlemede evrişim ve çapraz korelasyon arasındaki fark

Derin öğrenmede, evrişimdeki filtreler tersine çevrilmez. Açıkçası, bu çapraz korelasyondur. Esasen element bazında çarpma ve toplama yapıyoruz. Ancak derin öğrenmede, buna doğrudan evrişim demek daha uygundur. Bu bir problem değildir, çünkü filtrenin ağırlığı eğitim aşamasında öğrenilir. Yukarıdaki örnekte ters çevirme işlevi g doğru işlevse, eğitimden sonra öğrenilen filtre, evirme işlevi g gibi görünecektir. Bu nedenle, eğitimden önce, gerçek evrişimde olduğu gibi filtreyi ilk önce ters çevirmek gerekli değildir.

İki, 3D evrişim

Bir önceki bölümdeki açıklamada, aslında 3 boyutlu bir cilt üzerinde evrişim yaptığımızı gördük. Ancak genel olarak konuşursak, derin öğrenmede buna hala 2B evrişim diyoruz. Bu, 3B hacim verilerinde 2B evrişimdir. Filtre derinliği, giriş katmanı derinliğiyle aynıdır. Bu 3B filtre yalnızca iki yönde hareket eder (görüntünün yüksekliği ve genişliği). Bu işlemin çıktısı 2B bir resimdir (yalnızca bir kanal).

Doğal olarak, 3B evrişim mevcuttur. Bu, 2D evrişimin bir genellemesidir. Aşağıda 3B evrişim verilmiştir, filtre derinliği giriş katmanı derinliğinden (çekirdek boyutu < Kanal boyutu). Bu nedenle, 3D filtre her üç yönde de (görüntü yüksekliği, genişlik, kanal) hareket ettirilebilir. Her konumda, eleman bazında çarpma ve toplama bir değer sağlar. Filtre bir 3B alanda kaydığı için, çıktı değerleri de 3B alanda düzenlenir. Başka bir deyişle, çıktı bir 3B veridir.

3B evrişimde, 3B filtre her üç yönde de (görüntü yüksekliği, genişlik, kanal) hareket ettirilebilir. Her konumda, eleman bazında çarpma ve toplama bir değer sağlar. Filtre bir 3B alanda kaydığı için, çıktı değerleri de 3B alanda düzenlenir. Başka bir deyişle, çıktı bir 3B veridir.

2D evrişime benzer şekilde (2D etki alanındaki hedeflerin uzamsal ilişkisini kodlayan), 3D evrişim, 3D uzaydaki hedeflerin uzamsal ilişkisini tanımlayabilir. Bazı uygulamalar için (biyomedikal görüntülemede 3D segmentasyon / rekonstrüksiyon gibi), böyle bir 3D ilişki çok önemlidir.Örneğin, CT ve MRI'da, kan damarları gibi nesneler 3D uzayda dolanacaktır.

Üç, yer değiştirmiş evrişim (ters evrişim)

Birçok ağ mimarisinin birçok uygulaması için, genellikle normal evrişim yönünün tersi dönüşümler gerçekleştirmemiz gerekir, yani yukarı örnekleme yapmak istiyoruz. Örnekler arasında, yüksek çözünürlüklü görüntülerin oluşturulması ve düşük boyutlu özellik haritalarının, otomatik kodlayıcılar veya şekil algılama segmentasyonu gibi yüksek boyutlu alanlarla eşleştirilmesi yer alır. (İkinci örnekte, Xingyi segmentasyonu ilk olarak kodlayıcıdaki özellik haritasını çıkaracak ve ardından orijinal görüntüdeki her pikseli sınıflandırabilmesi için kod çözücüdeki orijinal görüntü boyutunu geri yükleyecektir.)

Yukarı örneklemeye ulaşmanın geleneksel yolu, enterpolasyon şemaları uygulamak veya manuel olarak kurallar oluşturmaktır. Sinir ağları gibi modern mimariler, ağın uygun dönüşümleri insan müdahalesi olmadan otomatik olarak öğrenmesine izin verme eğilimindedir. Bunu yapmak için, aktarılmış evrişimi kullanabiliriz.

Yer değiştirmiş evrişime, literatürde ters evrişim veya fraksiyonel aşamalı evrişim de denir. Bununla birlikte, "ters evrişim" adının çok uygun olmadığı belirtilmelidir, çünkü çevrilmiş evrişim, sinyal / görüntü işleme alanında tanımlanan gerçek ters evrişim türü değildir. Teknik olarak, sinyal işlemede ters evrişim, evrişimin tersidir. Ancak buradaki hesaplama bu değil. Bu nedenle, bazı yazarlar ters çevrilmiş evrişimi ters evrişim olarak adlandırmaya şiddetle karşı çıkıyorlar. İnsanlar buna ters evrişim diyorlar çünkü söylemesi basit. Daha sonra bu işleme yer değiştirmiş evrişim demenin neden daha doğal ve daha uygun olduğunu açıklayacağız.

Yer değiştirmiş evrişime ulaşmak için her zaman doğrudan evrişimi kullanabiliriz. Aşağıdaki şekildeki örnek için, 2 × 2 girişe 3 × 3 çekirdek aktarılmış evrişim uyguluyoruz (2 × 2 birim adım sıfır dolgusu eklendi). Yukarı örneklenmiş çıktının boyutu 4 × 4'tür.

2 × 2 girişini 4 × 4 çıkışa örnekleyin

İlginç bir şekilde, çeşitli dolgu ve adım boyutları uygulayarak, aynı 2 × 2 giriş görüntüsünü farklı görüntü boyutlarıyla eşleştirebiliriz. Aşağıda, aynı 2 × 2 girişinde transpoze evrişim kullanılır (girişler arasına sıfır eklenir ve etrafına 2 × 2 birim adım sıfır dolgusu eklenir) ve elde edilen çıktının boyutu 5 × 5'tir. .

2 × 2 girişini 5 × 5 çıkışa örnekleyin

Yukarıdaki örnekte yer değiştirmiş evrişimi gözlemlemek, sezgisel bir anlayış geliştirmemize yardımcı olabilir. Ancak uygulamasını genelleştirmek için bilgisayar matris çarpımı ile nasıl uygulanabileceğini anlamakta fayda var. Bu noktadan da "aktarılmış evrişim" in neden uygun isim olduğunu görebiliriz.

Evrişimde, C'yi evrişim çekirdeği, Giriş görüntüsü olarak Büyük ve çıktı görüntüsü olarak Küçük olarak tanımlarız. Evrişimden (matris çarpımı) sonra, büyük görüntüyü küçük bir görüntü olarak altörnekledik. Bu matris çarpımının evrişiminin gerçekleşmesi şu şekildedir: C x Büyük = Küçük.

Aşağıdaki örnek, bu hesaplamanın nasıl çalıştığını göstermektedir. Girişi 16 × 1 matrise düzleştirir ve evrişim çekirdeğini seyrek bir matrise (4 × 16) dönüştürür. Daha sonra, seyrek matris ile düz girdi arasında matris çarpımı kullanılır. Bundan sonra, ortaya çıkan matris (4 × 1) 2 × 2 çıktıya dönüştürülür.

Evrişimin matris çarpımı: Büyük girdi görüntüsünü (4 × 4) Küçük çıktı görüntüsüne (2 × 2) dönüştürün

Şimdi, matrisin transpoze CT'sini denklemin her iki tarafında çarparsak ve "bir matris ve onun transpoze matrisi" özelliğini kullanarak bir özdeşlik matrisi elde edersek, CT x Küçük = Büyük formülünü elde edebiliriz, Aşağıda gösterildiği gibi.

Evrişim matris çarpımı: Küçük girdi görüntüsünü (2 × 2) Büyük çıktı görüntüsüne (4 × 4) dönüştürün

Burada görebileceğiniz gibi, küçük resimlerden büyük görüntülere kadar örnekleme yaptık. Bu tam olarak başarmak istediğimiz şey. Şu anda. "Yer değiştirmiş evrişim" adının kökenini biliyorsunuz.

Dördüncü, genişletilmiş evrişim (Atrous evrişim)

Genişlemiş evrişim aşağıdaki gibidir:

L = 1 olduğunda, genişletilmiş evrişim, standart evrişim ile aynı olacaktır.

Genişlemiş evrişim

Sezgisel olarak konuşursak, genişlemiş evrişim, çekirdek elemanlar arasına boşluklar ekleyerek çekirdeği "şişirmektir". Yeni eklenen l parametresi (genişletme oranı) çekirdeği ne kadar genişletmek istediğimizi gösterir. Spesifik uygulama değişebilir, ancak genellikle çekirdek elemanlar arasına 1-1 boşlukları eklenir. Aşağıdaki, l = 1, 2, 4 olduğunda çekirdek boyutunu gösterir.

Evrişimin alıcı alanını genişletin. Temel olarak, ek maliyetler eklemeden daha geniş bir alıcı alanımız olabilir.

Bu görüntüde, 3x3 kırmızı noktalar, evrişimden sonra çıktı görüntüsünün 3x3 piksel olduğunu gösterir. Her üç genişletilmiş evrişimin çıktıları aynı boyutta olmasına rağmen, model tarafından gözlemlenen alıcı alanlar oldukça farklıdır. L = 1 olduğunda alıcı alan 3 × 3'tür ve l = 2 olduğunda 7 × 7'dir. L = 3 olduğunda, alıcı alanın boyutu 15 × 15'e çıkar. İlginç bir şekilde, bu işlemlerle ilişkili parametrelerin sayısı eşittir. Ek maliyet olmadan daha büyük alıcı alanı "gözlemliyoruz". Bu nedenle, genişlemiş evrişim, çekirdek boyutunu arttırmadan çıktı biriminin alıcı alanını ucuz bir şekilde artırmak için kullanılabilir, bu özellikle çok sayıda genişlemiş evrişim birbiri üzerine istiflendiğinde etkilidir.

"Genişletilmiş evrişimlerle çok ölçekli bağlam kümelemesi" başlıklı makalenin yazarı, çok sayıda genişlemiş evrişimli katmana sahip bir ağ kurdu, burada genişleme hızı l her katmanda üstel olarak artar. Bu nedenle, etkili alıcı alan boyutu katmanla birlikte üssel olarak artarken, parametre sayısı yalnızca doğrusal olarak artar.

Bu makaledeki genişletilmiş evrişimin rolü, çözünürlüğü kaybetmeden birden çok bağlamsal bilgi oranını sistematik olarak bir araya getirmektir. Bu makale, önerilen modülün o sırada (2016) mevcut en iyi biçim ve anlam segmentasyon sisteminin doğruluğunu geliştirebileceğini göstermektedir. Daha fazla bilgi için lütfen bu kağıda bakın.

Beş, ayrılabilir evrişim

Bazı sinir ağı mimarileri, MobileNets gibi ayrılabilir evrişimler kullanır. Ayrılabilir evrişim, uzamsal olarak ayrılabilir evrişime ve derinlikle ayrılabilir evrişime sahiptir.

1. Uzamsal olarak ayrılabilir evrişim

Uzamsal olarak ayrılabilir evrişim, görüntünün 2D uzamsal boyutları, yani yükseklik ve genişlik üzerinde çalışır. Kavramsal olarak, uzamsal olarak ayrılabilir evrişim, bir evrişimin iki ayrı işlem halinde çözümüdür. Aşağıdaki örnek için, 3 × 3 Sobel çekirdeği 3 × 1 çekirdek ve 1 × 3 çekirdeğe bölünmüştür.

Sobel çekirdeği 3x1 ve 1x3 çekirdek olarak bölünebilir

Evrişimde, 3x3 çekirdek, görüntü ile doğrudan kıvrılır. Uzamsal olarak ayrılabilir evrişimde, 3 × 1 çekirdek önce görüntü ile birleştirilir ve ardından 1 × 3 çekirdek uygulanır. Bu şekilde aynı işlemi gerçekleştirmek için 9 yerine sadece 6 parametreye ihtiyaç duyulur.

Ek olarak, uzamsal olarak ayrılabilir evrişim kullanılırken daha az matris çarpımı gerekir. Spesifik bir örnek vermek gerekirse, 5 × 5 bir görüntünün 3 × 3 çekirdek (adım = 1, dolgu = 0) ile evrişimi, çekirdeğin yatay olarak 3 konumda (ve 3 dikey konumda) taranmasını gerektirir. Aşağıdaki şekilde noktalar olarak gösterilen toplam 9 pozisyon vardır. Her pozisyonda, 9 element bazlı çarpma uygulanır. Toplam 9 × 9 = 81 çarpımdır.

1 kanallı standart evrişim

Öte yandan, uzamsal olarak ayrılabilir evrişim için, önce 5 × 5 görüntü üzerine 3 × 1 filtre uygularız. Bu tür çekirdekleri yatayda 5, dikeyde 3 konumda tarayabiliyoruz. Toplam, aşağıdaki şekilde noktalar olarak gösterilen 5 × 3 = 15 konumdur. Her pozisyonda 3 element bazlı çarpım uygulanır. Toplam 15 × 3 = 45 çarpımdır. Şimdi 3 × 5 matrisimiz var. Bu matris daha sonra 1 × 3 çekirdek ile çevrilir, yani matris yatay olarak 3 konumda ve dikey olarak 3 konumda taranır. Bu 9 konumun her biri için 3 eleman bazında çarpım uygulanır. Bu adım, 9 × 3 = 27 çarpım gerektirir. Bu nedenle, genel olarak, uzamsal olarak ayrılabilir evrişim, sıradan evrişimden daha az olan 45 + 27 = 72 çarpma gerektirir.

1 kanallı mekansal olarak ayrılabilir evrişim

Yukarıdaki örneği biraz genelleyelim. Şimdi bir N × N görüntüye evrişim uyguladığımızı varsayalım, evrişim çekirdeği m × m, adım 1 ve dolgu 0. Geleneksel evrişim (N-2) x (N-2) xmxm çarpımları gerektirir ve uzamsal olarak ayrılabilir evrişim N x (N-2) xm + (N-2) x (N-2) xm = (2N- 2) x (N-2) xm çarpımı. Uzamsal olarak ayrılabilir evrişim ve standart evrişimin hesaplama maliyeti oranı:

Görüntü boyutu N, filtre boyutundan (N > > m), yani bu oran 2 / m olur. Başka bir deyişle, bu ilerleyen durumda (N > > M) altında, filtre boyutu 3 × 3 olduğunda, uzamsal olarak ayrılabilir evrişimin hesaplama maliyeti standart evrişimin 2 / 3'üdür. Filtre boyutu 5 × 5 olduğunda bu değer 2/5; filtre boyutu 7 × 7 olduğunda 2/7 olur.

Uzamsal olarak ayrılabilir evrişim maliyetten tasarruf sağlasa da, derin öğrenme onu nadiren kullanır. Bunun ana nedeni, tüm çekirdeklerin iki küçük çekirdeğe bölünememesidir. Tüm geleneksel konvolüsyonları uzamsal olarak ayrılabilir konvolüsyonlarla değiştirirsek, eğitim sırasında kendimizi tüm olası çekirdekleri aramakla sınırlandırırız. Bu şekilde elde edilen eğitim sonuçları optimalin altında olabilir.

2. Derinlik ayrılabilir evrişim

Şimdi derin öğrenme alanında (MobileNet ve Xception gibi) çok daha yaygın olarak kullanılan derin ayrılabilir evrişime bakalım. Derinlik ayrılabilir evrişim iki adımdan oluşur: derinlik evrişim çekirdeği 1 × 1 evrişim.

Bu adımları açıklamadan önce, daha önce tanıttığımız 2D evrişim çekirdeği 1 × 1 evrişimi gözden geçirmek gerekir. Standart 2D evrişimin hızlı bir incelemesiyle başlayın. Spesifik bir örnek vermek gerekirse, girdi katmanının boyutunun 7 × 7 × 3 (yükseklik × genişlik × kanal) ve filtre boyutunun 3 × 3 × 3 olduğunu varsayalım. Bir filtre ile 2D evrişimden sonra, çıktı katmanının boyutu 5 × 5 × 1'dir (yalnızca bir kanal).

1 filtre kullanarak yalnızca 1 çıktı katmanı ile standart bir 2D evrişim oluşturmak için kullanılır

Genel olarak konuşursak, iki sinir ağı katmanı arasına birden çok filtre uygulanır. Burada 128 filtremiz olduğunu varsayalım. Bu 1282D evrişimi uyguladıktan sonra, 128 adet 5 × 5 × 1 çıktı haritasına sahibiz. Sonra bu haritaları 5 × 5 × 128 boyutunda tek bir katman halinde istifliyoruz. Bu işlem sayesinde giriş katmanını (7 × 7 × 3) çıktı katmanına (5 × 5 × 128) dönüştürebiliriz. Uzamsal boyutlar (yani, yükseklik ve genişlik) küçülecek ve derinlik artacaktır.

128 çıktı katmanı ile standart 2D evrişim oluşturmak için 128 filtre kullanılır

Şimdi derinlikle ayrılabilir evrişimi kullanın ve aynı dönüşümü nasıl başarabileceğimizi görün.

İlk olarak, girdi katmanına derin evrişim uygularız. Ancak 2B evrişimde 3 × 3 × 3 boyutunda tek bir filtre kullanmak yerine, 3 çekirdeği ayrı olarak kullanıyoruz. Her filtrenin boyutu 3 × 3 × 1'dir. Her çekirdek, giriş katmanının bir kanalıyla (sadece bir kanal, tüm kanallar değil!) Çevrilir. Bu tür her evrişim, 5 × 5 × 1 boyutunda bir harita sağlayabilir. Sonra bu haritaları 5 × 5 × 3 bir görüntü oluşturmak için bir araya getiriyoruz. Bu işlemden sonra 5 × 5 × 3 boyutunda bir çıktı elde ediyoruz. Şimdi uzaysal boyutu azaltabiliriz, ancak derinlik eskisi gibi kalır.

Derinlik ayrılabilir evrişim - ilk adım: 2D evrişimde 3 × 3 × 3 boyutunda tek bir filtre kullanmak yerine, 3 çekirdeği ayrı olarak kullanırız. Her filtrenin boyutu 3 × 3 × 1'dir. Her çekirdek, giriş katmanının bir kanalıyla (sadece bir kanal, tüm kanallar değil!) Çevrilir. Bu tür her evrişim, 5 × 5 × 1 boyutunda bir harita sağlayabilir. Sonra bu haritaları 5 × 5 × 3 bir görüntü oluşturmak için bir araya getiriyoruz. Bu işlemden sonra 5 × 5 × 3 boyutunda bir çıktı elde ediyoruz.

Derinlik ayrılabilir evrişimin ikinci adımında derinliği genişletmek için 1 × 1 × 3 çekirdek boyutuna sahip 1 × 1 evrişim uygularız. 5 × 5 × 1 harita elde etmek için her 1 × 1 × 3 çekirdek ile 5 × 5 × 3 giriş görüntüsünü dönüştürün.

Bu nedenle, 1281 × 1 konvolüsyon uyguladıktan sonra, 5 × 5 × 128 boyutunda bir katman elde ederiz.

Derinlik ayrılabilir evrişim-Adım 2: Derinliği değiştirmek için birden fazla 1 × 1 evrişim uygulayın.

Bu iki adımda, derinlikle ayrılabilir evrişim aynı zamanda giriş katmanını (7 × 7 × 3) çıktı katmanına (5 × 5 × 128) dönüştürecektir.

Aşağıdaki şekil, derinlemesine ayrılabilir evrişimin tüm sürecini göstermektedir.

Derinlik ayrılabilir evrişim sürecinin tamamı

Öyleyse, derin ayrılabilir evrişimin avantajları nelerdir? Verimlilik! 2D evrişime kıyasla, derin ayrılabilir evrişim çok daha az işlem gerektirir.

2D evrişim örneğimizin hesaplama maliyetini hatırlayın. 5 × 5 kez taşınan 128 adet 3 × 3 × 3 çekirdek vardır, bu 128 x 3 x 3 x 3 x 5 x 5 = 86400 çarpımdır.

Ayrılabilir evrişime ne dersiniz? İlk derin evrişim adımında, 3x3x3x1x5x5 = 675 çarpım olan 5 × 5 kez taşınan 3 adet 3 × 3 × 1 çekirdek vardır. 1 × 1 evrişimin ikinci adımında, 128 adet 1 × 1 × 3 çekirdek 5 × 5 kez hareket ettirilir, yani 128 x 1 x 1 x 3 x 5 x 5 = 9600 çarpma. Bu nedenle, derinlik ayrılabilir evrişimin toplam 675 + 9600 = 10275 çarpımı vardır. Bu maliyet, 2D evrişimin sadece% 12'si kadardır!

Öyleyse, herhangi bir boyuttaki görüntü için derinlik ayrılabilir evrişimi uygularsak, ne kadar zaman kazanabiliriz, yukarıdaki örneği genelleyelim. Şimdi, H × G × D boyutundaki bir girdi resmi için, 2D evrişimi gerçekleştirmek için h × h × D boyutundaki Nc çekirdekleri kullanılıyorsa (adım boyutu 1, dolgu 0, burada h çift sayıdır). Giriş katmanını (H × W × D) çıktı katmanına ((H-h + 1) x (W-h + 1) x Nc) dönüştürmek için, gereken toplam çarpma sayısı:

Nc x h x h x D x (H-h + 1) x (W-h + 1)

Öte yandan, aynı dönüşüm için derinlemesine ayrılabilir evrişim için gereken çarpma sayısı:

D xhxhx 1 x (H-h + 1) x (W-h + 1) + Nc x 1 x 1 x D x (H-h + 1) x (W-h + 1) = (hxh + Nc) x D x (H-h + 1) x (G-h + 1)

Daha sonra derinlikle ayrılabilir evrişim ve 2B evrişim için gerekli çarpma sayısının oranı:

Çoğu modern mimarinin çıktı katmanı genellikle yüzlerce hatta binlerce kanala sahiptir. Böyle bir katman için (Nc > > h), daha sonra yukarıdaki formül 1 / h²'ye düşürülebilir. Buna dayanarak, 3x3 filtre kullanılıyorsa, 2B evrişim için gereken çarpma sayısı, derinlemesine ayrılabilir evrişimin 9 katıdır. 5 × 5 filtre kullanılıyorsa, 2B evrişim için gereken çarpma sayısı, derinlemesine ayrılabilir evrişimin 25 katıdır.

Derinlik ayrılabilir evrişim kullanmanın herhangi bir sakıncası var mı? Derinlik ayrılabilir evrişim, evrişimdeki parametre sayısını azaltacaktır. Bu nedenle, daha küçük modeller için, 2B evrişim yerine derinlik ayrılabilir evrişim kullanılırsa, modelin yeteneği önemli ölçüde azalabilir. Bu nedenle, ortaya çıkan model optimalin altında olabilir. Bununla birlikte, doğru kullanılırsa, derin ayrılabilir kıvrım, modelinizin performansını düşürmeden verimlilik kazanımları elde etmenize yardımcı olabilir.

Altı, gruplanmış evrişim

AlexNet makalesi (https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf) 2012'de gruplandırılmış evrişimi tanıttı. Gruplandırılmış evrişimi uygulamanın ana nedeni, ağ eğitiminin sınırlı belleğe sahip 2 GPU üzerinde gerçekleştirilmesine izin vermektir (her GPU'nun 1,5 GB belleği vardır). Aşağıdaki AlexNet, çoğu katmanda iki ayrı evrişim yolu olduğunu göstermektedir. Bu, iki GPU üzerinde model paralelleştirme gerçekleştirmek içindir (tabii ki, daha fazla GPU kullanabiliyorsanız, çoklu GPU paralelleştirmesini de gerçekleştirebilirsiniz).

AlexNet kağıdından resim

Burada gruplanmış evrişimin çalışma yöntemini tanıtıyoruz. İlk olarak, tipik bir 2D evrişimin adımları aşağıdaki şekilde gösterilmiştir. Bu örnekte, giriş katmanı (7 × 7 × 3), 3 × 3 × 3 boyutunda 128 filtre uygulanarak çıktı katmanına (5 × 5 × 128) dönüştürülür. Genel olarak, girdi katmanı (Hin x Win x Din), h x w x Din boyutundaki Dout çekirdekleri uygulanarak çıktı katmanına (Hout x Wout x Dout) dönüştürülür.

Standart 2D evrişim

Gruplanmış evrişimde, filtreler farklı gruplara ayrılır. Her grup, belirli bir derinlikte tipik bir 2B evrişimden sorumludur. Aşağıdaki örnek daha net anlamanızı sağlayabilir.

İki filtre grubu ile gruplanmış evrişim

Yukarıdaki şekil, iki filtre grubuyla gruplanmış bir evrişimi göstermektedir. Her filtre gruplamasında, her filtrenin derinliği nominal 2D evrişimin yalnızca yarısıdır. Derinlikleri Din / 2'dir. Her filtre grubu Dout / 2 filtreleri içerir. Birinci filtre grubu (kırmızı), giriş katmanının () ilk yarısı ile, ikinci filtre grubu (turuncu) ise giriş katmanının () ikinci yarısı ile birleştirilir. Bu nedenle, her filtre grubu Dout / 2 kanalları oluşturur. Genel olarak, iki grup 2 × Dout / 2 = Dout kanalları oluşturacaktır. Ardından, Dout kanallarıyla bir çıktı katmanı elde etmek için bu kanalları bir araya topluyoruz.

1. Gruplanmış evrişim ve derin evrişim

Gruplanmış evrişimler ile derin ayrılabilir evrişimler arasında kullanılan derin evrişimler arasındaki bazı bağlantıları ve farklılıkları fark edebilirsiniz. Filtre gruplarının sayısı giriş katmanı kanallarının sayısıyla aynıysa, her filtrenin derinliği Din / Din = 1'dir. Bu filtrenin derinliği, derin evrişimdeki ile aynıdır.

Öte yandan, her filtre grubu artık Dout / Din filtreleri içerir. Genel olarak, çıktı katmanının derinliği Dout'tur. Bu derin evrişim durumundan farklıdır - derin evrişim tabakanın derinliğini değiştirmez. Derinlemesine ayrılabilir evrişimde, katmanın derinliği daha sonra 1x1 evrişim ile genişletilir.

Gruplanmış evrişimin birkaç avantajı vardır.

İlk avantaj verimli eğitimdir. Evrişim birden çok yola bölündüğünden, her yol farklı GPU'lar tarafından ayrı ayrı işlenebilir, böylece model birden fazla GPU üzerinde paralel olarak eğitilebilir. Tüm görevleri tek bir GPU'da tamamlamaya kıyasla, modellerin birden fazla GPU'da bu şekilde paralelleştirilmesi, ağın her adımda daha fazla görüntü işlemesine izin verir. İnsanlar genellikle model paralelleştirmenin veri paralelleştirmeden daha iyi olduğunu düşünür. İkincisi, veri setini birden çok partiye bölmek ve ardından her bir partiyi ayrı ayrı eğitmektir. Bununla birlikte, parti boyutu çok küçük olduğunda, esas olarak parti gradyan inişi yerine stokastik gradyan inişi gerçekleştiririz. Bu, daha yavaş ve bazen daha kötü yakınsama sonuçlarına neden olabilir.

Çok derin sinir ağlarını eğitirken, ResNeXt'te olduğu gibi gruplanmış evrişim çok önemli olabilir.

ResNeXt kağıdından resim, https://arxiv.org/abs/1611.05431

İkinci avantaj ise modelin daha verimli olması yani filtre gruplarının sayısı arttıkça model parametrelerinin azalmasıdır. Önceki örnekte, tam standart 2D evrişim h x w x Din x Dout parametrelerine sahiptir. 2 filtre grubuna sahip gruplanmış bir evrişim (h x w x Din / 2 x Dout / 2) x 2 parametresine sahiptir. Parametre sayısı yarı yarıya azaltıldı.

Üçüncü avantaj biraz şaşırtıcı. Gruplanmış evrişim, standart tam 2B evrişimden daha iyi bir model sağlayabilir. Başka bir mükemmel blog bunu açıkladı: https://blog.yani.io/filter-group-tutorial. İşte kısa bir özet.

Nedeni seyrek filtre ile ilgilidir. Aşağıdaki şekil, bitişik filtre katmanlarının korelasyonunu göstermektedir. İlişki seyrek.

CIFAR10 üzerinde eğitilmiş bir Ağda Ağ modelinde bitişik katmanların filtrelerinin korelasyon matrisi. Yüksek düzeyde ilişkili filtre çiftleri daha parlaktır ve daha az ilişkili filtreler daha koyu renktedir. Kaynak: https://blog.yani.io/filter-group-tutorial

Gruplama matrisinin korelasyon haritası ne olacak?

CIFAR10 üzerinde eğitilmiş bir Ağda Ağ modelinde bitişik katmanlardaki filtrelerin korelasyonu Animasyon, 1, 2, 4, 8 ve 16 filtre grubunun olduğu durumları gösterir. Https://blog.yani.io/filter-group-tutorial adresinden resim

Yukarıdaki şekil, model 1, 2, 4, 8 ve 16 filtrelerle eğitildiğinde bitişik katmanlardaki filtreler arasındaki korelasyonu gösterir. Bu makale bir mantık ileri sürmektedir: "Filtre gruplamasının etkisi, kanal boyutundaki bloğun köşegen yapısının seyrekliğini öğrenmektir ... Ağda, yüksek korelasyonlu filtre, filtre gruplamayı daha fazla kullanmaktır. Yapılandırılmış bir şekilde öğrenilir.Etkisel bakış açısından, öğrenilmesi gerekmeyen filtre ilişkisi artık parametreleştirilmez.Bu, aşırı uydurmayı kolaylaştırmak için ağdaki parametre sayısını önemli ölçüde azaltır. Bu nedenle, benzer bir düzenleme Bu etki, optimize edicinin daha doğru ve verimli derin bir ağ öğrenmesine olanak tanır.

AlexNet dönüşüm1 filtre ayrıştırma: Yazarın da işaret ettiği gibi, filtre gruplaması, öğrenilen filtreleri iki farklı gruba yapılandırıyor gibi görünüyor. Bu görüntü AlexNet gazetesinden alınmıştır.

Ek olarak, her filtre grubu, verilerin benzersiz bir temsilini öğrenecektir. AlexNet'in yazarının işaret ettiği gibi, filtre gruplama, öğrenilen filtreleri iki farklı gruba - siyah beyaz filtreler ve renkli filtreler - yapılandırıyor gibi görünüyor.

Giriş sınavında 1 numara! Zhejiang Üniversitesi! Zengin ikinci nesil, yıllık 500.000 maaştan istifa etti ve oğlu için çilek yetiştirmek için eve döndü.
önceki
326 LED ışık kaynağı Geely FY11 aydınlatma bilgilerini açığa çıkarıyor
Sonraki
Hammer, Changbrea akıllı yerde duran nemlendiriciyi piyasaya sürdü
Jimmy Butler Air Jordan 6 PE sıçrayan bilet! Timberwolves'i utanç verici bir duruma sokan ticaret saçmalığıyla ilgili!
Juventus hayranları hile yaparak ölümüne yol açtı!
İnsanların ve arabaların duyguları var, Jed'in sahibinin ve arabasının hikayesi
Vaov! Nike React Element 55 "Gümüş" yeni renk biraz havalı görünüyor!
Hangzhou şiddetli yağmur çarptı! Resim beni şok etti, "denize açıldı"!
Netizenler Wuhan Zall Süper Lig küme düşme hilelerini öneriyor Bu takım arka arkaya üç kaybettiğinde, bundan kaçınmalıyız
Apple iPhone XR ve Google Pixel 3XL arasında kör çekim karşılaştırması
Tıpkı Japon MPV gibi, GAC Trumpchi GM6 şasi gerçek atış analizi
Yapay Zeka Sesli Telefon Robotunun Çekirdek Teknolojisinin Analizi
Zall oyuncusu Ai Zhibo, Li Xing ve diğerleri Lingkong Futbol Kupası'na yardım etti ve Wuhan Askeri Oyunları için tezahürat yaptı!
Nadir misafir! Gemini üreticisi, arkadan aydınlatmalı tam klavyeli yeni Android makinesini piyasaya sürdü
To Top