uczenie maszynowe iii - svm
TRANSCRIPT
![Page 1: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/1.jpg)
UCZENIE MASZYNOWE III - SVM
mgr inż. Adam Kupryjanow
![Page 2: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/2.jpg)
Plan wykładu
Wprowadzenie
LSVM – dane separowalne liniowo
SVM – dane nieseparowalne liniowo
Nieliniowy SVM
„Kernel trick”
Przykłady zastosowań
![Page 3: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/3.jpg)
Historia
1992 wprowadzony przez Boser, Guyon & Vapnik
Algorytm z mocnymi podstawami teoretycznymi,
wywodzący się ze statystyki
Teoria uczenia (Vapnik & Chervonenkis) z lat 60tych
Dobrze przebadany eksperymentalnie i
zastosowany w wielu dziedzinach: bioinformatyka,
rozpoznawanie tekstu/obrazu, …
![Page 4: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/4.jpg)
Dane liniowo separowalne
Dane {xi}, i = 1, …, l, xi ϵ Rd należące do dwóch
klas określonych zmiennymi {yi}, i = 1,…,l są liniowo
separowalne, jeśli istnieje hiperpłaszczynza H
postaci g(x):
H: g(x) = wtx + b
przyjmująca wartości (i = 1, …, n):
![Page 5: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/5.jpg)
Jak wyznaczyć hiperpłaszczyznę?
Istnieje nieskończenie wiele funkcji rozdzielających
dwie klasy
![Page 6: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/6.jpg)
w1
w2
Liniowa maszyna wektorów nośnych LSVM
Pomysł Vapnika metoda SVM (wektory nośne)
Algorytm wyznaczanie hiperpłaszczyzny dąży do uzyskania jak największego marginesu
g(x) = 0
g(x) = 1 – hiperpłaszczyzna marginesowa
g(x) = -1 - hiperpłaszczyzna marginesowa
g(x) = wtx + b = 0
![Page 7: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/7.jpg)
Wyznaczanie marginesu
Można wykazać, że maksymalna odległość pomiędzy marginesami wtx + b = 1 i wtx + b = -1 wynosi , gdzie
Rozwiązanie powinno dążyć do uzyskania jak najkrótszego wektora w, ponieważ wtedy uzyskany margines będzie największy
Postulaty:
minimalizować wektor w -> największy margines
próbki punktów uczących dla funkcji decyzyjnej mają dawać wartości ≥1 lub ≤ -1
![Page 8: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/8.jpg)
LSVM - zagadnienie optymalizacji
minimalizować po w wyrażenie
przy warunku ograniczającym:
Powyższe warunki prowadzą do uogólnionego równania Lagrange’a
gdzie αi to mnożnik Lagrange’a i αi>0
![Page 9: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/9.jpg)
LSVM - zagadnienie optymalizacji
Równanie Lagrange’a powinno różniczkować się po
w i b
Porównując pochodne L(w,b,α) względem w i b do
zera otrzymujemy:
Podstawiając otrzymane wartości do równania
otrzymujemy funkcję decyzyjną g(x):
![Page 10: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/10.jpg)
LSVM - zagadnienie optymalizacji
Funkcja g(x) zależy bezpośrednio od mnożników
Lagrange’a (αi)
Mnożniki na podstawie twierdzenia KKT (Karush-
Kuhn-Tucker) powinny spełniać warunek:
Możliwe gdy:
xi leży na marginesie -> αi dowolne
xi leży poza marginesami -> αi równe zeru
![Page 11: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/11.jpg)
Dane liniowo nieseparowalne
Cortes i Vapnik
wykazali, że możliwe
jest zastosowanie
wektorów nośnych
stosują pewne
rozszerzenie założeń
w1
w2
![Page 12: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/12.jpg)
Dane liniowo nieseparowalne
Nowa zmienna ξi nazywana
„zwisem” (slack variable)
Wartość ξi powinna być „mała”,
aby ją określić rozpatrujemy:
Gdzie C to parametr generalizujący
deklarowany przez użytkownika
Jeżeli 0≤ ξi ≤1 to punkt danych
leży wewnątrz strefy separujące,
po właściwej stronie
Jeżeli ξi >1, punkt po niewłaściwej
stronie hiperpłaszczyny =błąd
klasyfikacji
w1
w2
ξi /||w||
![Page 13: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/13.jpg)
Zagadnienie optymalizacji -SVM
minimalizuj wyrażenie:
przy warunkach:
Otrzymujemy Lagrangian:
Wyznaczamy pochodne cząstkowe względem w, b i ξ, i podstawiamy otrzymane wartości do Lagrangianu. Z warunku zerowania pochodnej Lagrangianu względem ξ otrzymujemy:
![Page 14: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/14.jpg)
Zagadnienie optymalizacji -SVM
W tej sytuacji można wyeliminować β i zastąpić
przez α
Do rozwiązania pozostaje problem dualny:
gdzie,
z ograniczeniami:
![Page 15: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/15.jpg)
Jakiego C używać?
Blanz i Vapnik zalecili stosowania C = 5, ale tak naprawdę C
należy dobierać w zależności od danych uczących.
![Page 16: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/16.jpg)
Nieliniowy SVM
Transformacja do przestrzeni o wyższym wymiarze
Projekcja danych oryginalnych xϵRd do przestrzeni
wymiarowej n>d w której dane z dużym
prawdopodobieństwem będą separowane liniowo
![Page 17: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/17.jpg)
Przykład
Mamy nieliniową funkcję mapującą ϕ: I=R2→F=R3 2-
wymiarową przestrzeń wejściową (input space) do 3-
wymiarowej przestrzeni zmiennych przekształconych (feature
space)
(x1, x2) →(z1, z2, z3) := (x12, 20.5 x1 x2, x2)
hiperłaszczyzna:
<w·x> = 0
![Page 18: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/18.jpg)
Model nieliniowy SVM
funkcja decyzyjna g(x) = wϕ(x)+b
problem optymalizacji
minimalizuj wyrażenie:
Przy warunkach ograniczających:
Funkcja z mnożnikiem Lagrange’a:
gdzie
Funkcja klasyfikująca:
![Page 19: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/19.jpg)
Kernel trick
Jak obliczyć
K(x,z) = (x·z)2, x=(x1, x2), z= (z1, z2)
K(x,z) = (x·z)2 = (x1z1+ x2z2) 2 = (x12z1
2+
2x1z1x2z2 +x22z2
2) =
(x12,√2x1x2,x2
2)·(z12,√2z1z2,z2
2) = ϕ(x)·ϕ(z)
Więc Dij można zapisać:
→ nie trzeba znać funkcji ϕ(x), do operacji w wyższej
przestrzeni wystarczy znajomość jądra (kernel)
![Page 20: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/20.jpg)
Funkcje jądra (kernel functions)
wielomianowe (polinomial):
K(x, z) = (x · z + d)p ,p>0
gaussowskie (radial basis function):
sigmoidalne:
![Page 21: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/21.jpg)
Kilka uwag praktycznych
Normalizuj danej wejściowe
Rozpoczynaj od zastosowania jądra RBF
Znajdź optymalne wartości C i σ. Jak? np. grid
search
W klasyfikatorze wykorzystaj parametry
znalezione w grid-search
![Page 22: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/22.jpg)
Grid-search – znalezienie maksimum
![Page 23: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/23.jpg)
Grid-search – szukanie w okolicy
maksimum
![Page 24: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/24.jpg)
Klasyfikacja wieloklasowa- One-versus-all
One-versus-all – wiele klasyfikatorów
dwuklasowych. Każdy klasyfikator dzieli dane
wejściowe na klasę zainteresowania i na „resztę”.
Decyzja o przynależności do klasy podejmowana
może być w różny sposób np. głosowanie
większościowe, pewność decyzji …
Konieczność wytrenowania tylu klasyfikatorów ile
klas.
![Page 25: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/25.jpg)
Klasyfikacja wieloklasowa- One-against-one
One-against-one – wiele klasyfikatorów
dwuklasowych. Klasyfikatory dla każdej pary klas
Decyzja podejmowana podobnie jak dla One-
versus-all
Konieczność wytrenowania k(k-1)/2 klasyfikatorów,
gdzie k to liczba klas
![Page 26: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/26.jpg)
Implementacje
C++
libSVM
SVM light
Java
Weka
Matlab:
libSVM
Spider
![Page 27: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/27.jpg)
Bibilografia
A.Bartkowiak: Wykłady nt. Sieci Neuronowych: w11 Kernele, siecie SVM i sieci GDA. http://www.ii.uni.wroc.pl/~aba/
J. STEFANOWSKI, SVM – Support Vector Machines Metoda wektorów nośnych, http://www.cs.put.poznan.pl/jstefanowski/ml/SVM.pdf
J. Weston: Support Vector Machine (and Statistical Learning Theory) Tutorial, http://www.cs.columbia.edu/~kathy/cs4701/documents/jason_svm_tutorial.pdf
http://www.kernel-machines.org/
![Page 28: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/28.jpg)
Bibliografia
C. Hsu, C. Chang, C. Lin, “A practical guide to
Support Vector Classification”, April 2010, Taiwan.
(http://www.csie.ntu.edu.tw/~cjlin/papers/guide/g
uide.pdf)
M. Hoffman, Support Vector Machines — Kernels
and the Kernel Trick, http://www.cogsys.wiai.uni-
bamberg.de/teaching/ss06/hs_svm/slides/SVM_S
eminarbericht_Hofmann.pdf
![Page 29: Uczenie maszynowe III - SVM](https://reader034.vdocuments.mx/reader034/viewer/2022050915/58760adc1a28ab77708b83a3/html5/thumbnails/29.jpg)
Dziękuję za uwagę !!!