Konvolüsyonel sinir ağları neden çalışıyor?


22

İnsanların evrişimsel sinir ağlarının neden hala yeterince anlaşılmadığını söylediğini sık sık duydum. Konvolüsyonel sinir ağlarının neden katmanları yükseltirken gittikçe daha da karmaşıklaşan özellikler öğrenmeye başladığı biliniyor mu? Böyle bir özellik yığını yaratmalarına neden olan şey nedir ve bu, diğer derin sinir ağları türleri için de geçerli olabilir mi?


Bu videonun ikinci yarısında Jeremy Howard'dan harika bir açıklama: youtube.com/watch?v=ACU-T9L4_lI
Dan

2
Bence yanlış anladın. Konvnetlerin neden bir algoritma sınıfı olarak çalıştığını gayet iyi anlıyoruz. Öte yandan, belirli bir modelin neden belirli bir öngörüde bulunduğunu anlamak genellikle çok zordur. Bu, "kara kutu modelleri diyoruz neden: kendi çıkarım işlemi bize opak Yani biz onlar etkilidir neden karıştı anlamına gelmez..
David Marx

Yanıtlar:


19

Aslında sanırım soru biraz geniş! Neyse.

Konvolüsyon Ağlarını Anlamak

Öğrenilenler ConvNets, sınıflandırma görevlerinde girdileri doğru şekilde sınıflandırmak için maliyet işlevini en aza indirmeye çalışır. Tüm parametre değiştirme ve öğrenilen filtreler belirtilen hedefe ulaşmak için.

Farklı Katmanlardaki Öğrenilmiş Özellikler

İlk katmanlarındaki yatay ve dikey çizgiler gibi özellikleri düşük seviyede, bazen anlamsız, bazen öğrenerek maliyeti düşürmeye çalışırlar ve daha sonra son katmanlarında genellikle anlamlı olan soyut şekiller oluşturmak için istiflenirler. Bu resmi göstermek için. Buradan kullanılmış olan 1 kabul edilebilir. Giriş veriyoludur ve gird, girişi birinci katmandaki farklı filtrelerden geçirdikten sonra yapılan aktiviteleri gösterir. Görülebildiği gibi, parametrelerinin öğrenildiği bir filtrenin aktivasyonu olan kırmızı çerçeve, nispeten yatay kenarlar için aktive edilmiştir. Mavi çerçeve nispeten dikey kenarlar için etkinleştirildi. Bu mümkünConvNetsyararlı olan bilinmeyen filtreleri öğreniriz ve örneğin, bilgisayarlı görme pratisyenleri olarak bunların yararlı olabileceğini keşfetmedik. Bu ağların en iyi yanı, kendi başlarına uygun filtreler bulmaya çalıştıkları ve sınırlı keşif filtrelerimizi kullanmadıklarıdır. Maliyet fonksiyonunun miktarını azaltmak için filtreler öğrenirler. Belirtildiği gibi, bu filtreler mutlaka bilinmemektedir.

** Şekil 1. ** * Düşük seviye aktivasyonları *

Daha derin katmanlarda, önceki katmanlarda öğrenilen özellikler bir araya gelir ve çoğunlukla anlamı olan şekiller oluşturur. Olarak , bu kağıt bu tabakalar bize veya insan olarak, bildirilen anlamı kavramlarla anlamlı etkinleştirme olabileceğini ele alınmıştır, diğer etkinleştirme arasında dağıtılabilir. İncirde. Şekil 2, yeşil çerçeve, bir filtrenin aktivatinlerini, beşinci katınConvNet. Bu filtre yüzleri önemser. Diyelim ki kırmızı olanın saçla ilgileniyor. Bunların anlamı var. Görülebildiği gibi, girişteki tipik yüzlerin konumunda doğru aktive edilmiş olan başka aktivasyonlar vardır, yeşil çerçeve bunlardan biridir; Mavi çerçeve bunlara başka bir örnektir. Buna göre, şekillerin soyutlanması bir filtre veya çok sayıda filtre ile öğrenilebilir. Başka bir deyişle, yüz ve bileşenleri gibi her kavram, filtreler arasında dağıtılabilir. Kavramların farklı katmanlar arasında dağıldığı durumlarda, eğer her birine birisi bakarsa, karmaşık olabilir. Bilgi aralarında dağılmıştır ve tüm bu filtrelerin ve bunların aktivasyonlarının, çok karmaşık görünmelerine rağmen, dikkate alınması gerektiğini anlamak için.

