Evrişim bloğunu basit kodla inceleyin

Bu makale, Yapay Zeka Araştırma Enstitüsü tarafından derlenen, Evrişimli Blokların Basit Kodda Orijinal başlığı olan teknik bir blogdur ve yazarı Paul-Louis Pröve'dir. Tercüme | Fan Meng Redaksiyon | Lamarca İnceleme | Lamaric

Makine öğrenimi ve yapay zeka ile ilgili makaleleri düzenli olarak okumaya çalışacağım. Bu aynı zamanda en son gelişmeleri takip etmenin tek yoludur. Bir bilgisayar bilimcisi olarak, bilimsel açıklama metninin veya formüllerinin matematiksel sembollerini karıştırırken sık sık duvara çarparım. Normal kodda anlamayı çok daha kolay buluyorum. Bu yüzden bu makalede, en son mimarinin önemli evrişim bloklarını uygulamak için size Keras boyunca rehberlik etmek istiyorum.

GitHub'da popüler mimari uygulamalarına baktığınızda, bu kadar çok kod içerdiklerine şaşıracaksınız. Bu, yeterli sayıda ek açıklama eklemek ve modeli geliştirmek için ek parametreler kullanmak için iyi bir uygulamadır, ancak aynı zamanda dikkati mimarinin doğasından uzaklaştıracaktır. Kodu daha da basitleştirmek ve kısaltmak için bazı takma ad işlevlerini kullanacağım:

Şablon kodu silindiğinde daha okunaklı buluyorum. Tabii ki, bu sadece benim kısaltmamı anlarsanız işe yarar, hadi başlayalım!

Darboğaz bloğu

Evrişim katmanının parametre sayısı, evrişim çekirdeğinin boyutuna, giriş filtrelerinin ve çıktı filtrelerinin sayısına bağlıdır. Ağınız ne kadar genişse, 3x3 evrişim o kadar pahalı olacaktır.

Darboğaz bloğunun arkasındaki fikir, belirli bir oran r üzerinden düşük maliyetli 1x1 evrişim kullanarak kanal sayısını azaltmaktır, böylece sonraki 3x3 evrişim daha az parametreye sahip olur. Son olarak, ağı genişletmek için 1x1 evrişim kullanıyoruz.

Başlangıç modülü

Başlangıç modülü, farklı işlemleri paralel olarak kullanma ve sonuçları birleştirme fikrini ortaya koymaktadır. Böylece ağ, farklı filtre türlerini öğrenebilir.

Burada evrişimli çekirdek boyutları 1, 3 ve 5 olan evrişimli katmanları ve birleştirmek için MaxPooling katmanını kullanıyoruz. Bu kod, başlangıç modülünün orijinal uygulamasını gösterir. Gerçek uygulama, onu yukarıda bahsedilen darboğaz fikri ile birleştirmektir, bu da onu biraz daha karmaşık hale getirir.

Artık blok

ResNet, Microsoft'tan araştırmacılar tarafından sunulan ve sinir ağlarının istedikleri kadar katmana sahip olmasına izin verirken modelin doğruluğunu artırmaya devam eden bir mimaridir. Şimdiye kadar buna alışmış olabilirsiniz, ancak ResNet'ten önce durum böyle değildi.

Buradaki fikir, ilk aktivasyonu evrişim bloğunun çıktısına eklemektir. Bu nedenle ağ, öğrenme süreci boyunca çıktı için yeni evrişim sayısını belirleyebilir. Dikkat etmeniz gereken şey, Başlangıç modülünün seri olarak çıktı alması, Kalan modülün ise toplam olmasıdır.

ResNeXt bloğu

ResNeXt ve ResNet arasındaki yakın bağlantıyı ismine göre tahmin edebilirsiniz. Yazar, kardinal sayı sözcüğünü genişlik (kanal sayısı) ve derinlik (katman sayısı) gibi başka bir boyuta alır.

Kardinalite, mevcut modüldeki paralel yolların sayısını ifade eder. Bu, başlangıç bloğunda paralel olarak gerçekleşen dört işlem gibi görünüyor. Bununla birlikte, farklı türde işlemleri paralel olarak kullanmak yerine, taban 4 olduğunda, aynı işlem basitçe dört kez kullanılır.

