AI 101
Destek Vektör Makineleri nedir?
Destek Vektör Makineleri nedir?
Destek vektör makineleri, muhtemelen en popüler sınıflandırıcı türlerinden biri olan bir tür makine öğrenimi sınıflandırıcısıdır. Destek vektör makineleri özellikle sayısal tahmin, sınıflandırma ve örüntü tanıma görevleri için kullanışlıdır.
Destek vektör makineleri, veri noktalarını sınıflara en iyi ayıran (veya en genelleştirilebilir olan) karar sınırını hedefleyerek, veri noktaları arasında karar sınırları çizerek çalışır. Bir destek vektör makinesi kullanırken amaç, noktalar arasındaki karar sınırının mümkün olduğu kadar büyük olması ve böylece herhangi bir veri noktası ile sınır çizgisi arasındaki mesafenin maksimize edilmesidir. Bu nasıl hızlı bir açıklama destek vektör makineleri (SVM'ler) Ancak SVM'lerin nasıl çalıştığını daha derinlemesine incelemek ve operasyonlarının ardındaki mantığı anlamak için biraz zaman ayıralım.
Destek Vektör Makinelerinin Hedefi
X ve Y eksenleri tarafından belirtilen özelliklere dayalı olarak, üzerinde bir dizi veri noktası bulunan bir grafik düşünün. Grafikteki veri noktaları genel olarak iki farklı kümeye ayrılabilir ve bir veri noktasının ait olduğu küme, veri noktasının sınıfını gösterir. Şimdi, bir sınıftaki tüm veri noktaları çizginin bir tarafında ve başka bir sınıfa ait tüm veri noktaları diğer tarafta olacak şekilde, grafiğin aşağısına iki sınıfı birbirinden ayıran bir çizgi çizmek istediğimizi varsayalım. hattın. Bu ayırma çizgisi hiperdüzlem olarak bilinir.
Bir destek vektör makinesini şehrin her yerinde “yollar” oluşturarak şehri yolun her iki tarafında bölgelere ayıran bir makine olarak düşünebilirsiniz. Yolun bir tarafında bulunan tüm binalar (veri noktaları) bir bölgeye aittir.

Bir destek vektör makinesinin amacı yalnızca hiperdüzlemler çizmek ve veri noktalarını bölmek değil, aynı zamanda en büyük marjla veya bölme çizgisi ile herhangi bir veri noktası arasında en fazla boşlukla veri noktalarını ayıran hiperdüzlemi çizmektir. “Yollar” metaforuna dönecek olursak, eğer bir şehir plancısı otoyol planları çizerse, otoyolun evlere veya diğer binalara çok yakın olmasını istemez. Otoyol ve her iki taraftaki binalar arasındaki mesafe ne kadar fazlaysa o kadar iyidir. Bu marj ne kadar büyük olursa, sınıflandırıcı tahminleri hakkında o kadar "güvenli" olabilir. İkili sınıflandırma durumunda, doğru hiper düzlemi çizmek, iki farklı sınıfın tam ortasında olan bir hiper düzlemi seçmek anlamına gelir. Karar sınırı/hiperdüzlem bir sınıftan uzaksa, diğerine daha yakın olacaktır. Bu nedenle hiperdüzlem, iki farklı sınıf arasındaki marjı dengelemelidir.
Ayıran Hiperdüzlemin Hesaplanması
Peki bir destek vektör makinesi, en iyi ayırıcı hiper düzlem/karar sınırını nasıl belirler? Bu, matematiksel bir formül kullanarak olası hiperdüzlemleri hesaplayarak gerçekleştirilir. Hiperdüzlemleri hesaplama formülünü ele almayacağız aşırı detaylı, ancak çizgi ünlü eğim/çizgi formülüyle hesaplanır:
Y = balta + b
Bu arada, çizgiler noktalardan yapılmıştır, bu da herhangi bir hiper düzlemin şu şekilde tanımlanabileceği anlamına gelir: modelin ağırlıkları çarpı belirli bir ofset/önyargı ile değiştirilen özellikler kümesi tarafından belirlenen, önerilen hiper düzleme paralel uzanan noktalar kümesi ("D").
SVM'ler birçok hiper düzlem çizer. Örneğin, sınır çizgisi bir hiper düzlemdir, ancak sınıflandırıcının dikkate aldığı veri noktaları da hiper düzlemlerdedir. X değerleri, veri kümesindeki özelliklere göre belirlenir. Örneğin, birçok kişinin boy ve kilolarını içeren bir veri setiniz olsaydı, "boy" ve "kilo" özellikleri "X"i hesaplamak için kullanılan özellikler olurdu. Önerilen hiper düzlem ile ayırıcı hiper düzlemin her iki tarafında bulunan çeşitli "destek vektörleri" (veri noktaları) arasındaki kenar boşlukları aşağıdaki formülle hesaplanır:
G * X – b
SVM'lerin arkasındaki matematik hakkında daha fazla bilgi edinebilirken, onlar hakkında daha sezgisel bir anlayış arıyorsanız, amacın önerilen ayırma hiperdüzlem/sınır çizgisi ile buna paralel çalışan diğer hiperdüzlemler arasındaki mesafeyi en üst düzeye çıkarmak olduğunu bilin ( ve veri noktalarının bulunduğu yer).

Fotoğraf: ZackWeinberg, Wikimedia Commons aracılığıyla, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Çok Sınıflı Sınıflandırma
Şimdiye kadar açıklanan süreç, ikili sınıflandırma görevleri için geçerlidir. Bununla birlikte, DVM sınıflandırıcıları ikili olmayan sınıflandırma görevleri için de kullanılabilir. Üç veya daha fazla sınıfa sahip bir veri kümesinde DVM sınıflandırması yapılırken daha fazla sınır çizgisi kullanılır. Örneğin, bir sınıflandırma görevinde iki yerine üç sınıf varsa, veri noktalarını sınıflara ayırmak için iki bölme çizgisi kullanılacak ve tek bir sınıfı içeren bölge, bir yerine iki bölme çizgisinin arasına düşecektir. Yalnızca iki sınıf ve bir karar sınırı arasındaki mesafeyi hesaplamak yerine, sınıflandırıcı artık karar sınırları ile veri kümesindeki çoklu sınıflar arasındaki marjları dikkate almalıdır.
Doğrusal Olmayan Ayırmalar
Yukarıda açıklanan süreç, verilerin doğrusal olarak ayrılabilir olduğu durumlar için geçerlidir. Gerçekte, veri kümelerinin neredeyse hiç tamamen doğrusal olarak ayrılabilir olmadığını unutmayın, bu da bir SVM sınıflandırıcısı kullanırken genellikle iki farklı teknik kullanmanız gerekeceği anlamına gelir: yumuşak kenar boşluğu ve çekirdek hileleri. Farklı sınıfların veri noktalarının, başka bir sınıfın "kümesinde" bir sınıfa ait bazı örneklerle karıştırıldığı bir durumu düşünün. Sınıflandırıcının bu örnekleri ele almasını nasıl sağlayabilirsiniz?
Doğrusal olarak ayrılamayan veri kümelerini işlemek için kullanılabilecek bir taktik, bir "yumuşak marj" SVM sınıflandırıcısının uygulanmasıdır. Esnek marj sınıflandırıcı, yanlış sınıflandırılmış birkaç veri noktasını kabul ederek çalışır. Kendi sınıflarına ait örneklerin çoğunu içerdiklerinden, veri noktası kümelerini birbirinden en iyi şekilde ayıran bir çizgi çizmeye çalışacaktır. Yumuşak marjlı SVM sınıflandırıcısı, sınıflandırıcının iki talebini dengeleyen bir ayrım çizgisi oluşturmaya çalışır: doğruluk ve marj. Marjı en üst düzeye çıkarırken yanlış sınıflandırmayı en aza indirmeye çalışacaktır.
SVM'nin hata toleransı, "C" adı verilen bir hiperparametrenin manipülasyonu yoluyla ayarlanabilir. C değeri kontrolleri karar sınırlarını çizerken sınıflandırıcının kaç tane destek vektörünü dikkate aldığı. C değeri yanlış sınıflandırmalara uygulanan bir cezadır, yani C değeri ne kadar büyükse, sınıflandırıcının hesaba kattığı destek vektörleri o kadar az olur ve marj da o kadar dar olur.

Çekirdek verileri kandırır ve verileri doğrusal olmayan bir şekilde dönüştürür. Fotoğraf: Wikmedia Commons aracılığıyla Shiyu Ju, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
Kernel Trick, veri kümesindeki özelliklere doğrusal olmayan dönüşümler uygulayarak çalışır. Kernel Trick, veri kümesindeki mevcut özellikleri alır ve doğrusal olmayan matematiksel fonksiyonların uygulanması yoluyla yeni özellikler oluşturur. Bu doğrusal olmayan dönüşümlerin uygulanmasından elde edilen sonuç, doğrusal olmayan bir karar sınırıdır. DVM sınıflandırıcısı artık doğrusal karar sınırlarını çizmekle sınırlı olmadığından, destek vektörlerinin gerçek dağılımını daha iyi özetleyen ve yanlış sınıflandırmaları en aza indiren kavisli karar sınırları çizmeye başlayabilir. En popüler doğrusal olmayan VM çekirdeklerinden ikisi Radyal Temel Fonksiyon ve Polinomdur. Polinom işlevi, mevcut tüm özelliklerin polinom kombinasyonlarını oluştururken Radyal Temel İşlev, bir merkezi nokta/noktalar ile diğer tüm noktalar arasındaki mesafeyi ölçerek yeni özellikler üretir.












