Support Vector Machine (SVM)
Destek vektör makinesi (SVM), sınıfları en geniş marjlı hiper düzlemle ayırır ve eğri sınırlar için çekirdeklerden yararlanır. Nasıl çalıştığını, ayarlarını ve kodu öğren.
Destek vektör makinesi (SVM), iki sınıfı ayıran hiper düzlemi, yani sınır ile her sınıfa ait en yakın eğitim noktaları arasındaki aralığı mümkün olan en geniş tutarak verileri sınıflandıran bir denetimli öğrenme algoritmasıdır. Destek vektörleri olarak adlandırılan bu en yakın noktalar, sınırı belirleyen tek eğitim örnekleridir. Çekirdek fonksiyonları, SVM'lerin eğri sınırlar öğrenmesini sağlar; farklı türleri ise regresyon ve aykırı değer tespiti işlemlerini ele alır. Vladimir Vapnik ve çalışma arkadaşları yöntemi AT&T Bell Labs'te geliştirdi; çekirdekli sürüm 1992'de, bugün kullanılan yumuşak marj formülasyonu ise 1995'te Cortes ve Vapnik tarafından yayımlandı. Derin öğrenme öncesinde SVM'ler metin, görüntü ve biyolojik veriler için en doğru sınıflandırıcılar arasındaydı ve çok sayıda özelliğe sahip küçük ve orta ölçekli veri kümelerinde hâlâ güçlü performans gösterir.
SVM'ler Nasıl Çalışır#
Doğrusal bir SVM, sınıfı w·x + b ifadesinin işaretinden tahmin eder; dolayısıyla karar sınırı w·x + b = 0 hiper düzlemidir. Ağırlıklar, en yakın noktalar |w·x + b| = 1 koşulunu sağlayacak şekilde ölçeklendiğinde marjın genişliği 2/‖w‖ olur. Eğitim, her eğitim noktasının marjın doğru tarafında olmasını şart koşarken ‖w‖² değerini en aza indirerek marjı genişletir. Gerçek sınıflar örtüşür; bu nedenle yumuşak marjlı SVM, noktaların marjı aşmasına izin verir ve bunun bedelini düzenlileştirme parametresi C belirler. Hinge kaybı, marjın ötesinde doğru sınıflandırılan noktalar için ceza uygulamaz; diğer noktalar içinse ihlal arttıkça doğrusal olarak artan bir ceza uygular. Küçük bir C daha fazla ihlale izin vererek daha geniş ve düzgün bir marj sağlar; büyük bir C ise eğitim verisine daha sıkı uyum gösterir ve aşırı öğrenme riskini artırır. Eğitilmiş modelde yalnızca marj üzerindeki veya marjın yanlış tarafındaki noktaların sıfırdan farklı ağırlığı vardır; bunlar destek vektörleridir ve marjı aşmadığı sürece diğer noktaların yerini değiştirmek sınırı değiştirmez.
Çekirdek Hilesi#
Hiçbir hiper düzlem sınıfları ayıramadığında, verileri daha fazla boyuta eşlemek onları ayrılabilir hâle getirebilir: 2B'deki iç içe geçmiş iki halka, üçüncü bir özellik olan x₁² + x₂² her noktanın merkeze uzaklığını ölçtüğünde düz bir düzlemle ayrılabilir. SVM eğitimi ve tahmini, ikili biçiminde yalnızca nokta çiftleri arasındaki iç çarpımları kullanır; dolayısıyla bir çekirdek fonksiyonu k(x, x′), eşlenmiş koordinatları hiç hesaplamadan eşlenmiş uzaydaki iç çarpımı doğrudan döndürebilir. Buna çekirdek hilesi denir. Yaygın çekirdekler doğrusal, polinom ve radyal temel fonksiyonu (RBF) olan exp(−γ‖x − x′‖²) biçimindedir; γ, her destek vektörünün etkisinin ne kadar uzağa erişeceğini belirler. Bu örnek, iki iç içe geçmiş halkada doğrusal ve RBF çekirdekleriyle scikit-learn'ün SVC sınıflandırıcısını eğitir:
from sklearn.datasets import make_circles
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# Two concentric rings: no straight line separates the classes
X, y = make_circles(n_samples=500, factor=0.4, noise=0.1, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
for kernel in ("linear", "rbf"):
clf = SVC(kernel=kernel, C=1.0)
clf.fit(X_train, y_train)
print(f"{kernel}: test accuracy {clf.score(X_test, y_test):.2f}, support vectors {clf.n_support_.sum()}")Doğrusal çekirdek, test için ayrılmış noktalarda 0,43 puan alır; bu, tahmin etmekten daha kötüdür ve 375 eğitim noktasının 360'ını destek vektörü olarak tutar. RBF çekirdeği halkaları kusursuz biçimde ayırır (1,00) ve yalnızca 42 destek vektörü kullanır.
Çekirdek ve Hiperparametre Seçimi#
Uzaklıklar ve iç çarpımlar özellik ölçeğine bağlıdır; bu nedenle SVM girdileri önce standartlaştırılır. scikit-learn'ün SVC'sinin arkasındaki kütüphane olan LIBSVM'nin yazarlarının uygulama kılavuzu, özelliklerin ölçeklendirilmesini, RBF çekirdeğiyle başlanmasını ve C ile γ değerlerinin ızgara araması ile çapraz doğrulama kullanılarak seçilmesini önerir. Metinlerde olduğu gibi özellik sayısı örnek sayısından çok fazlaysa doğrusal çekirdek yaklaşık aynı performansı gösterir ve çok daha hızlı eğitilir. Çekirdekli SVM eğitiminin süresi örnek sayısıyla en az karesel olarak artar; bu nedenle on binlerce örneğin ötesinde tam çekirdek modelinin yerini doğrusal SVM'ler veya yaklaşık çekirdek özellikleri alır.
Bilgisayarlı Görüde SVM'ler#
Klasik bilgisayarlı görü, elle tasarlanmış özellikleri doğrusal SVM'lerle bir araya getirirdi. Dalal ve Triggs'in 2005 tarihli yaya algılayıcısı, yönlü gradyan histogramlarını (HOG) doğrusal SVM ile puanlıyordu; 2014 tarihli R-CNN nesne algılayıcısı ise her bölge önerisinin CNN özelliklerini, sınıf başına bir doğrusal SVM kullanarak sınıflandırıyordu. Fast R-CNN, 2015'te bunların yerini ağla birlikte eğitilen bir softmax katmanıyla aldı. Modern algılayıcılar özellikleri ve sınıflandırıcıyı birlikte öğrenir; SVM'ler ise sabit özellikler üzerinde çalışan hızlı sınıflandırıcılar olarak varlığını sürdürür. model.embed() üzerinden YOLO26 tarafından döndürülen vektörlerle eğitilen doğrusal bir SVM, görüntü başına bir gömme kullanır ve ağı yeniden eğitmeden yeni bir görüntü kategorisi ekleyen doğrusal bir yoklamadır.
Uygulamalar#
- Metin sınıflandırma: Kelime sayısı vektörleri, on binlerce seyrek boyuta sahiptir. Doğrusal SVM'ler bu boyutlarda konuları, istenmeyen postaları ve duygu durumunu doğru biçimde ayırır; Thorsten Joachims bu avantajı 1998'de metin sınıflandırma için göstermiştir.
- Biyoinformatik: Gen ifadesi araştırmalarında, binlerce ölçülmüş genden ve yalnızca onlarca ya da yüzlerce hastadan elde edilen verilerle tümörler sınıflandırılır. Marj, aşırı öğrenmeyi sınırladığı için bu tür verilerde yararlıdır; dize çekirdekleri de protein dizilerini doğrudan karşılaştırır.
- Anomali tespiti: Tek sınıflı bir SVM yalnızca normal verilerin çevresinde bir sınır öğrenir ve dışındaki noktaları işaretler. Bu yaklaşım, arızaların etiketlenemeyecek kadar seyrek olduğu dolandırıcılık tespiti ve makine izleme için uygundur.
- Regresyon: Destek vektör regresyonu, ε genişliğinde bir tüpün içinde bir fonksiyon uydurur, ε'den küçük hataları yok sayar ve yalnızca tüpün üzerinde veya dışında kalan noktaları destek vektörü olarak tutar.
SVM ve İlgili Algoritmalar#
- K-en yakın komşu (KNN): Eğitim kümesinin tamamını saklar ve tahmin sırasında her yeni noktayı komşularıyla karşılaştırır; SVM ise yalnızca destek vektörlerini tutar.
- Karar ağaçları ve rastgele ormanlar: Her seferinde tek bir özelliğe göre dallara ayrılır, özellik ölçeklendirmesi gerektirmez ve SVM'lerin sayısal, ölçeklendirilmiş girdilere ihtiyaç duyduğu yerde sayısal ve kategorik sütunları birlikte işler.
- Sinir ağları: Özellik eşlemesini bir çekirdekle sabitlemek yerine verilerden öğrenir; bu sayede çekirdekli SVM'lerin fazla yavaş kaldığı milyonlarca görüntüye ölçeklenebilir.
- Lojistik regresyon: Doğrusal bir sınır da öğrenir; ancak tüm eğitim noktalarındaki log kaybını en aza indirir ve olasılıklar üretir. SVM, sınırdan olan işaretli uzaklıkları verir; scikit-learn'ün SVC'si olasılıkları yalnızca
probability=Trueile üretir ve bu yöntem, kurum içi 5 katlı çapraz doğrulamayla Platt ölçeklemesi uygular.










