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,xWwTw∥w∥=wTw
İzin Vermek:
- x bir özellik vektörü (yani, SVM'nin girişi) olabilir. , burada , özellik vektörünün boyutudur.x∈Rnn
- 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
Sınıf , aşağıdaki gibi tespit edilir:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
bu, daha kısa bir şekilde olarak yazılabilir .y(i)(wTx(i)+b)≥1
Hedef
SVM iki gereksinimi karşılamayı amaçlamaktadır:
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=12∥w∥maxw2∥w∥minw∥w∥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,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{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,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀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,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀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αs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Bu optimizasyon problemi basitleştirilebilir (bazı degradeler ayarlanarak ):0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w , olarak görünmüyor. ( temsilci teoremi tarafından belirtildiği gibi ).w=∑Ni=1α(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.∑Ni=1α(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: