SVM'leri motive etmenin en az iki yolu vardır, ancak burada daha basit bir rota izleyeceğim.
Şimdi, şu an için SVM hakkında bildiğiniz her şeyi unutun ve sadece eldeki probleme odaklanın. den bazı etiketlerle ( ) birlikte bir dizi verilir . Şimdi, 2B'de bir çizgi bulmaya çalışıyoruz, böylece etiket sahip tüm noktalar çizginin bir tarafına düşer ve etiket sahip tüm noktalar diğer tarafa düşer.y i { 1 , - 1 } 1 - 1D={(xi1,xi2,yi)}yi{1,−1}1−1
Her şeyden önce, 2D'de bir çizgi olduğunu ve , çizginin "bir tarafını" ve , hat.w 0 + w 1 x 1 + w 2 x 2 > 0 w 0 + w 1 x 1 + w 2 x 2 < 0w0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0
Biz yukarıda bazı vektör istiyoruz sonucuna varabiliriz kaynaktan öyle ki,
bütün noktalar için ile ve , tüm noktalar için ile [1].w 0 + w 1 x i 1 + w 2 x i 2 ≥ 0 x i y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 < 0 x i y i = - 1[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1
Diyelim ki böyle bir çizgi gerçekten var, o zaman bir sınıflandırıcıyı şu şekilde tanımlayabilirim,
min|w0|+|w1|+|w2|subject to:w0+w1xi1+w2xi2≥0,∀xi with yi=1w0+w1xi1+w2xi2<0,∀xi with yi=−1
Yukarıda keyfi bir objektif fonksiyon kullandım, şu anda hangi objektif fonksiyonun kullanıldığı umurumda değil. Sadece kısıtlarımızı karşılayan bir istiyoruz . İki sınıfı bu satırla ayırabilecek şekilde bir satır bulunduğunu varsaydığımızdan, yukarıdaki optimizasyon problemine bir çözüm bulacağız.w
Yukarıdaki SVM değil ama size bir sınıflandırıcı verecektir :-). Ancak bu sınıflandırıcı çok iyi olmayabilir. Fakat iyi bir sınıflandırıcıyı nasıl tanımlarsınız? İyi bir sınıflandırıcı genellikle test setinde iyi sonuç veren sınıflayıcıdır. İdeal olarak, egzersiz verilerinizi ayıran ve hangilerinin test verilerinde iyi sonuç verdiğini görmek için mümkün olan tüm w'leri gözden . Ancak, sonsuz vardır , bu yüzden bu oldukça umutsuzdur. Bunun yerine, iyi bir sınıflandırıcı tanımlamak için bazı buluşsal yöntemler düşüneceğiz. Buluşsal yöntemlerden biri, verileri ayıran çizginin tüm noktalardan yeterince uzakta olacağıdır (yani, noktalar ve çizgi arasında her zaman boşluk veya kenar boşluğu vardır). Bunlar arasında en iyi sınıflandırıcı maksimum marjlı olan sınıflandırıcıdır. SVM'lerde kullanılan budur.www
Bunun yerine ısrar bütün noktalar için ile ve , tüm noktalar için ile , o ısrar tüm noktalar için ile ve tüm noktalar için ile , o zaman aslında noktaların çizgiden uzak olması konusunda ısrar ediyoruz. Bu gereksinime karşılık gelen geometrik kenar boşluğu .x i y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 < 0 x i y i = - 1 w 0 + w 1 x i 1 + w 2 x i 2 ≥ 1w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1w0+w1xi1+w2xi2≥1y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 ≤ - 1 x i y i = - 1 1xiyi=1w0+w1xi1+w2xi2≤−1xiyi=−11∥w∥2
Bu nedenle, aşağıdaki optimizasyon sorununu elde ediyoruz,
Bu, kısa ve öz bir yazı biçimidir,
Bu temel olarak temel SVM . Kısalık için oldukça fazla tartışmayı atladım. Umarım, fikrin çoğunu hala çözerim.
max1∥w∥2subject to:w0+w1xi1+w2xi2≥1,∀xi with yi=1w0+w1xi1+w2xi2≤−1,∀xi with yi=−1
min∥w∥2subject to:yi(w0+w1xi1+w2xi2)≥1,∀i
Örnek problemi çözmek için CVX betiği:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
Zeyilname - Geometrik Marj
Biz zaten Aradığımız istediniz Üstü böyle veya genellikle . Burada gördüğünüz işlevsel marj denir, bu yüzden burada talep ettiğimiz şey fonksiyonel marjın . Şimdi, bu fonksiyonel marj gereksinimi göz önüne alındığında geometrik marjı hesaplamaya çalışacağız.y i ( w 0 + w 1 x 1 + w 2 x 2 ) ≥ 1 y i ( w 0 + w T x ) ≥ 1 ≥ 1wyi(w0+w1x1+w2x2)≥1yi(w0+wTx)≥1≥1
Geometrik kenar boşluğu nedir? Geometrik kenar boşluğu, pozitif örneklerdeki noktalar ile negatif örneklerdeki noktalar arasındaki en kısa mesafedir. Şimdi, yukarıda gerektiği gibi en kısa mesafeye sahip olan noktalar 1'den daha büyük fonksiyonel marja sahip olabilir. Ancak, aşırı durumu, hiper düzleme en yakın olduklarında, en kısa noktalar için fonksiyonel marjın tamamen eşit olduğunu düşünelim. 1 olarak Let pozitif örnek ile ilgili bir nokta, bir nokta bu olmak olması ve noktası şekilde olması olumsuz örnek üzerinde noktası bu . Şimdi, arasındaki mesafe ve olacak en kısa zamanx+wTx++w0=1x−wTx−+w0=−1x+x−x+−x− hiper düzlemine diktir.
Şimdi, yukarıdaki tüm bilgilerle birlikte geometrik kenar boşluğu olan bulmaya çalışacağız .
∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
‖ x + - x - ‖ 2 = 2∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] ve için hangi tarafı seçeceğiniz önemli değil . Sadece ne seçerseniz seçin, tutarlı olmalısınız.- 11−1