Konvolüsyonel Sinir Ağları Ölçeği Duyarlılığı


11

Örnek olarak, bir kişinin resmine dayanarak bir yaş tahmincisi oluşturduğumuzu varsayalım. Aşağıda takım elbiseli iki kişi var, ancak birincisi açıkça ikincisinden daha genç.


(kaynak: tinytux.com )

Bunu ima eden birçok özellik vardır, örneğin yüz yapısı. Bununla birlikte, en çarpıcı özellik kafa boyutunun vücut boyutuna oranıdır :


(kaynak: wikimedia.org )

Diyelim ki kişinin yaşını tahmin etmek için bir CNN gerilemesi eğitimi aldık. Denediğim yaş tahmincilerinin çoğunda, çocuğun yukarıdaki görüntüsü, takım elbise nedeniyle ve büyük olasılıkla esas olarak yüze güvendikleri için daha büyük olduğunu düşünmeye kandırıyor gibi görünüyor:

Bir vanilya CNN mimarisinin kafa gövdesine oranını ne kadar iyi çıkardığını merak ediyorum?

Vücut ve kafa üzerinde sınırlayıcı kutular alabilen bölgesel bir RCNN ile karşılaştırıldığında, vanilya CNN her zaman daha kötü performans gösterecek mi?

Vanilya CNN'deki küresel düzleşmeden hemen önce (yani, tüm kıvrımlardan hemen sonra), her çıkışın ölçek hissi olması gereken karşılık gelen bir alıcı alanı vardır. Daha hızlı RCNN'nin tam olarak bu aşamada sınırlayıcı kutu teklifleri yaparak bundan faydalandığını biliyorum, böylece önceki tüm evrişimli filtreler otomatik olarak tüm ölçeklere eğitim veriyor.

Yani, vanilya CNN'nin başın gövde boyutuna oranını çıkartabilmesi gerektiğini düşünürdüm? Bu doğru mu? Eğer öyleyse, insanları tespit etme konusunda önceden eğitilmiş olabilecek gerçeği kullanmak için daha hızlı bir RCNN çerçevesi kullanmanın tek yararı mıdır?


1
Yaş recongnizer'ınızın tam olarak nerede başarısız olduğunu biliyor musunuz? Neden kafa boyutu oranı olduğunu düşünüyorsun? Orta katmanların çıktısına baktınız mı?
Aksakal

@Aksakal CNN eğitimi denediğini sanmıyorum. Anladığım kadarıyla, mevcut web hizmetleriyle testler yapıyor: "Denediğim birçok yaş tahmininde [..]".
DeltaIV

Yanıtlar:


8

İlk olarak, çok ilginç bir soru gönderdiğiniz için teşekkür ederiz.

Kısaca cevaplamak için, bir fotoğrafın yaşını tahmin etmek için 2-uçlu bir vanilya konturu , genellikle yayınladığınız gibi görüntüleri yanlış sınıflandırmaya eğilimli olacaktır . İkincisi, bir kişinin yaşını doğru bir şekilde tahmin etmenin neredeyse imkansız bir görev olduğunu unutmayın 1 .

Bazı nesne dedektörleri (RCNN, Daha hızlı RCNN, YOLO veya SSD) kullanarak önerilen yaklaşımınızdan temel fark, modelleri eğitmek için farklı bilgiler kullanmanızdır. CNN sadece görüntüler konusunda eğitilmiştir ve gerekli tüm özellikleri bulması gerekir. Büyük olasılıkla çeşitli yüz özellikleri bulacaktır, ancak aynı zamanda kıyafetlere ve belki de sahne özelliklerine de dayanacaktır (çocuklar bazı oyuncaklarla genellikle resimde olabilir, yetişkinlerin ofis ortamlarında daha olasıdır). Bu özellikler karşı örneğiniz için sağlam olmayacaktır.

Öte yandan, ağı "gövde" ve "kafa" olarak açıkça algılayacak şekilde eğitirseniz , bu nesnelerin görev için önemli olduğu konusunda ek bilgi sağlar ve böylece sorunu basitleştirir 2 .

