Xception ağ mimarisi hakkında biraz anlayış
Python gelişmiş öğretici
Makine öğrenme
Derin öğrenme
Metni girin
Bazı xception için
açık
DL'ye Giriş: "Başlangıç" ve "Xception" hakkında şeyler
Başlangıç, sinir ağı yapısının bir başyapıtıdır ve "çok boyutlu evrişim" ve "büyük evrişim çekirdekleri yerine çok sayıda küçük evrişim çekirdeği" gibi kavramlar, günümüzün birçok mükemmel ağ mimarisinin temel taşlarıdır. Buna dayalı olarak Xception'ın ortaya çıktığı ve yazarın Extreme Inception adını verdiği ve Depthwise Separable Conv'nin önerdiği de etkileyici olduğu doğrudur.
Bu makale, makalenin içeriğini ayrıntılı olarak açıklamamakta, sadece önerilen temel kavram ve yapıları tartışmakta ve kronolojik sırayla tartışmaktadır. İlk tartışma, Inception'ın çok boyutlu evrişim çekirdeği ve evrişim çekirdeği değişimidir, ardından Darboğaz'a ve son olarak Xception'ın Derinlemesine Ayrılabilir Dönş.
içindekiler
Çok boyutlu bir evrişim çekirdeği
İki Noktasal Dönüşüm
Üç evrişimli çekirdek değişimi
Dört Darboğaz
Derinlikte Ayrılabilir Beş Dönş.
Altı Sunmary
Yedi Referans
01
Çok boyutlu evrişim çekirdeği
Inception'ın orijinal versiyonu, ana fikri, Giriş verilerini gözlemlemek için çok boyutlu evrişim çekirdeği .
Örneğin bir sahneye farklı mesafelerden bakarsak, aynı nesnenin boyutu farklı olacaktır, dolayısıyla farklı ölçeklerdeki evrişim çekirdeğinin gözlemlediği özellikler bu etkiye sahip olacaktır. Dolayısıyla aşağıdaki ağ yapısı şeması vardır:
Yani ağımız değişiyor Şişman , Ağın genişliğini artırın, aynı zamanda farklı ölçeklere uyum derecesini de iyileştirin.
02
Noktasal Dönüşüm
Ancak ağımız şiştikçe, hesaplama miktarı da arttı, bu nedenle hesaplama miktarını azaltmak için parametre miktarını azaltmanın bir yolunu bulmalıyız, bu nedenle Inception v1'deki son sürüm 1x1 evrişim çekirdeği ekledi.
Girdi özelliği haritasının boyutsallığını azaltmak için 1x1 evrişim çekirdeğini kullanın, bu, parametre miktarını büyük ölçüde azaltacak ve böylece hesaplamayı azaltacaktır.
Örneğin girdi verisinin boyutu 256 boyuttur. 1x1 evrişimden sonra çıktımızın boyutu 64 boyut ve parametre miktarı orijinal 1414'tür.
Bu, genellikle 1x1 evrişim olarak bilinen Noktasal Evrişim'dir, PW olarak kısaltılır, esas olarak kullanılır Veri boyutluluğunun azaltılması, parametre miktarının azaltılması .
Bazıları boyut yükseltmesi için PW kullanır. MobileNet v2'de PW, 3 özellik haritasını 6 özellik haritasına dönüştürmek için kullanılır. Giriş verilerinin özelliklerini zenginleştirin .
MobileNet v2 hakkında daha fazla bilgi edinmek istiyorsanız, orijinal MobileNet V2-arxiv.org metnini okuyabilir ve ardından bu MobileNet V2 kağıt-Michael Yuan'ın ilk okumasını okuyabilirsiniz.
03
Evrişim çekirdek değişimi
PW ile bile, çünkü 5x5 ve 7x7 evrişim çekirdekleri parametreyi doğrudan hesaplar Hala çok büyük , Eğitim süresi hala nispeten uzun, optimize etmemiz gerekiyor.
İnsan bilgeliği sonsuzdur, bu yüzden büyük evrişim çekirdekleri yerine çok sayıda küçük evrişim çekirdeği kullanma yöntemi buldum. Bu, şekilde gösterildiği gibi Başlangıç v3'tür:
5x5 evrişim yerine iki 3x3 evrişim çekirdeği kullanıldığında, etki benzerdir, ancak parametrelerin miktarı çok azaltılarak optimizasyon amacına ulaşılır. Sadece parametrelerin sayısı az olmakla kalmaz, katman sayısı da artar ve derinlik de daha derindir.
Normal kareye ek olarak, 3x3 = 3x1 + 1x3 ayrıştırılmış bir versiyonumuz da var.Bu etki, daha derin derinlik durumunda normal evrişim çekirdeğinden daha iyidir.
Girdinin 256 boyut ve çıktının 512 boyut olduğunu varsayıyoruz ve parametre miktarını hesaplıyoruz:
5x5 evrişimli çekirdek
256 5 5 512 = 3276800256 5 5 512 = 3276800
İki 3x3 evrişim çekirdeği
256 3 3 256 + 256 3 3 512 = 589824 + 1179648 = 1769472256 3 3 256 + 256 3 3 512 = 589824 + 1179648 = 1769472
Karşılaştırmalı Sonuçlar
17694723276800 = 0,5417694723276800 = 0,54
Parametre miktarı karşılaştırmasını görebiliriz, iki 3x3 evrişim çekirdeğinin parametre miktarı 5x5'in yarısıdır, bu da eğitim hızını büyük ölçüde hızlandırabilir.
04
Darboğaz
Yukarıdaki yapı ve yöntemle bile, parametre miktarımızın hala çok büyük olduğunu bulduk, bu nedenle parametre miktarını azaltmak için Darboğaz yapısını oluşturmak için yukarıdaki yöntemi birleştirdik.
Darboğazın üç aşamalı süreci, önce PW ile verilerin boyutluluğunu azaltmak, ardından geleneksel evrişim çekirdeğinin evrişimini gerçekleştirmek ve son olarak PW ile verilerin boyutluluğunu artırmaktır. Anlamamıza yardımcı olacak bir örnek verelim:
Yukarıdaki şekle göre bir karşılaştırma hesabı yapalım.Giriş özellik haritasının boyutunun 256 boyut olduğunu varsayarsak, çıktı boyutunun da 256 boyut olması gerekir. İki işlem vardır:
Doğrudan 3x3 evrişim çekirdeğini kullanın. 256 boyutlu girdi, 256 boyutlu bir özellik haritası çıkarmak için doğrudan 3 × 3 × 256 evrişimli katmandan geçer, ardından parametre miktarı: 256 × 3 × 3 × 256 = 589,824'tür.
Bir 1x1 evrişim çekirdeğinden, sonra bir 3x3 evrişim çekirdeğinden ve son olarak bir 1x1 evrişim çekirdeğinden geçer. 256 boyutlu girdi önce 1 × 1 × 64 evrişimli katmandan, ardından 3x3x64 evrişimli katmandan ve son olarak 1x1x256 evrişimli katmandan geçer, toplam parametre miktarı: 256 × 1 × 1 × 64 + 64 × 3 × 3 × 64 + 64 × 1 × 1 × 256 = 69.632.
İki yöntemi karşılaştırdıktan sonra, ikincisinin parametresinin öncekinden çok daha küçük olduğunu açıkça görebiliriz. Darboğaz'ın temel fikri Tek bir büyük evrişim çekirdeğini değiştirmek için birden çok küçük evrişim çekirdeği kullanın , Büyük evrişimli çekirdek çalışmasının bir kısmını değiştirmek için 1x1 evrişim çekirdeği kullanın.
05
Derinliğe Göre Ayrılabilir Dönş.
Hâlâ çok sayıda parametrenin olduğunu gördük, bu nedenle insanlar bunu tekrar düşündü ve Derinliğe Göre Ayrılabilir Dönş. Bu not orijinal olarak, daha sonra MobileNet ve Xception'da Google tarafından kullanılan Tek Kanal İçi Evrişim, Topolojik Alt Bölümleme ve Uzamsal "Darboğaz" Yapısı kullanılarak Verimli Evrişimli Katmanların Tasarımı adlı kağıttan türetilmiştir.
Bu evrişimin genel anlamı, her bir derinlik haritasını ayrı ayrı bükmek ve sonra birleştirmektir.Adımlar, önce Depthwise Conv ve sonra Pointwise Conv'dir, bu da parametrelerin miktarını büyük ölçüde azaltır. Aşağıdaki şekil Xception modülünün yapısını göstermektedir:
Genel adımlar aşağıdaki gibidir:
Farklı kanallara göre bir evrişim gerçekleştirin (giriş kanallarının Özellik Haritalarını oluşturun) -DW
Ardından bu Özellik Haritalarını ikinci kez bir araya getirin - PW
Metin biraz soyut görünüyor, onu anlamak için kestane kullanalım.
Giriş 2 boyutlu veridir, normal evrişime kıyasla 3x3 evrişim gerçekleştirmeli ve 3 boyutlu veri çıkarmalıyız:
Normal evrişim
2 3 3 3 = 542 3 3 3 = 54
DW evrişimi
2 3 3 + 2 1 1 3 = 18 + 6 = 242 3 3 + 2 1 1 3 = 18 + 6 = 24
Parametre karşılaştırması
2454 = 0,4442454 = 0,444
Parametrelerin miktarının normal evrişimin yarısı olduğunu görebiliriz, ancak aslında daha az olabilir. Ancak girdi ve çıktı boyutları çok farklı olmadığında, etki o kadar açık değildir .
Teorik hesaplama
PDW = I Dk Dk + I OPDW = I Dk Dk + I O
PNormal = I Dk Dk OPNormal = I Dk Dk O
PDWPNormal = 1O + 1D2k1D2k PDWPNormal = 1O + 1Dk21Dk2
II, giriş kanallarının sayısıdır, OO, çıkış kanallarının sayısıdır ve DkDk, standart evrişim çekirdeğinin boyutudur.
3x3 evrişim çekirdeğini kullandığımızda, parametre miktarının yaklaşık olarak standart evrişim çekirdeğinin 1919'una eşit olduğunu görebiliriz, bu da parametre miktarını büyük ölçüde azaltır ve eğitimi hızlandırır.
06
Özet
Başlangıçtan Xception'a kadar olan gelişim perspektifinden, her yenilik övülür ve mükemmel yapısal tasarım ve fikirler takdire şayan.
Farklı boyutlardaki çoklu evrişimli çekirdekler, farklı ölçeklerdeki özelliklere uyarlanabilirliği geliştirir.
PW evrişimi, boyutluluğu azaltırken veya yükseltirken, ağın ifade yeteneğini geliştirir.
Birden çok küçük boyutlu evrişim çekirdeği, parametre miktarını azaltırken ağı derinleştirmek için büyük evrişim çekirdeklerinin yerini alır.
Gelişmiş Darboğaz yapısı, ağ parametrelerinin miktarını büyük ölçüde azaltır.
Gelişmiş Derinliğe Göre Ayrılabilir Dönüşüm tasarımı, parametre miktarını yeniden azaltır.
Bu temel yapıların düşüncelerini bilerek, devlerin omuzlarında durabilir, ileriye daha iyi bakabilir ve daha iyi bir yöne gidebiliriz.
07
Referans
Başlangıç v1-Konvolüsyonlarla Daha Derine Gidiyor
Inception v3-Bilgisayarla Görü için Başlangıç Mimarisini Yeniden Düşünmek
Ters Artıklar ve Doğrusal Darboğazlar: Sınıflandırma, Tespit ve Segmentasyon için Mobil Ağlar
Hafif evrişimli sinir ağlarına genel bakış: SqueezeNet, MobileNet, ShuffleNet, Xception-Sütunu bilin
# Derin Öğrenme # Evrişimli Sinir Ağı
DL'ye Giriş: "Evrişim" sürecini tekrar anlamak
Derin öğrenmeye dayalı "hedef tespit" algoritmalarına genel bakış