** Şekil 2. ** * Yüksek seviye aktivasyonları *

CNNsKara kutu olarak kabul edilmemelidir. Zeiler ve diğerleri , bu şaşırtıcı makalede , bu ağların içinde ne yapıldığını anlamadığınız takdirde , daha iyi modellerin geliştirilmesinin deneme yanılma durumuna düşürüldüğünü tartıştılar . Bu makale özellik haritalarını görselleştirmeye çalışır ConvNets.

Genelleştirilmesi Gereken Farklı Dönüşümleri Yönetme Yeteneği

ConvNetskullanmak poolingparametre sayısını azaltmak için değil, aynı zamanda her bir özelliğin tam yerine karşı olmak için yeteneği var, sadece katmanları. Ayrıca bunların kullanımı, katmanların farklı özellikleri öğrenmesini sağlar; bu, ilk katmanların kenarlar veya yaylar gibi basit düşük düzey özellikleri öğrendiği ve daha derin katmanların gözler veya kaşlar gibi daha karmaşık özellikleri öğrendiği anlamına gelir. Max Poolingörneğin, özel bir bölgede özel bir özelliğin olup olmadığını araştırmaya çalışır. poolingKatmanlar fikri çok faydalıdır ancak diğer dönüşümler arasındaki geçişi idare edebilmektedir. Her ne kadar farklı katmanlardaki filtreler farklı desenler bulmaya çalışsalar da, örneğin döndürülmüş bir yüz normal bir yüzden farklı katmanlar kullanılarak öğrenilir,CNNskendi başına diğer dönüşümleri idare edecek herhangi bir katman yoktur. Bunu göstermek için, basit yüzleri minimum netlikte döndürmeden basit yüzler öğrenmek istediğinizi varsayalım. Bu durumda modeliniz bunu mükemmel yapabilir. İstediğiniz yüz rotasyonuyla her türlü yüzü öğrenmeniz istendiğini varsayalım. Bu durumda, modelinizin önceki öğrenilen ağdan çok daha büyük olması gerekir. Bunun nedeni girdideki bu dönüşleri öğrenmek için filtrelerin olması gerektiğidir. Maalesef bunların hepsi dönüşüm değil. Girişiniz de bozuk olabilir. Bu davalar Max Jaderberg ve öfkesini kızdırdı. Bu makaleyi, bu sorunların üstesinden gelmek için öfkemizi olduğu gibi çözmek için bestelediler .

Evrişimsel Sinir Ağları Çalışıyor

Sonunda bu noktalara değindikten sonra çalışırlar çünkü giriş verilerinde kalıp bulmaya çalışırlar. Onları, evrişim katmanları ile soyut kavramlar yapmak için istiflerler. Giriş verilerinin bu kavramların her birine sahip olup olmadığını bulmaya çalışırlar ve giriş verilerinin hangi sınıfa ait olduğunu bulmak için yoğun katmanlarda yokturlar.

Yardımcı olabilecek bazı bağlantılar eklerim:


12

ConvNets özelliği, yerellik özelliklerinden yararlandıkları için çalışır. Bunu farklı ayrıntı derecelerinde yapıyorlar, dolayısıyla hiyerarşik olarak daha yüksek seviyeli özellikleri modelleyebiliyorlar . Havuz birimleri sayesinde çeviri değişmezleridir. Kendi başlarına rotasyon değişmezleri değildir , ancak genellikle aynı filtrelerin döndürülmüş versiyonları olan filtrelere birleşirler , bu nedenle döndürülmüş girişleri desteklerler.

ConvNets ile aynı şekilde özellik lokasyonundan yararlanan başka bir sinir mimarisi olmadığını biliyorum.


1
RNN'lerin CNN'lere benzer bir şekilde fayda sağladığını ve zaman serisindeki ağırlıkları tekrar kullandığını söyleyebilirim. CNN'ler aynı zamanda zorunlu bir çeviri değişmezliği değil, “boyutsal değişmezlik” olarak da düşünülebilir (bunun doğru veya tanınmış bir terim olduğundan emin
Neil Slater