Baş ve gövdeyi algılama ve ardından sınırlama kutularının boyut oranını değerlendirme yaklaşımı ilginç görünse de, birkaç engel görüyorum:

  1. Veri elde etme: Hem yaş hem de sınırlayıcı kutuların mevcut olacağı büyük veri kümesinin kullanılabilirliğinin farkında değilim.
  2. Kusurlu FOV: Çoğu görüntüde (örneğin her iki örnekte de), insanlar tam olarak görüntülenmez. Gövde sınırlayıcı kutuların her zaman mükemmel olmayacağı gerçeğiyle uğraşmanız gerekecek çünkü kişinin bir kısmı görüntüde değil ve net, büyük kısmın ne kadar eksik olduğunu tahmin etmek zorunda kalacaktı (ve zemin hakikati sınırlayıcı kutular en çok muhtemelen bu bilgileri yakalamaz). Ayrıca, yukarıda bahsedilen nesne dedektörleri, kısmi nesnelerin tahminlerini her zaman düzgün işlemez. Bu modelde çok fazla gürültü yaratabilir.
  3. Çeşitli pozlar: Gövde-kafa oranı önden ve yandan görülen insanlar için çok farklı olacaktır.
  4. Yetişkinler: Oran 0-21 yaşları tahmin etmek için iyi çalışıyor, ancak yetişkinlerin yaşlarını tahmin etmenin nasıl yardımcı olacağını görmüyorum (sanırım oran daha yüksek yaşta değişmez).

Tüm bu problemler, kafa-gövde oranı yaklaşımının da mükemmel bir şekilde işe yaramayacağını düşündürmektedir, ancak özel karşı örneğiniz için daha sağlam olabilir.

Bu görevi yerine getirmenin en iyi yolu 1) yüzü tespit etmek, 2) sadece yüz mahsulünden yaşı tahmin etmek (potansiyel olarak yanıltıcı bilgileri kaldırır) olacaktır. ROI-havuzlaması kullanan bazı R-CNN benzeri mimarinin bu uç-uçta yapılması için eğitilebileceğini unutmayın.


1 Çok sofistike tıbbi yöntemler (ki muhtemelen bir kişinin fotoğrafından çok daha bilgilendirici) bile olsa, bunu doğru yapmak mümkün değildir. Daha fazla bilgi için bu Quora konusuna bakın .

2 Görevle ilgili bazı ara bilgi sağlamanın öğrenmeyi büyük ölçüde basitleştirebileceğine dair bir örnek için Bilgi Önemlidir: Optimizasyon için Ön Bilgilerin Önemi makalesine bakın .


8

CNN'ler bu soruyu cevaplamak için çok büyük bir model sınıfı. LeNet, AlexNet, ZFNet ve VGG16, bir CNN mimarisiyle özel olarak R-CNN'nin yaptıklarının çoğunu yapmak için inşa edilen GoogLeNet'ten çok farklı davranacaktır (kesinlikle konuşan Inception adıyla GoogLeNet'i biliyor olabilirsiniz. GoogLeNet'in oluşturulduğu temel birim (alt ağ). Son olarak, ResNets farklı davranacaktır. Ve tüm bu mimariler yaş sınıflarını sınıflandırmak için değil, insanlar için yaş sınıflarını içermeyen 1000 ImageNet sınıfları. Transfer öğrenmeyi kullanabilir(yeterli eğitim görüntünüz varsa) yukarıdaki yaygın olarak eğitilmiş modellerden birini eğitmek ve nasıl performans gösterdiğini görmek için. Bununla birlikte genel olarak, özellikle eski mimariler (diyelim ki VGG16'ya kadar), "kafa" (zaten karmaşık bir özellik), "gövde" (başka bir karmaşık özellik) ve bunların oranı (iki özelliğin belirli bir uzamsal ilişkide olmasını da gerektirir). Bu tür şeyler Kapsül Ağlarının yapabilmesi gereken şeydi.