Aynı şeyi yapıyorlarsa neden bağlansınlar? iyi soru. Bu kavram aynı zamanda gruplanmış evrişim olarak da adlandırılır ve orijinal AlexNet makalesine kadar izlenebilir. Her ne kadar o zamanlar eğitim sürecini birden fazla GPU'ya ayırmak için kullanıldı ve ResNeXt bunları parametre kullanımının verimliliğini artırmak için kullandı.

Buradaki fikir, tüm giriş kanallarını birkaç gruba ayırmaktır. Evrişim yalnızca kendilerine tahsis edilmiş kanal gruplarında gerçekleştirilecek ve tüm kanal gruplarını etkilemeyecektir. Her saç modeli grubu, ağırlıklandırma verimliliğini artırırken farklı özellik türlerini öğrenecek.

Bir darboğaz bloğu hayal edin: İlk olarak, 256 giriş kanalını 64'e düşürmek için 4 sıkıştırma oranını kullanın ve ardından bunları çıktı olarak 256 kanala geri yükleyin. 32'lik bir taban ve 2'lik bir sıkıştırma oranı sunmak istiyorsak, her biri 4 (256 / (32 * 2)) çıkış kanalına sahip 32 paralel 1x1 evrişimli katman kullanacağız. Daha sonra 4 çıkış kanallı 32 adet 3x3 evrişimli katman ve ardından her biri 256 çıkış kanallı 32 adet 1x1 katman kullanıyoruz. Son adım, 32 paralel yolu eklemeyi içerir, böylece ilk girişi artık bağlantı olarak eklemeden önce bize tek bir çıktı sağlar.

Sol: ResNet bloğu Sağ: Kabaca aynı parametre karmaşıklığına sahip ResNeXt bloğu

Burada sindirilecek çok şey var. Nasıl çalıştığını sezgisel olarak anlamak için yukarıdaki resmi kullanabilir veya Keras ile küçük bir ağ oluşturmak için bu kodları doğrudan kopyalayabilirsiniz. Karmaşık açıklamam bu 9 basit kod satırıyla özetlenebilir, harika değil mi?

Bu arada, eğer kardinalite kanal sayısıyla aynıysa, derinlik ayrılabilir evrişim denen bir şey elde edeceğiz. Xception mimarisinin piyasaya sürülmesinden bu yana yaygın olarak kullanılmaktadır.

Yoğun blok

Yoğun bir blok, her bir evrişimli katmanın bu bloktaki önceki tüm evrişimli katmanların çıktısını vereceği bir artık bloğun aşırı bir versiyonudur. İlk olarak, listedeki girişi etkinleştiririz ve ardından bloğun derinliği boyunca döngü yaparak bir döngüye gireriz. Sonraki yinelemelerde daha fazla giriş özelliğini eşlemek için. Bu program gerekli derinliğe ulaşılana kadar devam edecektir.

DenseNet gibi mükemmel bir mimariye ulaşmak için aylarca araştırma yapılmasına rağmen, gerçek yapı taşları çok basit ve büyüleyici.

Sıkma ve Uyarma bloğu

SENet, kısa sürede olağanüstü bir ImageNet mimarisidir. ResNext üzerine inşa edilmiştir ve ağ kanalını kanal bilgileriyle modellemeye odaklanır. Geleneksel evrişimli tabakada, her bir kanal, iç çarpım işleminde ekleme işlemi için aynı ağırlığa sahiptir.

Sıkma ve Uyarma bloğu

SENet, mevcut herhangi bir mimariye eklenebilecek çok basit bir modül sunar. Girdiye göre her filtrenin ağırlığını öğrenebilen küçük bir sinir ağı oluşturur. Bunun bir evrişim bloğu olmadığını görebilirsiniz, ancak herhangi bir evrişim bloğuna eklenebildiği ve performansı artırabildiği için onu hibrit mimariye eklemek istiyorum.

Her kanal tek bir değerde sıkıştırılır ve iki sinir ağı katmanına beslenir. Dağıtılmış kanallara bağlı olarak, ağ bu kanalları önemlerine göre ağırlıklandıracak ve son olarak bu ağırlıklar evrişimli aktivasyon ile çarpılacaktır.

