Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Podstawy uczenia maszynowego
Wykład 05 – Maszyny wektorów wspierającychJarosław Miszczak
31/03/2021
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
1 Liniowa separowalność zbiorów
2 Maszyny wektorów wspierających
3 Nieliniowy SVM
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
LiniowośćNa poprzednim wykładzie przekonaliśmy się, że proste modele liniowe nadają się do klasyfikacji.
Prosty model regresji do podziału na dwie klasy dawał dobre efekty.
Regresja logistyczna również bazowała na liniowej funkcji – iloczynie skalarnym wektora cech i parametrów modelu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
LiniowośćNa poprzednim wykładzie przekonaliśmy się, że proste modele liniowe nadają się do klasyfikacji.
Prosty model regresji do podziału na dwie klasy dawał dobre efekty.
Regresja logistyczna również bazowała na liniowej funkcji – iloczynie skalarnym wektora cech i parametrów modelu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
LiniowośćNa poprzednim wykładzie przekonaliśmy się, że proste modele liniowe nadają się do klasyfikacji.
Prosty model regresji do podziału na dwie klasy dawał dobre efekty.
Regresja logistyczna również bazowała na liniowej funkcji – iloczynie skalarnym wektora cech i parametrów modelu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
LiniowośćLiniowość
Czy klasy można zawsze rozróżnić budując odpowiednią funkcję liniową?
Jeżeli nawet nie zawsze jest to możliwe, to możemy na początek założyć, że ograniczamy się tylko do takich sytuacji...
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
LiniowośćLiniowość
Czy klasy można zawsze rozróżnić budując odpowiednią funkcję liniową?
Jeżeli nawet nie zawsze jest to możliwe, to możemy na początek założyć, że ograniczamy się tylko do takich sytuacji...
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisLiniowa separacja klasy
Dobrym przykładem jest zbiór iris, w którym jedna z klas może być odseparowana liniowo od pozostałych
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem iris0.5 1.0 1.5 2.0 2.5 petal width (cm)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem iris1 2 3 4 5 6 7 petal length (cm) 0.0 0.5 1.0 1.5 2.0 2.5 petal width (cm)
Klasy ’setosa’ oraz ’virginica’
setosa virginica
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisPo obrocie przypomina to
przykład zastosowania regresji do klasyfikacji. Metoda
najmniejszych kwadratów pozwala na odseparowanie klas.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisDo rozróżnienia czy kwiat należy do gatunku setosa czy virginica, potrzebujemy tylko jednej liczby.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisProblem z liniową separowalnością klas
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisKlasversicolor ivirginicanie można odseparować w ten sposób.
1 2 3 4 5 6 7 petal length (cm) 0.0 0.5 1.0 1.5 2.0 2.5 petal width (cm)
Wszystkie klasy ze zbioru
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisKlasversicolor ivirginicanie można odseparować w ten sposób.
1.0 1.5 2.0 2.5 width (cm)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisLiniowość
Ale zajmijmy się najpierw sytuacją, gdy możemy odseparować klasy liniowo.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisPrzypomnijmy, że nasze dane to pary (x1, y1), (x2, y2), . . . , (xm, ym)
i przyjmijmy, że yi =±1 (czyli mamy klasyfikację binarną).
Dwie klasy są liniowo separowalne, jeżeli istnieje hiperpłaszczyzna g (x ) = w· x + b,
taka, że
g (xi)> 0 dla yi = +1
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisPrzypomnijmy, że nasze dane to pary (x1, y1), (x2, y2), . . . , (xm, ym)
i przyjmijmy, że yi =±1 (czyli mamy klasyfikację binarną).
Dwie klasy są liniowo separowalne, jeżeli istnieje hiperpłaszczyzna g (x ) = w· x + b,
taka, że
g (xi)> 0 dla yi = +1
g (xi)< 0 dla yi =−1
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisHiperpłaszczyzna
Hiperpłaszczyzna w przestrzeni liniowej RN, to N − 1 wymiarowa
podprzestrzeń.
Na płaszczyźnie hiperpłaszczyzną jest prosta, y = ax + b W przestrzeni hiperpłaszczyzną jest płaszczyzna,
z = ax + by + c.
Czyli na hiperpłaszczyźnie jedna współrzędna jest zadana liniową kombinacją pozostałych.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisHiperpłaszczyzna
Hiperpłaszczyzna w przestrzeni liniowej RN, to N − 1 wymiarowa
podprzestrzeń.
Na płaszczyźnie hiperpłaszczyzną jest prosta, y = ax + b
W przestrzeni hiperpłaszczyzną jest płaszczyzna,
z = ax + by + c.
Czyli na hiperpłaszczyźnie jedna współrzędna jest zadana liniową kombinacją pozostałych.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisHiperpłaszczyzna
Hiperpłaszczyzna w przestrzeni liniowej RN, to N − 1 wymiarowa
podprzestrzeń.
Na płaszczyźnie hiperpłaszczyzną jest prosta, y = ax + b W przestrzeni hiperpłaszczyzną jest płaszczyzna,
z = ax + by + c.
Czyli na hiperpłaszczyźnie jedna współrzędna jest zadana liniową kombinacją pozostałych.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisHiperpłaszczyzna
Hiperpłaszczyzna w przestrzeni liniowej RN, to N − 1 wymiarowa
podprzestrzeń.
Na płaszczyźnie hiperpłaszczyzną jest prosta, y = ax + b W przestrzeni hiperpłaszczyzną jest płaszczyzna,
z = ax + by + c.
Czyli na hiperpłaszczyźnie jedna współrzędna jest zadana liniową kombinacją pozostałych.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisPojawia się oczywiste pytanie...
Jak wybrać prostą?
W przypadku zbioru iris możemy wybrać prostą oddzielającą dwa zbiory na wiele sposobów.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisPojawia się oczywiste pytanie... Jak wybrać prostą?
W przypadku zbioru iris możemy wybrać prostą oddzielającą dwa zbiory na wiele sposobów.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem iris0.5 1.0 1.5 2.0 2.5 petal width (cm)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem iris1 2 3 4 5 6 7 petal length (cm) 0.0 0.5 1.0 1.5 2.0 2.5 petal width (cm)
Liniowa separacja klas ’setosa’ i ’virginica’
setosa virginica
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem iris0.5 1.0 1.5 2.0 2.5 petal width (cm)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Liniowość
Przykład ze zbiorem iris
Liniowa separowalność zbiorów
Przykład ze zbiorem irisJak wybrać najlepszą linię prostą? Która z prostych jest zatem najlepsza?
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny wektorów wspierających?
Określenie support-vector machine bywa tłumaczone jako maszyny wektorów wspierających lub maszyny wektorów nośnych lub maszyny wektorów podpierających.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny?
Co to jest maszyna? . . .
. . . . . .
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny? Co to jest maszyna? . . . . . . . . . 19 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny?
Co to jest maszyna? . . .
. . . . . .
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny? Co to jest maszyna? . . . . . . . . . 19 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Maszyny?
Co to jest maszyna? . . .
. . . . . .
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiWracając do problemu doboru prostej. . .
Naszym celem jest zaklasyfikowanie danych – czyli oddzielenie punktów z jednej klasy od punktów z drugiej klasy.
Zatem określenie najlepszej prostej oddzielającej klasy powinno być związane z tym zagadnieniem.
Która prosta jest najlepsza?
Przyjmijmy zatem, że najlepsza jest taka prosta, która pozwala na oddzielenie zbiorów największym marginesem.
Margines to odległość od granicy liniowej separowalności do najbliższego przykładu ze zbioru treningowego.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiWracając do problemu doboru prostej. . .
Naszym celem jest zaklasyfikowanie danych – czyli oddzielenie punktów z jednej klasy od punktów z drugiej klasy.
Zatem określenie najlepszej prostej oddzielającej klasy powinno być związane z tym zagadnieniem.
Która prosta jest najlepsza?
Przyjmijmy zatem, że najlepsza jest taka prosta, która pozwala na oddzielenie zbiorów największym marginesem.
Margines to odległość od granicy liniowej separowalności do najbliższego przykładu ze zbioru treningowego.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiWracając do problemu doboru prostej. . .
Naszym celem jest zaklasyfikowanie danych – czyli oddzielenie punktów z jednej klasy od punktów z drugiej klasy.
Zatem określenie najlepszej prostej oddzielającej klasy powinno być związane z tym zagadnieniem.
Która prosta jest najlepsza?
Przyjmijmy zatem, że najlepsza jest taka prosta, która pozwala na oddzielenie zbiorów największym marginesem.
Margines to odległość od granicy liniowej separowalności do najbliższego przykładu ze zbioru treningowego.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiWracając do problemu doboru prostej. . .
Naszym celem jest zaklasyfikowanie danych – czyli oddzielenie punktów z jednej klasy od punktów z drugiej klasy.
Zatem określenie najlepszej prostej oddzielającej klasy powinno być związane z tym zagadnieniem.
Która prosta jest najlepsza?
Przyjmijmy zatem, że najlepsza jest taka prosta, która pozwala na oddzielenie zbiorów największym marginesem.
Margines to odległość od granicy liniowej separowalności do najbliższego przykładu ze zbioru treningowego.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiWracając do problemu doboru prostej. . .
Naszym celem jest zaklasyfikowanie danych – czyli oddzielenie punktów z jednej klasy od punktów z drugiej klasy.
Zatem określenie najlepszej prostej oddzielającej klasy powinno być związane z tym zagadnieniem.
Która prosta jest najlepsza?
Przyjmijmy zatem, że najlepsza jest taka prosta, która pozwala na oddzielenie zbiorów największym marginesem.
Margines to odległość od granicy liniowej separowalności do najbliższego przykładu ze zbioru treningowego.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiZobaczmy, jak to wygląda dla przykładów prostych ilustrujących liniową separację klassetosa ivirginica.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji −0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Margines separacji klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji −0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Margines separacji klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji −0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Margines separacji klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacji 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) margines separacjiLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Margines separacjiSzerokość marginesu
W większości wypadków nasz margines można poszerzyć.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZasada działania SVM
Algorytm SVM ma na celu znalezienie takiej prostej, która oddziela przykłady ze zbioru treningowego z maksymalnym marginesem.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesIle wynosi szerokość marginesu?
Granice marginesu to hiperpłaszczyzny, które odpowiadają skrajnym przypadkom ze zbioru treningowego.
Oznacza to, że wszystkie przypadki z klasy +1 powinny spełniać warunek g(x) > 0 (bo są separowalne liniowo) oraz
g (x ) 1 (bo należą do klasy 1). Podobnie dla klasy −1.
Przypadki, dla których zachodzi g(x) = 1 oraz g(x) = −1 to
wektory wspierające lub wektory nośne.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesIle wynosi szerokość marginesu?
Granice marginesu to hiperpłaszczyzny, które odpowiadają skrajnym przypadkom ze zbioru treningowego.
Oznacza to, że wszystkie przypadki z klasy +1 powinny spełniać warunek g(x) > 0 (bo są separowalne liniowo) oraz
g (x ) 1 (bo należą do klasy 1). Podobnie dla klasy −1.
Przypadki, dla których zachodzi g(x) = 1 oraz g(x) = −1 to
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesIle wynosi szerokość marginesu?
Granice marginesu to hiperpłaszczyzny, które odpowiadają skrajnym przypadkom ze zbioru treningowego.
Oznacza to, że wszystkie przypadki z klasy +1 powinny spełniać warunek g(x) > 0 (bo są separowalne liniowo) oraz
g (x ) 1 (bo należą do klasy 1). Podobnie dla klasy −1.
Przypadki, dla których zachodzi g(x) = 1 oraz g(x) = −1 to
wektory wspierające lub wektory nośne.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesIle wynosi szerokość marginesu?
Granice marginesu to hiperpłaszczyzny, które odpowiadają skrajnym przypadkom ze zbioru treningowego.
Oznacza to, że wszystkie przypadki z klasy +1 powinny spełniać warunek g(x) > 0 (bo są separowalne liniowo) oraz
g (x ) 1 (bo należą do klasy 1). Podobnie dla klasy −1.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesStąd nazwa... Twardy margines
Wewnątrz twardego marginesu nie mogą się znaleźć przypadki z żadnej z tych klas!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesGranice marginesu spełniają równania g(x) = +1 oraz g (x ) =−1.
Odległość między nimi wynosi 2
kwk.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZnalezienie hiperpłaszczyzny rozdzielającej dwie klasy z maksymalnym marginesem to min w kwk2 2 przy warunkach yi(w· xi+ b) 1 dla i = 1, 2, . . . , m.
Jest to problem optymalizacji kwadratowej, który rozwiązuje się metodą mnożników Lagrange’a.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZastosowanie do zbioru iris
Zobaczmy, jak to działa dla klassetosaivirginica.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy margines 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Działanie SVM dla klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy margines 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy margines 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm)Działanie SVM dla klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy margines 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) wektory wspierająceLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy margines 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) −0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) wektory wspierające hiperpłaszczyzna separującaDziałanie SVM dla klas ’setosa’ i ’virginica’
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZłożoność pamięciowa
W naszym przypadku dane są rozmieszczone na płaszczyźnie. Do odseparowania klas potrzebne są tylko dwa punkty! Dwa punkty wystarczą niezależnie od liczby przykładów!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZłożoność pamięciowa
W naszym przypadku dane są rozmieszczone na płaszczyźnie.
Do odseparowania klas potrzebne są tylko dwa punkty! Dwa punkty wystarczą niezależnie od liczby przykładów!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZłożoność pamięciowa
W naszym przypadku dane są rozmieszczone na płaszczyźnie. Do odseparowania klas potrzebne są tylko dwa punkty!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Twardy marginesZłożoność pamięciowa
W naszym przypadku dane są rozmieszczone na płaszczyźnie. Do odseparowania klas potrzebne są tylko dwa punkty! Dwa punkty wystarczą niezależnie od liczby przykładów!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesNakładanie się danych
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesW tym wypadku możemy osłabić warunek twardego marginesu i pozwolić na błędną klasyfikację.
W takiej sytuacji wektory nośne powinny spełniać warunki w· x + b = 1 − ζ
oraz
w · x + b = −1 + ζ.
Elementy wektora ζ to zmienne osłabiające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesW tym wypadku możemy osłabić warunek twardego marginesu i pozwolić na błędną klasyfikację.
W takiej sytuacji wektory nośne powinny spełniać warunki w· x + b = 1 − ζ
oraz
w · x + b = −1 + ζ.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesW tym wypadku możemy osłabić warunek twardego marginesu i pozwolić na błędną klasyfikację.
W takiej sytuacji wektory nośne powinny spełniać warunki w· x + b = 1 − ζ
oraz
w · x + b = −1 + ζ.
Elementy wektora ζ to zmienne osłabiające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesNasze zagadnienie optymalizacji przekształca się do postaci min w kwk2 2 + C m X i =1 ζi, przy warunkach yi(w· xi+ b) 1 − ζi oraz
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesMiękki margines
Ponieważ teraz dopuszczamy pojawienie się błędów klasyfikacji, tak otrzymany margines nazywamy miękkim marginesem.
Kontrolowanie dopuszczalnego błędu
Hiperparametr C pozwala na kontrolowanie szerokości marginesu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesMiękki margines
Ponieważ teraz dopuszczamy pojawienie się błędów klasyfikacji, tak otrzymany margines nazywamy miękkim marginesem.
Kontrolowanie dopuszczalnego błędu
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki marginesZastosowanie do zbioru iris
Znowu użyjemy zbioru iris, ale zobaczmy jak działa SVM dla klas
versicolor ivirginica.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=0.001Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=0.1Działanie SVM dla klas ’versicolor’ i ’virginica’
Elementy oznaczone przez oznaczają wektory wspierające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=1Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=5Działanie SVM dla klas ’versicolor’ i ’virginica’
Elementy oznaczone przez oznaczają wektory wspierające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=20Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=100Działanie SVM dla klas ’versicolor’ i ’virginica’
Elementy oznaczone przez oznaczają wektory wspierające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=500Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie
Margines separacji Twardy margines Miękki margines
Maszyny wektorów wspierających
Miękki margines 2.5 3.5 4.5 5.5 6.5 7.5 petal length (cm) 0.5 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=10000Działanie SVM dla klas ’versicolor’ i ’virginica’
Elementy oznaczone przez oznaczają wektory wspierające.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Margines separacji Twardy margines Miękki margines Liniowa separowalność
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
40 / 80Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Założyliśmy, że możliwa jest liniowa separacja klas.
Wyznaczyliśmy sobie cel w postaci maksymalizacji
szerokości marginesu.
Doprowadziło to do problemu optymalizacji kwadratowej. Żeby uwzględnić możliwość nakładania się klas
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Założyliśmy, że możliwa jest liniowa separacja klas. Wyznaczyliśmy sobie cel w postaci maksymalizacji
szerokości marginesu.
Doprowadziło to do problemu optymalizacji kwadratowej. Żeby uwzględnić możliwość nakładania się klas
wprowadziliśmy możliwość błędnej klasyfikacji.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Założyliśmy, że możliwa jest liniowa separacja klas. Wyznaczyliśmy sobie cel w postaci maksymalizacji
szerokości marginesu.
Doprowadziło to do problemu optymalizacji kwadratowej.
Żeby uwzględnić możliwość nakładania się klas wprowadziliśmy możliwość błędnej klasyfikacji.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Założyliśmy, że możliwa jest liniowa separacja klas. Wyznaczyliśmy sobie cel w postaci maksymalizacji
szerokości marginesu.
Doprowadziło to do problemu optymalizacji kwadratowej. Żeby uwzględnić możliwość nakładania się klas
wprowadziliśmy możliwość błędnej klasyfikacji.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Brak separacji liniowej
Jak wykorzystać to podejście jeżeli klasy nie są liniowo separowalne?
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechZacznijmy od przykładu który nie jest separowalny liniowy. Zbiór uczący jest postaci
(−4, 1), (−3, 1), (−2, 0), . . . , (1, 0), (2, 0), (3, 1), (4, 1)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech 0 1Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechJeżeli będziemy chcieli oddzielić klasy na pomocą prostej, to co najmniej połowa przypadków z którejś klasy będzie niepoprawnie zaklasyfikowana.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech 0 1Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −4 −3 −2 −1 0 1 2 3 4 −1 0 1 46 / 80Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech 0 1Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −4 −3 −2 −1 0 1 2 3 4 −1 0 1 46 / 80Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechJeżeli do wektora cech dodamy kolejny element – równy w tym
wypadku x2 – to nasz zbiór będzie wyglądał tak
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −4 −3 −2 −1 0 1 2 3 4 −1 1 3 5 7 9 11 13 15 17 48 / 80Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −4 −3 −2 −1 0 1 2 3 4 −1 1 3 5 7 9 11 13 15 17 50 / 80Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechDodawanie cech w modelach liniowych
Dodawanie cech pojawiło się już w przypadku regresji wielomianowej!
Taki zabieg pozwala na liniowe odseparowanie klas, ale powoduje że konieczne jest przetwarzanie większej ilości cech!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechDodawanie cech w modelach liniowych
Dodawanie cech pojawiło się już w przypadku regresji wielomianowej!
Taki zabieg pozwala na liniowe odseparowanie klas, ale powoduje że konieczne jest przetwarzanie większej ilości cech!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech PrzykładPrzykład z danymi moons . . . (svm-moons-ex.py)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechTym razem zaczniemy od przeskalowania danych poprzez StandardScaler z modułu sklearn.preprocessing
−2.5 −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −2.5 −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 Dane surowe 53 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechTym razem zaczniemy od przeskalowania danych poprzez StandardScaler z modułu sklearn.preprocessing
0.0 0.5 1.0 1.5 2.0 2.5 Dane po normalizacji
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech Normalizacja danychSVM operuje na odległościach i dlatego na jego działanie duży wpływa ma skalowanie danych!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 1 czas = 5msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 stopień = 2 czas = 4msDziałanie LinearSVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 3 czas = 4msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 stopień = 4 czas = 4msDziałanie LinearSVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 5 czas = 5msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechDla naszego zbioru danych wyższe potęgi nic poprawiają predykcji...
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 10 czas = 16msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 stopień = 20 czas = 58msDziałanie LinearSVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 30 czas = 150msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 stopień = 40 czas = 244msDziałanie LinearSVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech −0.5 0.0 0.5 1.0 1.5 stopień = 50 czas = 371msLiniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cechStopień generowanych cech
Podobnie jak w przypadku regresji wielomianowej stopień generowanych cech jest hiperparametrem algorytmu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Dodawanie cech – wpływ na wydajność
50 100 150 200 250 300 350 400 czas uczenia LinearSVC [ms]
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Funkcje jądroweMetodą która pozwala na ominięcie problemu spadku wydajności uczenia jest zastosowanie funkcji jądrowych.
Pozwalają one wyliczenie zmodyfikowanego iloczynu
skalarnegomiędzy wektorami cech bez konieczności ich
transformacji.
Zmodyfikowany iloczyn skalarny jest wyliczany w przestrzeni o wyższym wymiarze.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Funkcje jądroweMetodą która pozwala na ominięcie problemu spadku wydajności uczenia jest zastosowanie funkcji jądrowych. Pozwalają one wyliczenie zmodyfikowanego iloczynu
skalarnegomiędzy wektorami cech bez konieczności ich
transformacji.
Zmodyfikowany iloczyn skalarny jest wyliczany w przestrzeni o wyższym wymiarze.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Funkcje jądroweMetodą która pozwala na ominięcie problemu spadku wydajności uczenia jest zastosowanie funkcji jądrowych. Pozwalają one wyliczenie zmodyfikowanego iloczynu
skalarnegomiędzy wektorami cech bez konieczności ich
transformacji.
Zmodyfikowany iloczyn skalarny jest wyliczany w przestrzeni o wyższym wymiarze.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny Problem dualnyDo rozwiązania problemu optymalizacji kwadratowej który pojawił się przy formułowaniu zasady działania SVM wykorzystuje się metodę mnożników Lagrange’a, która prowadzi do tzw. problemu
dualnego, min α 1 2 m X i =1 m X j =1 αiαjtitjxi · xj − m X i =1 αi
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyRozwiązanie problemy pierwotnego poprzez problem dualny Współczynniki równania hiperpłaszczyzny z maksymalnym marginesem mają postać
w = m X i =1 αitixi b = 1 ns m X i =1 (ti − w · xi),
gdzie ns to liczba wektorów wspierających.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyPo co nam iloczyn skalarny?
Żeby dokonać klasyfikacji wektora x?, liczymy iloczyn skalarny
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyWektory bra i ket
Wygodną notacją dla iloczynu skalarnego jest tzw. notacja Diraca. Wprowadza się w niej wektory bra, hx|, czyli wektory wierszowe, oraz wektory ket, |xi, czyli wektory kolumnowe. Ponieważ
|xiT =hx|, razem dają one braket, hx
1|y2i, czyli właśnie iloczyn
skalarny wektorów x1 i x2.
W tej notacji problem dualny można zapisać jako min α 1 2 m X i =1 m X j =1 αiαjtitjhxi|xji − m X i =1 αi. 64 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajprostszym przykładem mapowania z oryginalnych cech do przestrzenie o wyższym wymiarze jest odwzorowanie
φ2(v ) =φ2((vv12)) = v2 1 √ 2v1v2 v2 2 ! ,
czyli odwzorowanie tego typu którego użyliśmy do generowania cech wielomianowych na początku wykładu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajprostszym przykładem mapowania z oryginalnych cech do przestrzenie o wyższym wymiarze jest odwzorowanie
φ2(v ) =φ2((vv12)) = v2 1 √ 2v1v2 v2 2 ! ,
czyli odwzorowanie tego typu którego użyliśmy do generowania cech wielomianowych na początku wykładu.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyWyliczenie iloczynu skalarnego hφ2(a)|φ2(b)i daje
hφ2(a)|φ2(b)i = (a21 √ 2a1a2 a22) b2 1 √ 2b1y2 b2 2 ! = a21b21+2a1a2b1b2+ a22b22 = (ha|bi)2
Zatem zamiast liczyć iloczyn skalarny w przestrzeni R3, wystarczy
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyWyliczenie iloczynu skalarnego hφ2(a)|φ2(b)i daje
hφ2(a)|φ2(b)i = (a21 √ 2a1a2 a22) b2 1 √ 2b1y2 b2 2 ! = a21b21+2a1a2b1b2+ a22b22 = (ha|bi)2
Zatem zamiast liczyć iloczyn skalarny w przestrzeni R3, wystarczy
policzyć odpowiedni iloczyn w przestrzeni R2.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyZastąpienie x przez φ(x) powoduje, że w problemie dualnym pojawią się iloczyny skalarne postaci hφ(xi)|φ(xj)i.
Jądro (lub kernel)
Funkcję którą możemy zapisać w postaci K (xi, xj) =hφ(xi)|φ(xj)i
dla pewnego odwzorowanie φ : Rk 7→ Rn, nazywamy funkcją
jądrowąlub kernelem.
Kernel trick
Do obliczenia K (xi, xj) nie musimy znać φ! Wystarczy, że takie
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyZastąpienie x przez φ(x) powoduje, że w problemie dualnym pojawią się iloczyny skalarne postaci hφ(xi)|φ(xj)i.
Jądro (lub kernel)
Funkcję którą możemy zapisać w postaci K (xi, xj) =hφ(xi)|φ(xj)i
dla pewnego odwzorowanie φ : Rk 7→ Rn, nazywamy funkcją
jądrowąlub kernelem.
Kernel trick
Do obliczenia K (xi, xj) nie musimy znać φ! Wystarczy, że takie
odwzorowanie istnieje!
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyZastąpienie x przez φ(x) powoduje, że w problemie dualnym pojawią się iloczyny skalarne postaci hφ(xi)|φ(xj)i.
Jądro (lub kernel)
Funkcję którą możemy zapisać w postaci K (xi, xj) =hφ(xi)|φ(xj)i
dla pewnego odwzorowanie φ : Rk 7→ Rn, nazywamy funkcją
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady funkcji jądrowych to
K (xi, xj) = xi · xj+γ – jądro liniowe, K (xi, xj) = (xi· xj +γ)p – jądro wielomianowe, K (xi, xj) = exp(−γ kxi−xjk 2 ) – jądro gaussowskie. 68 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady funkcji jądrowych to K (xi, xj) = xi · xj+γ – jądro liniowe,
K (xi, xj) = (xi· xj +γ)p – jądro wielomianowe,
K (xi, xj) = exp(−γ
kxi−xjk
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady funkcji jądrowych to K (xi, xj) = xi · xj+γ – jądro liniowe, K (xi, xj) = (xi· xj +γ)p – jądro wielomianowe, K (xi, xj) = exp(−γ kxi−xjk 2 ) – jądro gaussowskie. 68 / 80
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady funkcji jądrowych to K (xi, xj) = xi · xj+γ – jądro liniowe,
K (xi, xj) = (xi· xj +γ)p – jądro wielomianowe,
K (xi, xj) = exp(−γ
kxi−xjk
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyPrzykład z danymi moons . . . (svm-moons-ex.py)
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −0.5 0.0 0.5 1.0 1.5Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5kernel wielomianowy (deg=2)
Działanie SVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −0.5 0.0 0.5 1.0 1.5Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5kernel wielomianowy (deg=4)
Działanie SVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −0.5 0.0 0.5 1.0 1.5Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 kernel gaussowski (γ=2)Działanie SVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −0.5 0.0 0.5 1.0 1.5Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 kernel gaussowski (γ=10)Działanie SVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −0.5 0.0 0.5 1.0 1.5Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualny −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5 −1.0 −0.5 0.0 0.5 1.0 1.5 kernel gaussowski (γ=200)Działanie SVC dla zbioru moons
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady jąder to
Jądro liniowe odpowiada podstawowej (tj. liniowej) wersji SVM.
Jądro wielomianowe odpowiada wersji w której generowane są dodatkowe cechy wielomianowe (jako wielomiany cech). Jądro gaussowskie, które przenosi odległość między wektorami na ich podobieństwo.
Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera
Nieliniowy SVM
Problem dualnyNajczęściej stosowane przykłady jąder to
Jądro liniowe odpowiada podstawowej (tj. liniowej) wersji SVM.
Jądro wielomianowe odpowiada wersji w której generowane są dodatkowe cechy wielomianowe (jako wielomiany cech). Jądro gaussowskie, które przenosi odległość między wektorami na ich podobieństwo.