Bir Destek Vektör Makinesi (SVM) nasıl çalışır?


108

Bir Destek Vektörü Makinesi (SVM) nasıl çalışır ve onu Lineer Algılayıcı , Lineer Ayrımcı Analizi veya Lojistik Regresyon gibi diğer doğrusal sınıflandırıcılardan ayıran nedir? *

(* Algoritma, optimizasyon stratejileri, genelleme yetenekleri ve çalışma zamanı karmaşıklığı için altta yatan motivasyonları düşünüyorum. )



Yanıtlar:


126

Destek vektör makineleri yalnızca ayırt edilmesi en zor noktalara odaklanırken, diğer sınıflandırıcılar tüm noktalara dikkat eder.

Destek vektörü makine yaklaşımının arkasındaki sezgi, bir sınıflandırıcının en zorlayıcı karşılaştırmalarda iyi olması durumunda (B ve A'da Şekil 2'de birbirine en yakın olan noktaların), sınıflandırıcının kolay karşılaştırmalarda daha iyi olacağıdır ( B ve A'daki birbirlerinden uzak noktaları karşılaştırmak).

Algılayıcılar ve diğer sınıflandırıcılar:

Algılayıcılar bir seferde bir nokta alarak ve ayırma çizgisini buna göre ayarlayarak oluşturulur. Bütün noktalar ayrılır ayrılmaz, algılayıcı algoritması durur. Ama her yerde durabilirdi. Şekil 1, verileri ayıran çok sayıda farklı bölme çizgisinin olduğunu göstermektedir. Algılayıcının durma kriterleri basittir: "% 100 ayırma elde ettiğinizde noktaları ayırın ve çizgiyi iyileştirmeyi bırakın". Perceptron'a açıkça en iyi ayırım çizgisini bulması söylenmedi. Lojistik regresyon ve doğrusal diskriminant modelleri, algılayıcılara benzer şekilde yapılmıştır.

En iyi bölme çizgisi, A'ya en yakın B noktaları ile B'ye en yakın A noktaları arasındaki mesafeyi maksimuma çıkarır. Bunu yapmak için tüm noktalara bakmak gerekmez. Aslında, çok uzak noktalardan gelen geri bildirimleri birleştirmek, aşağıda görüldüğü gibi çizgiyi biraz fazla uzatabilir.

görüntü tanımını buraya girin

Vektör makineleri desteklemek:

Diğer sınıflandırıcılardan farklı olarak, destek vektör makinesine açıkça en iyi ayırım çizgisini bulması söylenir. Nasıl? Destek vektörü makinesi, "destek vektörleri" olarak adlandırdığı en yakın noktaları (Şekil 2) arar ("destek vektörü makinesi" adı, noktaların vektörler gibi olması ve en iyi çizginin "bağlı" olması nedeniyle veya En yakın noktalar "tarafından desteklenir".

En yakın noktaları bulduktan sonra, SVM bunları birleştiren bir çizgi çizer (Şekil 2'de 'w' etiketli çizgiye bakın). Bu bağlantı hattını vektör çıkarma yaparak çizer (A noktası - B noktası). Destek vektörü makinesi daha sonra, en iyi ayırma çizgisini, ikiye bölen - ve - bağlantı hattına dik olan çizgi olarak ilan eder.

Destek vektör makinesi daha iyidir, çünkü yeni bir örnek aldığınızda (yeni puanlar), B ve A'yı birbirinden mümkün olduğunca uzakta tutan bir hat yapmış olacaksınız ve bu nedenle birinin çarpması daha az olasıdır. diğerinin topraklarına giren çizgi.

görüntü tanımını buraya girin

Kendimi görsel bir öğrenen olarak görüyorum ve uzun süre destek vektör makinelerinin arkasındaki sezgiyle mücadele ettim. SVM Sınıflandırıcılarında İkilik ve Geometri adı verilen yazı sonunda ışığı görmeme yardımcı oldu; görüntüleri oradan aldım.


4
Başka bir görsel öğreniciden +1! Okuyucu için, yukarıdaki şekilde görülen bu sınırların, daha önce dönüştürülmüş bir veri kümesine dayandığını not etmek isterim. Ham veri seti değil.
Kingz,

İki yıldan daha uzun bir süredir svm okuyan bugün ayırma çizgisinin nasıl belirlendiğini ve birkaç şey daha olduğunu anladı. Temiz cevap için teşekkürler.
user123 22:16

53

Ryan Zotti'nin cevabı , karar sınırlarının maksimize edilmesinin ardındaki motivasyonu açıklıyor, carlosdc'ın cevabı , diğer sınıflandırıcılara göre bazı benzerlikler ve farklılıklar veriyor. Bu cevapta SVM'lerin nasıl eğitildiğine ve kullanıldığına dair kısa bir matematiksel bakış vereceğim.

Gösterimler

Aşağıda, skalerler italik büyük harf ile belirtilmiştir (örneğin, ), kalın büyük harf ile vektörler (örn, ) italik uppercases ile, ve matrisler (ör ). , ve .y,bw,xWwTww=wTw

İzin Vermek:

  • x bir özellik vektörü (yani, SVM'nin girişi) olabilir. , burada , özellik vektörünün boyutudur.xRnn
  • ySınıf ( , SVM'nin çıktısı). , yani sınıflandırma görevi ikilidir.y{1,1}
  • w ve , SVM'nin parametreleri olmalıdır: onları eğitim setini kullanarak öğrenmemiz gerekir.b
  • (x(i),y(i)) olmak veri kümesi içine örneği yerleştir. Eğitim setinde örneklerimiz olduğunu varsayalım .ithN

İle , aşağıdaki gibi bir SVM kararı sınırlarını temsil edebilir:n=2

görüntü tanımını buraya girin

Sınıf , aşağıdaki gibi tespit edilir:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

bu, daha kısa bir şekilde olarak yazılabilir .y(i)(wTx(i)+b)1

Hedef

SVM iki gereksinimi karşılamayı amaçlamaktadır:

  1. SVM, iki karar sınırı arasındaki mesafeyi maksimize etmelidir. Matematiksel olarak, bu, ile tanımlanan hiper düzlem ile tanımlanan hiper düzlem arasındaki mesafeyi maksimize etmek istediğimiz anlamına gelir. . Bu mesafe eşittir . Bu, çözmek istediğimiz anlamına gelir . Eşdeğer bir istediğimiz .wTx+b=1wTx+b=12wmaxw2wminww2

  2. SVM, tüm de doğru şekilde sınıflandırmalıdır , yanix(i)y(i)(wTx(i)+b)1,i{1,,N}

Bu bizi aşağıdaki ikinci dereceden optimizasyon sorununa götürür:

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

Bu kar marjı SVM'dir , çünkü bu ikinci dereceden optimizasyon sorunu, verilerin doğrusal olarak ayrılabilir olması durumunda bir çözüm getirmektedir.

Kişi, slack değişkenleri diye adlandırılarak kısıtlamaları . Eğitim setinin her bir örneğinin kendi gevşek değişkenine sahip olduğuna dikkat edin. Bu bize şu ikinci dereceden optimizasyon sorununu veriyor:ξ(i)

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Bu yumuşak marj SVM'dir . , hata teriminin cezası olarak adlandırılan bir hiperparametredir . ( Lineer çekirdeğe sahip SVM'lerde C'nin etkisi nedir? Ve SVM optimal parametrelerini belirlemek için hangi arama aralığı? ).C

Orijinal özellik alanını daha yüksek boyutlu bir özellik alanına eşleyen bir işlev ekleyerek daha da fazla esneklik ekleyebilirsiniz . Bu, doğrusal olmayan karar sınırlarına izin verir. İkinci dereceden optimizasyon problemi şöyle olur:ϕ

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Optimizasyon

İkinci dereceden optimizasyon problemi, Lagrangian ikili problemi adı verilen başka bir optimizasyon problemine dönüştürülebilir (önceki probleme ilkel denir ):

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Bu optimizasyon problemi basitleştirilebilir (bazı degradeler ayarlanarak ):0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w , olarak görünmüyor. ( temsilci teoremi tarafından belirtildiği gibi ).w=i=1Nα(i)y(i)ϕ(x(i))

Bu nedenle , eğitim setinin kullanarak öğreniyoruz .α(i)(x(i),y(i))

(FYI: Neden SVM takılırken ikili problemle uğraşmıyorsunuz? Kısa cevap: Daha hızlı hesaplama + çekirdek numarasının kullanılmasına izin verir, ancak primerde SVM'yi eğitmek için bazı iyi yöntemler vardır, örneğin bakınız {1}).

Bir tahmin yapma

Bir kez öğrenilir, tek bir özellik vektörü ile yeni bir numune sınıf tahmin edebilirsiniz aşağıdaki gibi:α(i)xtest

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

Toplama o, bir tüm eğitim örnekleri üzerinde toplanacak olan anlamına gelir, çünkü çok büyük olduğu görülebilir, fakat büyük bir çoğunluğu olan (bakınız Neden Lagrange çarpanları SVM'ler için seyrek midir? ) Pratikte bu bir sorun değildir. ( birinin tüm ) iff in bir destek vektörü olduğu özel durumlar oluşturabileceğine dikkat edin . . Yukarıdaki çizimde 3 destek vektörü vardır.i=1Nα(i)0α(i)>0α(i)=0x(i)

Çekirdek numarası

Bir optimizasyon problemi kullandığı gözlemleyebilirsiniz sadece iç çarpım içinde . Haritalar fonksiyonu iç çarpım için bir adlandırılan bir çekirdek genellikle ile gösterilen, diğer adıyla çekirdek fonksiyonu, .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k

Bir seçebilir iç çarpım hesaplamak için verimli olacak şekilde yerleştirin. Bu, düşük bir hesaplama maliyetiyle potansiyel olarak yüksek bir özellik alanı kullanmanıza izin verir. Buna çekirdek numarası denir . Bir çekirdek fonksiyonunun geçerli olması , yani çekirdek numarasıyla kullanılabilir olması için iki temel özelliği sağlaması gerekir . Seçilebilecek birçok çekirdek işlevi vardır . Bir yan not olarak, çekirdek numarası başka bir makine öğrenme modeline uygulanabilir , bu durumda çekirdek olarak adlandırılır .k

Daha ileri gidiyor

SVM'lerde bazı ilginç KG'lar:

Diğer bağlantılar:


Referanslar:


2
Merhaba Franck, cevabınız için çok teşekkürler. vektörünün neden SVM'nin oluşturduğu hiper düzlemle ortogonal olduğunu açıklar mısınız? Ve iki karar sınırı arasındaki mesafeyiw2w
tosik'e

3
Bu büyük yanıta ek olarak, SVM arkasında matematik üzerinden yürür bu videoyu tavsiye etmek istiyorum ve özellikle soru @tosik yorumladı açıklık youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

Çok güzel cevap. Bu bölümle ilgili tek bir açıklama: iff bir destek vektörüdür . Sınıflandırma için, toplama etkin bir şekilde destek vektörlerinin üzerindedir (yani, ). α(i)=0x(i)α(i)0
989,

13

Benzerlik ve diğer sınıflandırıcılardan farklılıklara odaklanacağım:

  • Bir algılayıcıdan: SVM menteşe kaybı ve L2 düzenlileşmesi kullanır, algılayıcı algılayıcı kaybını kullanır ve normalleştirme için erken durdurma (veya diğer teknikler arasında) kullanabilir, algılayıcıda normalleştirme terimi yoktur. Düzenleme terimi olmadığı için, algılayıcının fazla yorulmaya mecbur kalması nedeniyle genelleme yetenekleri keyfi olarak kötü olabilir. Optimizasyon stokastik gradyan inişi kullanılarak yapılır ve bu nedenle çok hızlıdır. Olumlu tarafı, bu makale, hafifçe değiştirilmiş bir kayıp fonksiyonu ile erken durma yaparak performansın bir SVM ile aynı olabileceğini göstermektedir.

  • Lojistik regresyondan: lojistik regresyon, lojistik kayıp terimini kullanır ve L1 veya L2 düzenini kullanabilir. Lojistik gerilemeyi, üretici saf-Bayes'in ayrımcı kardeşi olarak düşünebilirsiniz.

  • LDA'dan: LDA üretken bir algoritma olarak da görülebilir, olasılık yoğunluğu fonksiyonlarının (p (x | y = 0) ve p (x | y = 1) olasılıkla dağıldığını varsayar. homocedasticity LDA olur altında gerçeği normalde., Ancak sahiptir. "eğitim" (birçok özelliklere sahip olduğunda) büyük olabilen bir matrisin tersini gerektirir olumsuz dağıtılan QDA normalde dağıtılmış veri için Bayes en uygunudur. Anlamı eğer varsayımlar, bundan daha iyisini yapamayacağınız konusunda tatmin.

Çalışma zamanında (test zamanı), model eğitildikten sonra, tüm bu yöntemlerin karmaşıklığı aynıdır, sadece bulunan eğitim prosedürü ile veri noktası arasındaki hiper düzlem arasında bir nokta ürünüdür.


1
SVM'de çok yetenekli göründüğünüz için, şüphelerimi açıklığa kavuşturmanızı isteyeyim: en iyi ayrılan hiper uçağı bulduktan sonra ne için kullanıyoruz? SVM'yi, öncelikle veri noktalarını doğru şekilde sınıflandırmak için en iyi hiper düzlemi seçen bir yöntem olarak tanımlayabiliriz ve ikincisi, bu hiper uçağı iki sınıfta yeni veri noktalarını kesmek için kullanır. Sağ? (İkinci bölüm hakkında bazı şüphelerim var)
DavideChicco.it

1
@ DavideChicco.it Evet, genellikle sınıflandırıcının asıl amacı olan yeni verileri sınıflandırmak için gösterge işlevini kullanabiliriz. (Bunlardan herhangi biri için sözümü alma, hepsinde yeniyim).
anahtarcı

12

Teknik, ilk pozitif ve negatif örneklere mümkün olduğunca geniş bir marj bırakan bir karar sınırı çizgisi çizilmesine dayanır:

görüntü tanımını buraya girin

Yukarıdaki resimde olduğu gibi, ortogonal bir vektör , formun pozitif olarak kataloglanacağı bilinmeyen herhangi bir örnek için bir karar kriteri oluşturabiliriz:w=1u

wuC

Projeksiyonu, caddenin ortasındaki karar çizgisinin ötesine yerleştirecek bir değere karşılık gelir. olduğuna dikkat edin .wu=uw

Olumlu bir örnek için eşdeğer bir koşul:

(1)wu+b0

ileC=b.

Biz ihtiyacımız ve bir karar kuralı olması ve oraya ihtiyacımız olsun kısıtlamaları .bw

Uygulayacağımız ilk kısıtlama , herhangi bir pozitif örnek için ,, ; ve negatif örnekler için, . Bölüm sınırında veya hiper düzlemde ( medyan ) değer , oyuklardaki değerler ve :x+,wx++b1wx+b1011

görüntü tanımını buraya girin

Vektör olan ağırlıklar vektör ise, bir önyargı .wb


Birlikte bu iki eşitsizlikleri getirmek için, değişken tanıtabilirsiniz böylece pozitif örnekler için ve örnekler negatif ve eğer sonuçlandırmakyiyi=+1yi=1

yi(xiw+b)10.

Bu nedenle, bunun sıfırdan büyük olması gerektiğini tespit ediyoruz, ancak örnek, karar hiper düzlemi ile destek vektörlerinin uçları arasındaki ayrılma marjını maksimize eden hiper düzlemler üzerindeyse (bu satır çizgilerinde), sonra:

(2)yi(xiw+b)1=0

Bunun,yi(xiw+b)=1.

görüntü tanımını buraya girin


İkinci kısıtlama : Karar hiper düzleminin destek vektörlerinin uçlarına olan uzaklığı maksimize edilecektir. Başka bir deyişle, ayırma marjı ("sokak") en üst düzeye çıkarılacak:

görüntü tanımını buraya girin

Karar sınırına dik bir birim vektör varsayalım, , iki "sınır" artı ile eksi örnekler arasındaki farkın olduğu nokta ürün "caddenin" genişliğidir :w

width=(x+x)ww

Yukarıdaki denklemde üzerinde ve olan (ayrılmasını maksimize hiperdüzlemleri üzerinde) oluk. Bu nedenle, pozitif örnek için: veya ; ve negatif örnek için: . Yani, caddenin genişliğini yeniden düzenleyerek:x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

Şimdi caddenin genişliğini en üst düzeye çıkarmak zorundayız - yani en fazla en aza indirgemek veya2w,w

(4)12w2

matematiksel olarak uygun olan.


Yani biz istiyoruz:

  1. simge küçültün :x2

  2. yi(wxi+b)1=0


Bazı ifadelere dayanarak bu ifadeyi en aza indirmek istediğimiz için, bir Lagrange çarpanına ihtiyacımız var (denklem 2 ve 4'e geri dönelim):

(5)L=12w2λi[yi(xiw+b)1]

farklılaşan

Lw=wλiyixi=0
.

Bu nedenle,

(6)w=λiyixi

Ve göre farklılaşmab:

Lb=λiyi=0,

yani sıfır toplam çarpım ve etiket ürünümüz olduğu anlamına gelir:

(7)λiyi=0

Denklem Eq (6) 'nin Eq (5)' e tekrar bağlanması,

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

Son terim Denklem (7) 'e göre sıfırdır.

Bu nedenle,

(8)L=λi12ijλiλjyiyjxixj

Eşit (8), son Lagrangiyen'dir.

Bu nedenle, optimizasyon, örnek çiftlerin nokta ürününe bağlıdır.

Yukarıdaki Denklem (1) 'deki "karar kuralına" geri dönüp Denklem (6)' ı kullanarak:

(9)λiyixiu+b0

Yeni bir vektör için nihai karar kuralı olacaku.


Orijinal bir şey yok ... Sadece giriş seviyemdeki kendi notlarım. Temelde MIT'den gelen bu videodan kendi çizimlerimle. Hatalar için lütfen bana bildirin. Anlaşılır cevaplar ve daha fazla ayrıntı için uzman seviyesine gidin (Franck'ın gönderisi ve diğerleri).
Antoni Parellada

Ve b'yi nasıl hesaplarım ?
Mike

1
@mike , ile destek vektörlerinin indeksleridirBurada bulabilirsiniz . b=ysmSαmymxmxsS(αi>0).
Antoni Parellada

@AntoniParellada müthiş cevap Antoni çok teşekkür ediyor - fakat Dual probleminde ve KTT şartlarında bir parçan eksik değil mi?
Xavier Bourret Sicotte

@XavierBourretSicotte Bir süre üzerinde çalışamayacağım. Lütfen bu konularla ilgili alternatif bir cevap yazmayı düşünün ve eğer yaparsanız, lütfen bana bildirin, böylece bunun farkındayım ve bunu kaldırabilirim.
Antoni Parellada

3

Dualite ve KTT koşulları hakkında bazı yorumlar

Birincil problem

Denklemler arasındaki içinde Antoni'nın sonrası @ toplarken ve , orijinal veya bu hatırlama ilkel , optimizasyon problemi şekli şöyledir:(4)(5)

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

Lagrange yöntemi

Lagrange çarpanları yöntemi, kısıtlanmış bir optimizasyon problemini formun kısıtlanmamış bir şekline dönüştürmemizi sağlar:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

Burada adlandırılır Lagrange ve adlandırılır Lagrange çarpan . L(w,b,α)αi

Bizim asli Lagrange'ına ile optimizasyon problemi aşağıdaki haline gelir: (kullanımı dikkat , biz de kullanıyor olması gerektiği gibi en titiz değildir ve ... burada)minmaxinfsup

minw,b(maxαL(w,b,α))

İkili problem

Antoni ve Prof. Patrick Winston'un türevlerinde yaptıkları, optimizasyon işlevinin ve kısıtlamaların, aşağıdakileri yapabileceğimiz bazı teknik koşulları karşıladığını varsaymaktır:

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

Bu, ve göre nın kısmi türevlerini almamıza , sıfıra eşitlememize ve ardından sonuçları Lagrangian'ın orijinal denklemine geri sokmamıza izin verir, böylece bir eşdeğer oluşturur formun ikili optimizasyon problemiL(w,b,α)wb

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

Dualite ve KTT

Aşırı matematiksel tekniklere girmeden, bu koşullar Dualite ve Karush Kuhn Tucker (KTT) koşullarının bir birleşimidir ve en uygun çözümün aynı olmasını sağlayarak , ilk sorun yerine ikili problemi çözmemize izin verir . Bizim durumumuzda koşullar aşağıdaki gibidir:

  • Temel amaç ve eşitsizlik kısıtı işlevleri dışbükey olmalıdır
  • Eşitlik kısıtlama işlevi yakın olmalıdır
  • Kısıtlamalar kesinlikle uygulanabilir olmalıdır

Sonra asıl ve ikili problemlerin çözümü olan vardır. Ayrıca, parametreleri aşağıdaki KTT koşullarını sağlar:w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

Dahası, eğer bazı KTT çözümlerini sağlıyorsa, o zaman ilkel ve ikili problemin çözümü de olur.w,α

Yukarıdaki Denklem özel bir öneme sahiptir ve ikili tamamlayıcılık koşulu olarak adlandırılır . Bu ifade eder, eğer sonra kısıtlama anlamına gelir yani eşitlik yerine eşitsizlik ile tutar, etkindir. Bu, Antonani'nin eşitsizlik kısıtlamasının eşitlik kısıtına dönüştürüldüğü türevindeki denkleminin arkasındaki açıklamadır .(C)αi>0gi(w)=0gi(w)0(2)

Sezgisel ama resmi olmayan bir şema

görüntü tanımını buraya girin

Kaynaklar


2
Çok teşekkür ederim. Çabucak okudum ve daha sonra geri döndüm, ama kulağa çok hoş geliyor ve cevabımdaki eksik noktalara değiniyor.
Antoni Parellada
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.