Konvolüsyonel Sinir Ağları neden sınıflandırmak için bir Destek Vektör Makinesi kullanmıyor?


46

Son yıllarda, Konvolüsyonel Sinir Ağları (CNN'ler) bilgisayar vizyonunda nesne tanıma konusunda son teknoloji haline geldi. Tipik olarak, bir CNN birkaç evrimli tabakadan sonra bunu iki tam bağlı tabakadan oluşur. Bunun arkasındaki sezgisi, evrişimli katmanların girdi verilerinin daha iyi bir gösterimini öğrenmesi ve tam olarak bağlı olan katmanlar daha sonra bu gösterimi bir etiket kümesine göre sınıflandırmayı öğrenmesidir.

Bununla birlikte, CNN'ler baskın hale gelmeden önce, Destek Vektör Makineleri (SVM'ler) en gelişmiş teknolojisiydi. Bu nedenle, bir SVM'nin hala iki katmanlı, tamamen bağlı bir sinir ağından daha güçlü bir sınıflandırıcı olduğunu söylemek mantıklı görünüyor. Bu nedenle, en gelişmiş CNN'lerin neden SVM yerine sınıflandırma için tamamen bağlantılı katmanları kullanma eğiliminde olduklarını merak ediyorum? Bu şekilde, her iki dünyanın en iyisine sahip olacaksınız: güçlü bir özellik gösterimi ve güçlü bir özellik gösterimi yerine güçlü bir sınıflandırıcı, ancak zayıf bir sınıflandırıcı ...

Herhangi bir fikir?

Yanıtlar:


54

Yapılabilir; Bir ICML atölye çalışmasında, Lineer Destek Vektörü Makinelerini Kullanarak Derin Öğrenme , Tang (2013) tam olarak bunu yaptı ve küçük ama tutarlı gelişmeler buldu. Bazen CNN'leri tipik bir şekilde eğitmek de yapılır, ancak geç bir katmanın çıktısını "özellikler" olarak alır ve bu konuda ayrı bir SVM yetiştirir.

Not, ancak, bunlar ile olduğu doğrusal SVM'ler ve gerçekten, bir doğrusal SVM ve (sigmoid aktivasyonu ile tek bir ikili-çıkış katmanına eşdeğerdir) lojistik regresyon arasındaki fark oldukça küçüktür. Öğrenmek için yeterli veriye sahip olduğunuz varsayılarak, ağın ek katmanı, aslında son iki katmanı doğrusal bir SVM'den daha güçlü kılar - elbette tam olarak bağlı bir sigmoid veya ReLU katmanı yapıp sonra en son bir SVM katmanı koyabilirsiniz.

Ayrıca, çok sınıflı çıktılar için softmax aktivasyonları çok sınıflı SVM'lerden daha doğaldır ve bence bu kağıdın SVM yaklaşımı biraz daha hesaplama açısından daha yoğun. Yani insanlar genellikle buna değeceğini sanmazlar.


0

Görebildiğim kadarıyla, en azından çift farklılıklar var:

  1. CNN'ler görüntü verileriyle çalışacak şekilde tasarlanmıştır, SVM ise daha genel bir sınıflandırıcıdır;
  2. CNN'ler özellikleri çıkarırken, SVM girişini sınıflar arasındaki farkların ortaya çıkabileceği (umarım);
  3. 2. ile benzer şekilde, CNN'ler sığ iken, CNN'ler derin mimarilerdir;
  4. Öğrenme hedefleri farklıdır: SVM'ler marjı maksimize etmeye çalışırken, CNN'ler değildir (daha fazla bilgi isterler)

Bu, SVM'lerin CNN'ler kadar iyi çalışabileceği ve iyi özelliklerin iyi bir çekirdek işlevi ile kullanılması koşuluyla çalışabileceğini söylemektedir.


4
Sanırım soruyu yanlış anlamış olabilirsiniz; CNN'nin sonunda bir "SVM katmanı" kullanmakla ilgilidir.
Dougal

4
Bir CNN ve bir SVM arasındaki farkı anlıyorum ancak @Dougal'in dediği gibi, bir CNN'nin son katmanı hakkında daha fazla bilgi istiyorum. Tipik olarak, bu tamamen bağlı bir sinir ağıdır, ancak iki katmanlı sinir ağından daha güçlü olma eğiliminde oldukları için SVM'lerin neden kullanılmadığından emin değilim.
Karnivaurus

6
@Karnivaurus Sorunuzu yanlış okuduğunuz için özür dilerim. Fikir yeni değil. Tipik olarak, son katman atılır ve son katmanın çıktısı, diğer sınıflandırma algoritmalarında özellik olarak kullanılır. Neden sürekli ve her yerde yapılmıyor? Son katmanın özellikleri tipik olarak öyle ayırt edicidir ki, SVM gibi karmaşık bir kara kutuya ihtiyaç duyulmaz, basit bir Lojistik Regresyon bu işi yapar. Bu benim şeylerle ilgili vizyonum.
Vladislavs Dovgalecs
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.