SVM ve bir algılayıcı arasındaki fark


29

Bir SVM ve bir algılayıcı arasındaki fark ile biraz kafam karıştı. Anlayışımı burada özetlemeye çalışmama izin verin, lütfen yanlış olduğum yeri düzeltmek ve kaçırdıklarımı doldurmaktan çekinmeyin.

  1. Perceptron, "uzaklık" mesafesini optimize etmeye çalışmaz. İki takımı birbirinden ayıran bir hiper uçağı bulduğu sürece, iyidir. Öte yandan SVM, "destek vektörünü", yani en yakın iki karşıt numune noktası arasındaki mesafeyi maksimize etmeye çalışır.

  2. SVM tipik olarak, numune noktalarının doğrusal olarak ayrılabilir olmasını sağlamak için örnek noktalarını yüksek boyut uzayına yansıtmak için bir "çekirdek işlevi" kullanmaya çalışır, bununla birlikte, algılayıcı, örnek noktaların doğrusal olarak ayrılabilir olduğunu varsayar.


Yanıtlar:


18

Bana doğru geliyor. İnsanlar bazen sınıflayıcı ile birlikte eğitim algoritmasına atıfta bulunmak için "Perceptron" kelimesini de kullanırlar. Örneğin, birileri bu sorunun cevabını bana açıkladı . Ayrıca, algılayıcı ile birlikte bir çekirdek kullanmaktan alıkoyacak hiçbir şey yoktur ve bu genellikle daha iyi bir sınıflandırıcıdır. Çekirdek algılayıcısının nasıl uygulanacağı hakkında bazı slaytlar (pdf) için buraya bakınız .

Bir (çekirdek) algılayıcı ve SVM arasındaki temel pratik fark, algılayıcıların çevrimiçi olarak eğitilebilmesidir (yani, bir seferde yeni örnekler geldiğinde ağırlıkları güncellenebilir), oysaki SVM'ler olamaz. SVM'lerin çevrimiçi olarak eğitilebileceği hakkında bilgi için bu soruya bakın . Bu nedenle, bir SVM genellikle daha iyi bir sınıflandırıcı olsa da, algılayıcılar hala yararlı olabilir çünkü taze eğitim verilerinin sürekli olarak geldiği bir durumda yeniden eğitilmeleri ucuz ve kolaydır.


3
SVM'ler çevrimiçi olarak eğitilebilir. İkili bir çözümden ilgili primali elde edebilirsiniz ve bundan bir başkasını stokastik şekilde güncellersiniz.
Firebug


4

SVM:

minw2+CΣben=1n(1-yben(wxben+w0))+
Perceptron
minΣben=1n(-yben(wxben+w0))+

SVM'nin neredeyse L2 düzenli perceptron ile aynı hedefe sahip olduğunu görebiliyoruz.

Amaç farklı olduğu için, bu iki algoritma için farklı optimizasyon şemalarına sahibiz.w2 optimize etmek için ikinci dereceden programlama kullanmanın temel nedeni olduğunu görüyoruz.

Perceptron neden çevrimiçi güncellemeye izin veriyor? Menteşe kaybı için gradyan iniş güncelleme kuralını görürseniz (menteşe kaybı hem SVM hem de perceptron tarafından kullanılır),

wt=wt-1+η1N-Σben=1N-ybenxbenben(ybenwtxben0)

Çünkü tüm makine öğrenme algoritmaları, kayıp fonksiyonunun ve optimizasyon algoritmasının birleşimi olarak görülebilir.

Perceptron, menteşe kaybından (kayıp fonksiyonu) + stokastik gradyan inişinden (optimizasyon) fazla değildir

wt=wt-1+yy+1xt+1ben(yt+1wtxt+10)

SVM, menteşe kaybı +2 düzenlileştirme (kayıp + düzenlileştirme) + ikinci dereceden programlama veya SMO (optimizasyon) gibi diğer meraklı optimizasyon algoritmaları olarak görülebilir.


-1

Perceptron, SVM'nin optimal stabiliteye sahip perceptron olduğu genellemedir. Yani, algılayıcının ayırma mesafesini optimize etmeye çalışmadığını söylerken haklısın.

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.