Cevabınız için teşekkürler. Aşağıdaki sonuçlardan yanılmıyorsam beni düzeltin - 1. ConvNets'i, havuza alma sırasında hiyerarşik olarak daha yüksek seviyeli özellikler öğrenmek için örtük olarak tasarladık. Bu özelliklerin katmanlar kadar karmaşıklaşması bir kaza değil. 2. Alan bilgilerinin birinin sinir ağı tasarımına dahil edilmesi, öğrenme verimliliğinde büyük fark yaratabilir. ConvNets ve RNN'ler bunu yapmaya çalışıyor.
Efendinizi

İfadeleriniz 1 ve 2 bana uygun görünüyor
ncasas,

1
Bence kapsül ağları özellik lokalitesini de benzer şekilde kullanmalıydı
David Marx

3

Biri tipik bir ConvNet'teki diğer bileşenleri asla unutmamalıdır. Evrişim filtreleri, kenarlar ve daireler gibi mekansal değişmeyen özellikleri ortaya çıkarır. Bu özellikler, C katmanını takip eden bir havuz katmanında ölçülür. Son olarak, (genellikle) çoklu tamamen bağlı katmanlara (fc) beslenirler. Herhangi bir normal MLP'de bulduğunuzdan başka bir şey olmayan bu tamamen bağlantılı katmanlara kredi verilmelidir.


3

Konvolüsyonel sinir ağları çalışır, çünkü standart derin öğrenme algoritmasının iyi bir uzantısıdır.

Sınırsız kaynaklar ve paralar göz önüne alındığında, standart algoritma da işe yarayacağı için evrişime gerek yoktur. Bununla birlikte, evrişim daha verimlidir çünkü parametre sayısını azaltır . Azalma mümkündür, çünkü özellik konumu, @ ncasas'ın yazdığı gibi.


Bu en iyi cevap olmalı
Jie.Zhou

1

Konvolüsyonel sinir ağlarının neden katmanları yükseltirken gittikçe daha da karmaşıklaşan özellikler öğrenmeye başladığı biliniyor mu?

Bu saf matematik. Günün sonunda bir sinir ağı, büyük bir matematiksel fonksiyondur. Ağ ne kadar derin olursa, temsil ettiği işlev o kadar büyük olur. Ve daha büyük, açıkça, yüksek boyutlu demek. Öğrenilen özellikler daha karmaşıktır çünkü daha sofistike fonksiyonların sonuçlarıdır.

Onlara böyle bir özellik yığını oluşturmalarına neden olan şey

İlginçtir ki, geleneksel sinir ağları kendi kedimizin biyolojisinden esinlenmiştir. Hubel ve Wiesel , kedilerin görsel korteksi üzerinde deneyler yaptı ve ışığın optik alan yığınları tarafından algılandığını fark ettiler. Bu, evrişimli tabakaya ve daha derin bir mimariye ilham veren şeydi.


0

Bina ncasas ve horaceT cevapları, ConvNets çünkü çok verimli:

  1. Geometrik dönüşümlere elverişlidirler ve gittikçe karmaşıklaşan ve detaylı hale gelen özellikleri öğrenirler, dolayısıyla evrişimli katmanlar sayesinde güçlü hiyerarşik özellik çıkarıcıları olurlar .
  2. Çıkarılan özellikleri bir araya getirirler ve çıktıyı tahmin etmek için lineer olmayan bir şekilde toplarlar ve bu nedenle tamamen bağlı katmanlar sayesinde sağlam sınıflandırıcı olurlar .

Convnet'ler ve onları oluşturan farklı bloklar ve bunların altında yatan sezgiler hakkında daha fazla bilgi edinmek istiyorsanız, son zamanlarda kişisel bloguma ayrıntılardan geçen bir yazı yazdım.


3
Lütfen kendi ürününüzü / blogunuzu tanıtmak istiyorsanız , üyeliğinizi cevapta açıklamanız gerektiğini unutmayın ; aksi halde yanıtınız spam olarak işaretlenebilir. Siteye bağlı değilseniz, bunu önlemek için söylemenizi tavsiye ederim. Lütfen bir spam gönderici nasıl olunmaz
AJ
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.