Örnek sorular
Cml Svm Kernels MarginsZorluk 1
Tamamen ayrılabilir iki sınıf üzerinde hard-margin bir doğrusal SVM eğitiliyor. Bu sınıfları ayıran sonsuz sayıda hiperdüzlem içinden, SVM'in eğitim amacı hangi büyüklüğü olabildiğince büyütür?
- aHer eğitim noktasının hiperdüzleme olan dik uzaklığının ortalamasını.
- bPozitif karar skoru alan eğitim noktalarının sayısını.
- cSınıflar arasındaki boş bandın genişliğini, yani 2/||w|| değerini.✓
- dİki sınıf merkezinin w yönü üzerine izdüşümleri arasındaki dik uzaklığı.
Açıklama:Ayırıcı hiperdüzlem w·x + b = 0'dır ve iki margin sınırı w·x + b = +1 ile -1 olarak sabitlenmiştir. Bu iki düzlem arasındaki dik uzaklık 2/||w|| olduğundan, margin'i büyütmek ||w||^2'yi küçültmekle aynı şeydir; kısıt ise her noktanın kendi margin sınırının doğru tarafında kalmasıdır. Tüm noktalar üzerinden alınan ortalamaların veya sınıf merkezlerinin amaç fonksiyonunda yeri yoktur.
Cml Svm Kernels MarginsZorluk 2
Eğitilmiş iki boyutlu bir doğrusal SVM coef_ = [[3.0, 4.0]] ve intercept_ = [-10.0] veriyor. Margin ne kadar geniştir, yani iki margin sınırı arasındaki dik uzaklık kaçtır?
- a0.4, çünkü ||w|| 5'tir ve genişlik 2/||w|| olur.✓
- b5.0, çünkü margin genişliği ağırlık vektörünün normuna eşittir.
- c2.0, çünkü sınırlar karar değeri +1 ve -1 olan yerlerdedir.
- d0.2, çünkü margin genişliği, w normunun tersine eşittir.
Açıklama:(3, 4) vektörünün normu sqrt(9 + 16) = 5'tir. İki margin sınırı, karar fonksiyonunun +1 ve -1 olduğu seviye kümeleridir ve bu iki seviye arasında kat edilen dik uzaklık 2/||w|| = 2/5 = 0.4 olur. Intercept yalnızca bandın tamamını kaydırır, genişliğini değiştirmez. Bu uzaklığın yarısı olan 1/||w|| = 0.2 ise sınırdan yalnızca tek bir margin'e olan mesafedir.
Cml Svm Kernels MarginsZorluk 2
Etiketi y ∈ {-1, +1} olan bir x noktası için fonksiyonel margin y(w·x + b), geometrik margin ise hiperdüzleme olan gerçek dik uzaklıktır. SVM formülasyonu en yakın noktaların fonksiyonel margin'ini neden tam olarak 1'e sabitler?
- aFonksiyonel margin'in 1 olması, noktanın doğru sınıflandırıldığını garanti ettiği için.
- blibsvm, -1 ile +1 aralığı dışındaki karar değerlerini temsil edemediği için.
- cBir fonksiyonel margin seçilmeden geometrik margin tanımsız kaldığı için.
- dw ve b aynı katsayıyla ölçeklenince düzlem yerinde kalırken fonksiyonel margin değiştiği için.✓
Açıklama:(w, b) ile tanımlanan hiperdüzlem (2w, 2b) ile tanımlananla birebir aynıdır, ama fonksiyonel margin ikiye katlanır. Bu da fonksiyonel margin'i tek başına anlamsız bir hedef yapar. ||w||'ye bölmek bu belirsizliği kaldırır ve geometrik margin'i verir; en yakın noktaların fonksiyonel margin'ini 1'e sabitlemek ise margin büyütmeyi ||w|| küçültmeye çeviren bir normalizasyondan ibarettir.
Cml Svm Kernels MarginsZorluk 1
Bir meslektaşınız, eğitilmiş bir doğrusal SVC'nin karar sınırından çok uzakta duran 40 eğitim satırını siliyor ve aynı ayarlarla yeniden eğitiyor. Sınır neredeyse hiç değişmeden geri geliyor. Bunun açıklaması nedir?
- aYalnızca margin üzerindeki veya içindeki noktalar sıfırdan farklı dual katsayı taşır, uzak satırlar hiçbir katkı yapmaz.✓
- bSVM tüm satırları bir sınıf prototipinde ortalar, 40 satır bir ortalamayı zor oynatır.
- cÇözücü tek bir satırın etkisini C ile sınırlar, silinen hiçbir satır düzlemi kayda değer biçimde oynatamaz.
- dSatır silmek düzenlileştirme gücünü düşürür ve bu, kaybolan bilgiyi tesadüfen dengeler.
Açıklama:Dual formülasyonda her eğitim noktası bir alpha_i katsayısı alır ve KKT koşulları, kendi margin sınırının kesinlikle ötesinde kalan her nokta için alpha_i = 0 olmasını zorunlu kılar. Karar fonksiyonu sadece destek vektörleri üzerinden bir toplamdır, dolayısıyla iyi ayrılmış noktaları silmek onu değiştirmez. SVM'in bellek açısından verimli sayılmasının nedeni de budur: eğitilmiş model yalnızca destek vektörlerini saklar.
Cml Svm Kernels MarginsZorluk 2
Bir junior mühendis sklearn 1.6'daki SVC'den "daha fazla düzenlileştirme" istiyor ve büyük değerin güçlü ceza demek olduğunu düşünerek C'yi 1.0'dan 100.0'a çıkarıyor. Eğitilen modelde gerçekte ne olur?
- aHiçbir şey değişmez, çünkü C yalnızca çözücünün durma kuralını etkiler.
- bDüzenlileştirme zayıflar: C ihlal cezasını çarptığı için margin daralır ve noktalara uydurulur.✓
- cDüzenlileştirme tam istendiği gibi güçlenir, çünkü C amaç fonksiyonundaki ||w||^2 teriminin önündeki çarpandır.
- dModel eğitilmeyi reddeder, çünkü 10'un üzerindeki C değerleri geçersiz sayılır.
Açıklama:Primal amaç fonksiyonu (1/2)||w||^2 + C * hinge kayıplarının toplamı biçimindedir. C, norm teriminin değil hata teriminin önünde durur; dolayısıyla büyütmek her margin ihlalini daha pahalı hale getirir ve çözücüyü daha dar, daha karmaşık bir sınıra iter. scikit-learn kullanım kılavuzu bunu doğrudan söyler: C'yi düşürmek daha fazla düzenlileştirme anlamına gelir.
Cml Svm Kernels MarginsZorluk 3
Standartlaştırılmış 300 satırlık bir veri kümesinde bir RBF SVC farklı C değerleriyle yeniden eğitiliyor ve n_support_.sum() kaydediliyor: C=0.1 için 288, C=1 için 196, C=10 için 132, C=100 için 105 destek vektörü. Bu eğilimi hangi mekanizma üretir?
- aBüyük C kernel cache'ini küçültür, bu yüzden daha az destek vektörü saklanabilir.
- bBüyük C, dual katsayısı toleransın altına düşen destek vektörlerini eler.
- cBüyük C iterasyon sayısını azaltır, çözücü daha az aday bulur.
- dBüyük C ihlalleri pahalılaştırır, margin daralır, içine az nokta düşer.✓
Açıklama:Bir nokta, fonksiyonel margin'i en fazla 1 olduğunda, yani margin bandının üzerinde veya içinde kaldığında destek vektörü olur. Küçük C, çok sayıda ihlale göz yumarak geniş bir bandı ucuza satın alır ve satırların çoğu bu bandın içinde kalır. C büyüdükçe her ihlal pahalılaşır, çözücü bandı sıkıştırır ve yalnızca hâlâ banda değen birkaç nokta sıfırdan farklı katsayı taşımaya devam eder.