what is support vector machine machine learning
W tym samouczku wyjaśniono maszynę wektorów wsparcia w ML i powiązane pojęcia, takie jak hiperpłaszczyzna, wektory pomocnicze i aplikacje SVM:
w Poprzedni samouczek , dowiedzieliśmy się o algorytmach genetycznych i ich roli w uczeniu maszynowym.
W naszych wcześniejszych samouczkach przeanalizowaliśmy kilka nadzorowanych i nienadzorowanych algorytmów w uczeniu maszynowym. Backpropagation to nadzorowany algorytm uczenia się, podczas gdy Kohenen to nienadzorowany algorytm uczenia się.
W tym samouczku dotyczącym maszyny wektorów nośnych nauczymy się o maszynach wektorów nośnych. Maszyny SVM to niezawodne algorytmy uczenia maszynowego nadzorowane matematycznie, szeroko stosowane w klasyfikacji zbioru danych szkoleniowych.
=> Przeczytaj całą serię szkoleń z zakresu uczenia maszynowego
Czego się nauczysz:
- Co to jest maszyna wektorów wsparcia (SVM)
- Co to jest hiperpłaszczyzna
- Co to są algorytmy klasyfikacji i regresji
- Czym są wektory wsparcia
- Jak działa maszyna obsługująca wektor
- Jak zoptymalizować położenie hiperpłaszczyzny
- Zastosowania SVM
- Wniosek
- rekomendowane lektury
Co to jest maszyna wektorów wsparcia (SVM)
Algorytm SVM to nadzorowany algorytm uczenia się sklasyfikowany w ramach technik klasyfikacji. Jest to technika klasyfikacji binarnej, która wykorzystuje zestaw danych szkoleniowych do przewidywania optymalnej hiperpłaszczyzny w przestrzeni n-wymiarowej.
Ta hiperpłaszczyzna służy do klasyfikowania nowych zestawów danych. Będąc klasyfikatorem binarnym, zestaw danych szkoleniowych hiperpłaszczyzna dzieli zestaw danych szkoleniowych na dwie klasy.
Algorytmy SVM służą do klasyfikowania danych w dwuwymiarowej płaszczyźnie, a także w wielowymiarowej hiperpłaszczyźnie. Wielowymiarowa hiperpłaszczyzna wykorzystuje „jądra” do kategoryzowania danych wielowymiarowych.
Zawsze pożądane jest maksymalne rozróżnienie między sklasyfikowanymi punktami danych. Oznacza to, że powinny mieć maksymalną odległość lub hiperpłaszczyzna powinna mieć maksymalny margines między punktami danych.
Co to jest hiperpłaszczyzna
Hiperpłaszczyzna to granica, która dzieli płaszczyznę. Jest to granica decyzyjna, która klasyfikuje punkty danych w 2 odrębne klasy. Ponieważ SVM jest używany do klasyfikowania danych w wielu wymiarach, hiperpłaszczyzna może być linią prostą, jeśli są 2 wejścia, lub płaszczyzną 2D, jeśli są więcej niż 2 wejścia.
Algorytmy SVM mogą być również używane do analizy regresji, ale głównie są wykorzystywane do klasyfikacji. Zobaczmy więcej szczegółów na temat każdej z tych metod.
Co to są algorytmy klasyfikacji i regresji
Algorytm klasyfikacji to taki, który analizuje dane szkoleniowe w celu przewidzenia wyniku. Rezultatem jest klasa docelowa, na przykład , Dzień lub noc, tak lub nie, długo lub krótko. Przykładem algorytmu klasyfikacji może być to, czy klient supermarketu kupujący chleb kupiłby również masło. Klasą docelową byłoby „Tak” lub „Nie”.
Algorytm regresji znajduje związek między zmiennymi niezależnymi i przewiduje wynik. Regresja liniowa pozwala ustalić liniową zależność między danymi wejściowymi a wyjściowymi. Na przykład: „A” jako wejście i „b” jako wyjście, funkcja liniowa byłaby b = k * a + c.
Czym są wektory wsparcia
Wektory pomocnicze to punkty danych, które pomagają nam zoptymalizować hiperpłaszczyznę. Wektory te leżą najbliżej hiperpłaszczyzny i są najtrudniejsze do sklasyfikowania. Położenie hiperpłaszczyzny decyzyjnej zależy od wektorów nośnych. Jeśli te wektory podporowe zostaną usunięte, zmieni to również położenie hiperpłaszczyzny.
Maszyna wektorów nośnych (SVM) wykorzystuje punkty danych wejściowych lub cechy zwane wektorami nośnymi, aby zmaksymalizować granice decyzyjne, tj. Przestrzeń wokół hiperpłaszczyzny. Wejścia i wyjścia SVM są podobne do sieci neuronowej. Istnieje tylko jedna różnica między SVM i NN, jak podano poniżej.
Wejścia: Sieć SVM może zawierać n liczby wejść, powiedzmy x1, xdwa, …… .., xja,…., Xn.
Wyjścia: Docelowa produkcja t.
Masy: Podobnie jak wagi sieci neuronowych w1, wdwa, ……, wnsą związane z każdym wejściem, którego kombinacja liniowa przewiduje wyjście y.
Różnica między SVM a sieciami neuronowymi
Wagi synaptyczne w sieciach neuronowych są eliminowane w celu obliczenia wartości wyjściowej y sieci, podczas gdy w SVM wagi niezerowe są redukowane lub eliminowane w celu obliczenia optymalnej granicy decyzji.
Dzięki wyeliminowaniu wag zmniejszy to zestaw danych wejściowych do kilku ważnych cech wejściowych, które pomogą w podjęciu decyzji o rozdzielnej hiperpłaszczyźnie.
Jak działa maszyna obsługująca wektor
Jak wiemy, celem maszyn wektorów nośnych jest maksymalizacja marginesu między sklasyfikowanymi punktami danych. Przyniesie to bardziej optymalne wyniki w klasyfikacji nowych zestawów nieprzeszkolonych danych. W ten sposób można to osiągnąć, umieszczając hiperpłaszczyznę w pozycji, w której margines jest maksymalny.
Zobaczmy przykład liniowo oddzielonych punktów danych:
Krok 1: Znajdź właściwą hiperpłaszczyznę z różnych możliwości: Aby wybrać najlepszą hiperpłaszczyznę, znajdź wszystkie możliwe płaszczyzny, które dzielą dane, a następnie wybierz tę, która najlepiej klasyfikuje zbiory danych wejściowych. Na poniższym wykresie są trzy możliwości hiperpłaszczyzny. Hiperpłaszczyzna 3 lepiej dzieli punkty danych.
Krok 2: Wybierz hiperpłaszczyznę mającą maksymalny margines między najbliższymi punktami danych: Margines jest zdefiniowany jako odległość między hiperpłaszczyzną a najbliższymi punktami danych. Zatem optymalne jest posiadanie maksymalnego marginesu. Gdy 2 lub więcej niż 2 hiperpłaszczyzny równo klasyfikują dane, znajdź margines.
Wybierana jest hiperpłaszczyzna z maksymalnym marginesem. Na poniższym rysunku hiperpłaszczyzna 2.1, 2.2 i 2.3 dzieli punkty danych, ale hiperpłaszczyzna 2.2 ma maksymalny margines.
Krok 3: W przypadku występowania wartości odstających: wartości odstające to punkty danych, które różnią się od zbioru punktów danych. W przypadku 2 zestawów punktów danych może występować wartość odstająca. Maszyna SVM ignoruje takie wartości odstające w danych, a następnie znajduje hiperpłaszczyznę o maksymalnym marginesie.
Krok 4: W przypadku nieliniowo oddzielonych punktów danych, SVM używa sztuczki jądra. Przekształci nieliniowo rozdzielną płaszczyznę w oddzielną szybę, wprowadzając nowy wymiar. Sztuczki jądra to złożone równania matematyczne, które wykonują złożone transformacje danych w celu optymalizacji hiperpłaszczyzny.
Poniższy rysunek przedstawia nieliniowo rozdzielalne punkty danych, które są następnie przekształcane w płaszczyznę z do postaci o dużej wymiarowości. Hiperpłaszczyzna dzieląca dwa zbiory danych to okrąg.
Jak zoptymalizować położenie hiperpłaszczyzny
Położenie hiperpłaszczyzny jest optymalizowane przy użyciu algorytmów optymalizacji.
Parametr SVM: jądro
Budowanie zoptymalizowanej hiperpłaszczyzny w nieliniowo dającym się oddzielić problemie odbywa się za pomocą jądra. Jądra to funkcje matematyczne, które przekształcają złożony problem za pomocą liniowej postaci algebraicznej.
W przypadku jądra liniowego równanie można znaleźć jako:
F (x) = b + suma (aja* (x, xja))
gdzie,
x to nowe dane wejściowe
xjajest wektorem nośnym
b, ajasą współczynnikami. Współczynniki te są szacowane w fazie uczenia algorytmu.
W przypadku złożonego problemu nieliniowego, który można rozdzielić, sztuczka jądra działa jak przekształcenie nieliniowego problemu, który można oddzielić, w problem, który można oddzielić. Przekształca złożone dane i znajduje sposób na podzielenie punktów danych na wyniki.
Istnieje wiele typów funkcji jądra, takich jak liniowe, wielomianowe, sigmoidalne, promieniowe, nieliniowe i wiele innych.
Zobaczmy zastosowania niektórych z powyższych funkcji jądra:
Funkcje jądra obliczają iloczyn skalarny dwóch wejść x, y przestrzeni.
# 1) Funkcja promieniowego odchylenia: Najczęściej używana funkcja jądra mówi, że dla wszystkich wartości leżących między x = [-1,1], wartość funkcji wynosi 1, w przeciwnym razie 0. Dla niektórych wyrazów przecięcia powiedzmy xja, wartość funkcji jądra wynosi 1 dla | (xja- h), (xja+ h) | dla xjajako środek, a 0 w innym przypadku.
# 2) Funkcja sygmoidalna: Jako sieci neuronowe wykorzystujące Sigmoid, funkcja jądra maszyn SVM to
# 3) Funkcja styczna hiperboliczna: Jak używają sieci neuronowe, funkcja jest
# 4) Funkcja jądra Gaussa: Stan funkcji jądra Gaussa
# 5) Funkcja wielomianu: k (xja, xjot) = (xja* xjot+1)dwa
Zastosowania SVM
Rzeczywiste zastosowania SVM obejmują:
# 1) Klasyfikacja artykułów na różne kategorie: SVM rozróżnia teksty pisane i umieszcza je w różnych kategoriach, takich jak rozrywka, zdrowie, artykuły beletrystyczne. Opiera się na wstępnie ustawionych wartościach progowych obliczonych podczas szkolenia maszyny SVM.
Jeśli wartość progowa zostanie przekroczona, zostaje przypisana do kategorii. Jeśli wartość nie jest spełniona, definiowane są nowe kategorie do klasyfikacji.
jak otwierać pliki APK na telefonie z Androidem
# 2) Rozpoznawanie twarzy: Dany obraz jest klasyfikowany jako obraz twarzy lub obraz bez twarzy poprzez wykrywanie cech za pomocą pikseli. Obraz jest rozpoznawany jako twarz lub nie-twarz.
# 3) Informacje zdrowotne: SVM są używane do klasyfikowania pacjentów na podstawie ich genów, rozpoznawania wzorców biologicznych itp.
# 4) Wykrywanie homologii białek: W komputerowych naukach medycznych, SVM są szkolone w zakresie modelowania sekwencji białek. Następnie stosuje się SVM do wykrywania homologii białek.
Wniosek
W tym samouczku dotyczącym maszyny wektorów nośnych dowiedzieliśmy się o maszynach wektorów nośnych. Algorytmy SVM to nadzorowane algorytmy uczenia się, które są używane do klasyfikowania danych binarnych i danych rozdzielanych liniowo. Klasyfikuje punkty danych według hiperpłaszczyzny z maksymalnym marginesem.
Nieliniowe punkty danych mogą być również klasyfikowane przez maszyny wektorów nośnych przy użyciu sztuczek jądra. W prawdziwym życiu istnieje wiele aplikacji SVM, a jedną z najpopularniejszych jest rozpoznawanie twarzy i pisma ręcznego.
Miłego czytania !!
=> Odwiedź tutaj, aby zapoznać się z ekskluzywną serią uczenia maszynowego
rekomendowane lektury
- Samouczek uczenia maszynowego: wprowadzenie do ML i jej aplikacji
- Kompletny przewodnik po sztucznej sieci neuronowej w uczeniu maszynowym
- Wydobywanie danych kontra uczenie maszynowe, sztuczna inteligencja kontra uczenie głębokie
- Rodzaje uczenia maszynowego: uczenie nadzorowane i nienadzorowane
- Wprowadzenie do algorytmów genetycznych w uczeniu maszynowym
- 11 najpopularniejszych narzędzi oprogramowania do uczenia maszynowego w 2021 r
- 13 najlepszych firm zajmujących się uczeniem maszynowym [zaktualizowana lista w 2021 r.]
- Co to jest wektor Java | Samouczek klasy wektorowej Java z przykładami