Son makale CNN hakkında temel bilgileri ve avantajlarını tanıttı Bugünün makalesi, CNN'yi daha sezgisel bir şekilde anlayabilmemiz için bazı ünlü evrişimli sinir ağlarının yapısal özelliklerine bir göz atacak.
Bir, LeNet-5
Kağıt:
Bunun, CNN'in 1998'de Yann LeCun tarafından önerilen, el yazısı sayıların ve harflerin tanınmasını gerçekleştirebilen öncü çalışması olduğu söylenebilir. Yapı aşağıdaki gibidir:
Şekildeki alt örnekleme veya "alt örnekleme", daha önce bahsettiğimiz havuzlamadır, çünkü havuzlama aslında orijinal görüntüyü örnekleme sürecidir. 2 CONV katmanı, 2 POOL katmanı ve 3 FC katmanı olmak üzere toplam 7 katmana sahiptir. Tabii ki giriş ölçeği çok küçük, 32 × 32 boyutunda tek kanallı bir resim.
Yukarıdaki ağ yapısını ifade etmek için aşağıdaki formülü kullanabiliriz:
Giriş (32 × 32) - > CONV (6 filtre) - > AvgPOOL-- > CONV (16 filtre) - > AvgPOOL-- > YP (120) - > YP (84) - > YP (10)
Detaylar hakkında söylenecek bir şey yok. Daha sonra TensorFlow veya Keras ile yeniden üretmeyi deneyebiliriz.
İki, AlexNet
Kağıt:
AlexNet, 2012 yılında Alex Krizhevsky, Ilya Sutskever ve Geoffrey Hinton tarafından önerilmiş ve 2012 ILSVRC'de (ImageNet Büyük Ölçekli Görsel Tanıma Yarışması) en iyi sonuçları elde etmiştir. CNN'in de ilk kez böylesine iyi bir sonuca ulaşması ve ikinci sırayı çok geride bırakması tüm alanı şok etti ve o zamandan beri CNN'ler kamuoyunda bilinmeye başladı.
İşte bu ILSVRC hakkında kısa bir konuşma, ImageNet tarafından başlatılan bir meydan okuma, bilgisayarla görme alanındaki Olimpiyat Oyunları. Dünyanın dört bir yanındaki ekipler, ImageNet'te 1000 kategoride on milyonlarca görüntüyü sınıflandırmak, bulmak ve tanımlamak için modellerini getiriyor. Bu 1000 kategoride çok zor bir iş.
O zaman bu AlexNet'in yapısına bir göz atalım:
Resim kaynağı: https://www.learnopencv.com/understanding-alexnet/
Giriş resmi 256 × 256'dır ve ardından 227 × 227 boyutuna ulaşmak için rastgele kırpılır ve ardından ağa girer. Bu girdinin LeNet'inkinden çok daha büyük olduğu görülebilir ve bu boyut, o yıl zaten resmin ana boyutuydu.
AlexNet'te 5 CONV katmanı ve 3 FC katmanı dahil olmak üzere 8 katman vardır.PUZUN katmanı burada sayılmaz çünkü eğitilebilir parametreler olmadığı için tam anlamıyla bir katman değildir.
AlexNet ile ilgili ana noktalar aşağıdaki gibidir:
Kısacası, AlexNet, insanların CNN'in gücünü ve büyük potansiyelini fark etmelerini sağlar ve sonraki araştırmalar için çok sayıda yararlı deneyim ve teknoloji sağlar.
Üç, VGG Net
Kağıt: https://arxiv.org/pdf/1409.1556.pdf
Bu ağ, 2014 yılında Oxford Üniversitesi'nden Karen Simonyan ve Andrew Zisserman tarafından önerildi. Ana özellik "basitlik ve derinlik" tir. Derin çünkü VGG, öncekilerden çok daha fazla 19 katmana sahip; ve basitlik, adım 1 ile 3 × 3 filtre ve adım 2 ile 2 × 2MaxPooling kullanan yapısında yatıyor. Yani derin olmasına rağmen, herkes yapıyı bir bakışta hatırlayabilir.
Bu resim VGG'nin kağıdından geliyor.Her sütun çalıştıkları farklı bir yapıdır. Doğrudan E'nin yapısına bakıyoruz. Birkaç CONV'nin üst üste bindirildiğini ve ardından bir MaxPooling, birkaç CONV ve bir MaxPooling eklendiğini bulmak zor değil. Son üç FC. Ayrıca, her MaxPooling'den sonra, CONV filtrelerinin sayısı ikiye katlanarak 64, 128, 256, 512'ye çıkar ve yapı çok düzenli ve düzenlidir.
VGG, CNN'in derinliğini tazeler ve özlü yapısı daha da etkileyici.
Dört, Başlangıç Ağı (GoogleNet)
Kağıt: https://www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf
Önceki ağ yapısına baktıktan sonra, daha derinleştiklerini, daha fazla filtreyi ve daha fazla parametreyi bulacağız. Görünüşe göre CNN'in performansını artırmanın yolu, arka arkaya daha fazla CONV ve POOL katmanını yığmaktır (biz buna sıralı bir model diyoruz, keras'a aşina olan öğrenciler bunu bilmelidir). Nitekim o sırada herkes CNN'imizi daha da büyütmek için ağın katman sayısını artırmaya çalışıyordu.
Ancak, katman sayısını körü körüne artırmanın ve kanal sayısını artırmanın (daha fazla filtre, çıktı görüntüsünün daha fazla kanalı), hesaplama miktarının çarpıcı bir şekilde artacağını ve modelin çok karmaşık hale geleceğini ve aşırı simülasyonu kolaylaştıracağının da farkında olmalıyız. Bu, birlikte modelin performansını düşürecektir.
Inception Net artık Sıralı modeli kullanmıyor ve önemli bir yapısal yeniliğe sahip.
Sıralı modelde, ister CONV ister POOL olsun, tüm işlemler bir sırayla düzenlenir. Ancak Google düşündü ki, neden aynı anda çeşitli işlemleri gerçekleştiremiyorlar? Öyleyse makalenin yazarının cesur bir fikri var: Eğer üç CONV ve bir MaxPOOL'umuz varsa, neden onların paralel olarak çalışmasına izin vermiyor ve sonra onları birbirine entegre etmiyoruz? :
Bununla ilgili bir sorun var, yani entegrasyondan sonra kanalların boyutu çok büyük olacak.
Böylece yazar, boyutsallığı azaltmak için 1 × 1 filtreyle CONV kullanmak için iyi bir yol buldu:
Evrişimin işleyişini daha önce öğrendik. 1 × 1 filtre ters evrişimin görüntünün uzunluğunu ve genişliğini değiştirmeyeceğini biliyoruz.Aynı zamanda çıktı görüntüsünün kanal sayısı filtre sayısına eşittir, yani 192 kanalın görüntüleri için 32 filtre kullanarak boyutu 32 boyuta indirebiliriz.
Bu nedenle, yukarıdaki entegrasyon sürecini dönüştürmek için bu 1 × 1CONV özelliğini kullanabiliriz:
1 × 1CONV kullanılarak, çıkış kanallarının sayısının büyük ölçüde azaldığı, böylece tüm modelin parametrelerinin de büyük ölçüde azaltılacağı görülebilir.
Yukarıdaki bölüm "Başlangıç Modülü" olarak adlandırılır ve Başlangıç Ağı tek bir başlangıç modülünden oluşur:
Resim kaynağı: https://adeshpande3.github.io/The-9-Deep-Learning-Papers-You-Need-To-Know-About.html
Başlangıç modülü sayesinde GoogleNet, CNN katmanlarının sayısını 100'ün üzerine çıkardı! (Bir modül katman olarak kabul edilirse 22 katmandır).
Bu GoogleNet harika, gerçekten "derin" ve parametrelerin sayısı, daha önce tanıttığımız AlexNet'ten kat kat daha az! Bu nedenle, eğitilen model yalnızca etkili değil, aynı zamanda daha hızlıdır.
Beş, ResNet (artık ağ)
Kağıt: https://arxiv.org/pdf/1512.03385.pdf
Tanıtmak istediğim son şey, 2015'te Microsoft Research Asia'dan bilim adamları tarafından önerilen ResNet.
Daha önce de belirtildiği gibi, CNN'in karşılaştığı sorunlardan biri, katman sayısı arttıkça CNN'nin etkisinin darboğazlarla karşılaşması ve hatta artmak yerine azalmasıdır. Buna genellikle gradyan patlaması veya gradyan kaybolması neden olur.
ResNet, bu sorunu çözmek için önerildi, böylece daha derin ağları eğitmemize yardımcı oldu. Artık bir blok (artık blok) ortaya çıkarır:
Bu resim orijinal kağıttan. Bu artık bloğun belirli bir katmanın aktivasyon değerini doğrudan arkasındaki belirli bir katmanın önünde tuttuğu sezgisel olarak görülebilir Bu işleme "atlama bağlantısı" denir. Bu yaklaşım, önceki bilgilerin çıkarılması ve mevcut hesaplamaya eklenmesiyle eşdeğerdir Makalenin yazarı, bu yaklaşımın sinir ağının optimize edilmesini kolaylaştırabileceğine inanmaktadır. Aslında öyle.
Bu artık blok sayesinde, 152 katmanlı başarıyla bir CNN oluşturdular! Dipsiz! Ağın bir kısmını kağıttan şu şekilde yakaladım:
Belirli ayrıntılar ve artık bloğun neden etkili olduğu için, internetteki orijinal makaleye veya diğer öğreticilere başvurabilirsiniz.
Yeniden gönderildi: https://www.zhihu.com/people/guo-bi-yang-78/posts