Convnets tam tersini yapmak için doğdu: yerel özelliklere duyarlı ve göreceli pozisyonlarına / ölçeklerine nispeten duyarsız olun. İyi bir Convnet, resmin yakın çekim mi yoksa Amerikan fotoğrafı mı olduğunu "beyaz kedi" olarak tanımalıdır. Evrişimli katmanları (yerel özelliklere duyarlı olan) havuz katmanlarıyla (görüntünün ölçeğinde veya görüntünün varyasyonundaki hassasiyetin bir kısmını kaldıran) birleştirmek, size en temel formunda mekansal türünü öğrenmede büyük olmayan bir mimari verir. aradığınız nesneler arasındaki ilişkiler. Bir yerde bir örnek vardı (ancak artık bulamıyorum), bir kedi görüntüsünü çeşitli dikdörtgen olmayan örtüşen fayanslara böldükten ve rastgele bir sıraya yerleştirdikten sonra, CNN görüntüyü şu şekilde tanımlamaya devam edecekti:cat. Bu, CNN'lerin yerel özelliklere (dokular veya benzeri bir şey) yüksek düzey özellikler arasındaki mekansal ilişkiye göre daha duyarlı olduğunu gösterir. Bunun tartışılması için Kapsül ağları belgesine de bakınız . Hinton ayrıca , konnets sınırlarıyla ilgili bir videoda bunun bir örneğini gösterdi .

Benim vahşi tahminim, son mimarilerden birinin erkekleri çocuklardan ayırt edebilmesinin mükemmel bir yeteneğine sahip olacağı (yeterli veri verildiği), ancak "kafa" ve "gövde" gibi üst düzey özellikler arasındaki metrik ilişki üzerindeki "eşik" nedeniyle değil. . Eğitim setindeki yetişkin görüntülerini çocuk imgelerinden ayıran, belki de tamamen insanlar tarafından fark edilmeyen bazı istatistiksel düzenlilik öğrenecekti.


Cevabınızı takdir ediyorum, ancak anlaşmakta güçlük çekiyorum. RCNN mimarileri esasen nesne konnetleriyle, örneğin VGG ve Resnet ile aynı filtre yapısına sahiptir. RCNN ölçeği ve bağıl konumu tespit edebildiğinden, VGG ve Resnet'in ölçeği de tespit edebilmesi gerekir. Bununla birlikte, RCNN mimarileri, görüntü başına binlerce yaptıkları kutu tekliflerine dayanır ve daha sonra her bir kutu teklifi değerlendirilir. Görünüşe göre bu kutu tekliflerinden en azından bazılarını dahil edersem, vanilya CNN ölçeği daha iyi tespit etmelidir. Bunun gerekli olup olmadığından emin değilim.
Alex R.

RCNN, CNN değildir. Sınırlayıcı kutular için seçici aramayı kaçırmazsınız, aynı zamanda doğrusal SVM ve sınırlayıcı kutu regresör aşamalarını da kaçırırsınız. Ayrıca, AlexNet ölçeğini (orijinal RCNN kağıdında kullanılan CNN olanı) veya VGG'yi algılama yeteneği ile GoogLeNet veya ResNet'in yeteneği arasında büyük bir fark vardır: GoogLeNet, RCNN'nin yaptığı şeyi tam olarak yapmak için geliştirilmiştir. Hem GoogLeNet'in hem de ResNet'in yaşını sınıflandırabileceğini düşünüyorum, ancak bize mantıklı bir özellik kullanarak (kafa / gövde oranı) veya bazı istatistiksel 1 /
DeltaIV

2 / bir insanın asla fark etmeyeceği düzenlilikler. Denemenizi ve denemenizi öneririm, ancak maalesef sadece görüntü veritabanını oluşturmak kendi başına bir araştırma projesi olacaktır (bir moda şirketinde çalışmadığınız sürece).
DeltaIV

1
Karışıklık için özür dilerim. Orada her biri diğerinin eski olduğunu iddia eden 20 farklı RCNN mimarisi olduğunu biliyorum.
Alex

1
blog.piekniewski.info/2016/12/29/can-a-deep-net-see-a-cat Ayrıca, farklı bir sorun, ancak yine de doku eşleşmesi ile ilgili ve daha saygın araştırmacılardan, arxiv.org/pdf/ 1703.06857
DeltaIV

0

Her şey, veri kümenizin nasıl oluşturulduğuna bağlıdır. Deneyimlerime göre sinir ağları en basit açıklamalara yöneliyor. Ve çağın kıyafetten çıkması aslında kafa-vücut oranını kullanmaktan daha kolaydır. Veri kümenizi bunu akılda tutarak genişletebiliyorsanız, CNN'niz beklendiği gibi çalışmalıdır.

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.