SENet, küçük bir hesaplama maliyeti sunar, ancak herhangi bir bobin yapıcı modelini iyileştirebilir. Bence bu blok hak ettiği ilgiyi görmedi.

NASNet standart birimi

İşlerin çirkinleşmeye başladığı yer burası. İnsanların alanını terk ediyoruz, basit ve etkili tasarım kararları alıyoruz ve sinir ağı mimarilerini tasarlamak için bir algoritmalar dünyasına giriyoruz. NASNet, tasarım açısından inanılmaz, ancak gerçek mimarisi nispeten karmaşık. ImageNet performansının oldukça iyi olduğunu biliyoruz.

Yazar, elle, farklı evrişim ve havuzlama katmanlarının arama alanını tanımlar ve her katmanın farklı olası ayarları vardır. Ayrıca, bu katmanların nasıl paralel olarak düzenlendiğini, düzenlendikleri sırayı ve bu katmanların seri olarak nasıl ekleneceğini veya birleştirileceğini de tanımladı. Bu şekilde tanımlanmalı ve tekrarlayan sinir ağlarına dayalı bir takviye öğrenme (RL) algoritması oluşturdular.Özel bir şema tasarımı CIFAR-10 veri setinde iyi performans gösterirse ödüllendirilecek.

Ortaya çıkan mimari sadece CIFAR-10'da iyi performans göstermekle kalmadı, aynı zamanda ImageNet'te de olağanüstü sonuçlar elde etti. NASNet, birbirinin kopyası olan standart bir birim ve bir restorasyon biriminden oluşur.

Keras'ta standart hücre kodunu bu şekilde kullanabilirsiniz. Katman kombinasyonunun ve ayarlarının kullanımının çok kolay olması dışında yeni bir şey yok.

Tersine çevrilmiş artık blok

......

Okumaya devam etmek için lütfen AI Araştırma Topluluğu topluluğumuza gidin: https://club.leiphone.com/page/TextTranslation/614

AI Araştırma Enstitüsü'nde daha heyecan verici içerikler mevcuttur. Lei Feng Ağı Lei Feng Ağı

Farklı alanlar arasında bilgisayar görüşü, konuşma semantiği, blok zinciri, otonom sürüş, veri madenciliği, akıllı kontrol, programlama dilleri ve diğer günlük güncellemeler bulunur.

Lei Feng

Changan Mazda'nın yeni araba planları yeni CX-3 ve CX-5'i ortaya çıkarıyor
önceki
Kral zafer o klasik beş siyah rutinleri envanterinde
Sonraki
Başarıyla kontrol edin! Gestton sizi CIIC 2019'u görmeye götürüyor
NIKE, gelecek sezon için yeni bir NBA forması çıkarıyor. Kıyafetlerin neden yapıldığını tahmin edemezsin ...
Yaramaz Filmler: "Wonder Woman 3" modern bir hikaye anlatacak, "Black Widow" Marvel'in ilk R dereceli filmi olacak mı?
Buick'in yeni Regal beyannamesi haritası veya Nisan ayında Şanghay Otomobil Fuarı'nda lansmanı
Sahibinin sevdiğini yapmak için çok uğraşın, Da pratik becerilere sahiptir
Siyah ruh tekrar saldırıyor! NIKE ve Rei Kawakubo ortak bir yeni çalışma getiriyor!
Yeni nesil AirPod'lar çevrimiçi: kablosuz şarj, Siri'yi uyandırmak için doğrudan ses
"Yoksul hükümet" Guanfo İkiz Şehirler tanıtım turu başladı Liu Qingyun tatlı bir hediye gönderdi, Zhang Jiahui bir beyin fırtınası savaşı düzenledi
Mi MIX 3 nihai şiddetli test bıçağı tutabilir, yakabilir ve bükebilir mi
Baidu tanıtımı mutlaka görülmesi gereken URL ayarlama becerileri
2017 Foday Lanfu dizel versiyonu 123.800'den satışa sunuldu
Üç gözlü sihir, Xiaotian saldırıyor! Benimle takım savaşı Yang Jian'ı kazanacak
To Top