• Nie Znaleziono Wyników

Wykład 05 – Maszyny wektorów wspierających

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 05 – Maszyny wektorów wspierających"

Copied!
174
0
0

Pełen tekst

(1)

Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie

Podstawy uczenia maszynowego

Wykład 05 – Maszyny wektorów wspierających

Jarosław Miszczak

31/03/2021

(2)

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

(3)

Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie

Liniowość

Przykład ze zbiorem iris

Liniowa separowalność zbiorów

(4)

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.

(5)

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.

(6)

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.

(7)

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...

(8)

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...

(9)

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 iris

Liniowa separacja klasy

Dobrym przykładem jest zbiór iris, w którym jedna z klas może być odseparowana liniowo od pozostałych

(10)

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 iris

0.5 1.0 1.5 2.0 2.5 petal width (cm)

(11)

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 iris

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)

Klasy ’setosa’ oraz ’virginica’

setosa virginica

(12)

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 iris

Po obrocie przypomina to

przykład zastosowania regresji do klasyfikacji. Metoda

najmniejszych kwadratów pozwala na odseparowanie klas.

(13)

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 iris

Do rozróżnienia czy kwiat należy do gatunku setosa czy virginica, potrzebujemy tylko jednej liczby.

(14)

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 iris

Problem z liniową separowalnością klas

(15)

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 iris

Klasversicolor 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

(16)

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 iris

Klasversicolor ivirginicanie można odseparować w ten sposób.

1.0 1.5 2.0 2.5 width (cm)

(17)

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 iris

Liniowość

Ale zajmijmy się najpierw sytuacją, gdy możemy odseparować klasy liniowo.

(18)

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 iris

Przypomnijmy, ż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

(19)

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 iris

Przypomnijmy, ż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

(20)

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 iris

Hiperpł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.

(21)

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 iris

Hiperpł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.

(22)

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 iris

Hiperpł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.

(23)

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 iris

Hiperpł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.

(24)

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 iris

Pojawia się oczywiste pytanie...

Jak wybrać prostą?

W przypadku zbioru iris możemy wybrać prostą oddzielającą dwa zbiory na wiele sposobów.

(25)

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 iris

Pojawia się oczywiste pytanie... Jak wybrać prostą?

W przypadku zbioru iris możemy wybrać prostą oddzielającą dwa zbiory na wiele sposobów.

(26)

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 iris

0.5 1.0 1.5 2.0 2.5 petal width (cm)

(27)

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 iris

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)

Liniowa separacja klas ’setosa’ i ’virginica’

setosa virginica

(28)

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 iris

0.5 1.0 1.5 2.0 2.5 petal width (cm)

(29)

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 iris

Jak wybrać najlepszą linię prostą? Która z prostych jest zatem najlepsza?

(30)

Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie

Margines separacji Twardy margines Miękki margines

(31)

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.

(32)

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? . . .

. . . . . .

(33)

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

(34)

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? . . .

. . . . . .

(35)

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

(36)

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? . . .

. . . . . .

(37)

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

Wracają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.

(38)

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

Wracają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.

(39)

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

Wracają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.

(40)

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

Wracają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.

(41)

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

Wracają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.

(42)

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

Zobaczmy, jak to wygląda dla przykładów prostych ilustrujących liniową separację klassetosa ivirginica.

(43)

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’

(44)

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)

(45)

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’

(46)

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)

(47)

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’

(48)

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 separacji

(49)

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

Szerokość marginesu

W większości wypadków nasz margines można poszerzyć.

(50)

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

Zasada działania SVM

Algorytm SVM ma na celu znalezienie takiej prostej, która oddziela przykłady ze zbioru treningowego z maksymalnym marginesem.

(51)

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

Ile 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.

(52)

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

Ile 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

(53)

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

Ile 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.

(54)

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

Ile 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.

(55)

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

Stąd nazwa... Twardy margines

Wewnątrz twardego marginesu nie mogą się znaleźć przypadki z żadnej z tych klas!

(56)

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

Granice marginesu spełniają równania g(x) = +1 oraz g (x ) =−1.

Odległość między nimi wynosi 2

kwk.

(57)

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

Znalezienie 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.

(58)

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

Zastosowanie do zbioru iris

Zobaczmy, jak to działa dla klassetosaivirginica.

(59)

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’

(60)

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)

(61)

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’

(62)

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ące

(63)

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) wektory wspierające hiperpłaszczyzna separująca

Działanie SVM dla klas ’setosa’ i ’virginica’

(64)

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

Zł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!

(65)

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

Zł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!

(66)

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

Złożoność pamięciowa

W naszym przypadku dane są rozmieszczone na płaszczyźnie. Do odseparowania klas potrzebne są tylko dwa punkty!

(67)

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

Zł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!

(68)

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

Nakładanie się danych

(69)

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

W 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.

(70)

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

W 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 + ζ.

(71)

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

W 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.

(72)

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

Nasze 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

(73)

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

Mię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.

(74)

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

Miękki margines

Ponieważ teraz dopuszczamy pojawienie się błędów klasyfikacji, tak otrzymany margines nazywamy miękkim marginesem.

Kontrolowanie dopuszczalnego błędu

(75)

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

Zastosowanie do zbioru iris

Znowu użyjemy zbioru iris, ale zobaczmy jak działa SVM dla klas

versicolor ivirginica.

(76)

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.001

(77)

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 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.1

Działanie SVM dla klas ’versicolor’ i ’virginica’

Elementy oznaczone przez oznaczają wektory wspierające.

(78)

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=1

(79)

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 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=5

Działanie SVM dla klas ’versicolor’ i ’virginica’

Elementy oznaczone przez oznaczają wektory wspierające.

(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

Miękki margines 1.0 1.5 2.0 2.5 3.0 petal width (cm) C=20

(81)

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 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=100

Działanie SVM dla klas ’versicolor’ i ’virginica’

Elementy oznaczone przez oznaczają wektory wspierające.

(82)

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=500

(83)

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 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=10000

Działanie SVM dla klas ’versicolor’ i ’virginica’

Elementy oznaczone przez oznaczają wektory wspierające.

(84)

Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Margines separacji Twardy margines Miękki margines Liniowa separowalność

(85)

Liniowa separowalność zbiorów Maszyny wektorów wspierających Nieliniowy SVM Podsumowanie Dodawanie cech Funkcje jądrowe Problem dualny Twierdzenie Mercera

Nieliniowy SVM

40 / 80

(86)

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

(87)

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.

(88)

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.

(89)

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.

(90)

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?

(91)

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

Zacznijmy 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)

(92)

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 1

(93)

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

Jeżeli będziemy chcieli oddzielić klasy na pomocą prostej, to co najmniej połowa przypadków z którejś klasy będzie niepoprawnie zaklasyfikowana.

(94)

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 1

(95)

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 0 1 46 / 80

(96)

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 1

(97)

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 0 1 46 / 80

(98)

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

Jeżeli do wektora cech dodamy kolejny element – równy w tym

wypadku x2 – to nasz zbiór będzie wyglądał tak

(99)

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 / 80

(100)

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

(101)

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 50 / 80

(102)

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

Dodawanie 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!

(103)

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

Dodawanie 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!

(104)

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ład

Przykład z danymi moons . . . (svm-moons-ex.py)

(105)

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

Tym 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

(106)

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

Tym 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

(107)

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 danych

SVM operuje na odległościach i dlatego na jego działanie duży wpływa ma skalowanie danych!

(108)

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 = 5ms

(109)

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 −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 = 4ms

Działanie LinearSVC dla zbioru moons

(110)

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 = 4ms

(111)

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 −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 = 4ms

Działanie LinearSVC dla zbioru moons

(112)

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 = 5ms

(113)

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

Dla naszego zbioru danych wyższe potęgi nic poprawiają predykcji...

(114)

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 = 16ms

(115)

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 −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 = 58ms

Działanie LinearSVC dla zbioru moons

(116)

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 = 150ms

(117)

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 −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 = 244ms

Działanie LinearSVC dla zbioru moons

(118)

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 = 371ms

(119)

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

Stopień generowanych cech

Podobnie jak w przypadku regresji wielomianowej stopień generowanych cech jest hiperparametrem algorytmu.

(120)

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]

(121)

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ądrowe

Metodą 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.

(122)

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ądrowe

Metodą 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.

(123)

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ądrowe

Metodą 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.

(124)

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 dualny

Do 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

(125)

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

Rozwią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.

(126)

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

Po co nam iloczyn skalarny?

Żeby dokonać klasyfikacji wektora x?, liczymy iloczyn skalarny

(127)

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

Wektory 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

(128)

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

Najprostszym 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.

(129)

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

Najprostszym 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.

(130)

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

Wyliczenie iloczynu skalarnego hφ2(a)2(b)i daje

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

(131)

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

Wyliczenie iloczynu skalarnego hφ2(a)2(b)i daje

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.

(132)

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

Zastą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

(133)

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

Zastą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!

(134)

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

Zastą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ą

(135)

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

Najczęś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

(136)

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

Najczęś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

(137)

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

Najczęś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

(138)

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

Najczęś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

(139)

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

Przykład z danymi moons . . . (svm-moons-ex.py)

(140)

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.5

(141)

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 −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 wielomianowy (deg=2)

Działanie SVC dla zbioru moons

(142)

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.5

(143)

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 −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 wielomianowy (deg=4)

Działanie SVC dla zbioru moons

(144)

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.5

(145)

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 −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

(146)

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.5

(147)

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 −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

(148)

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.5

(149)

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 −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

(150)

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

Najczęś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.

(151)

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

Najczęś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.

Cytaty

Powiązane dokumenty

Wektorem zerowym nazywamy wektor, którego wszystkie współrzędne są równe zero... Algebra liniowa

Motywacją dla członu regularyzacyjnego jest zredukowanie zagrożenia przed- opasowania danych, okazuje się, że funkcje z H są bardziej dopasowane do danych gdy mają dużą normę.

• dla wygenerowanych danych dwuwymiarowych dwóch klas z rozkładów normalnych zaznacz na wykresie dane treningowe, klasyfikator svm, dla różnych wartości C oraz sigma, dla

Niestety nie zawsze klasyfikacja za pomoc ˛ a maszyn wektorów podpieraj ˛ acych SVMs (1) jest mo˙zliwa do przeprowadzenia.. Liniowo separowalne oraz

Based on the characteristics of the electronic system fault diagnosis, we design a multi-classification SVMs model to attain better fault diagnosis accuracy, which

Głównym celem artykułu jest porównanie skuteczności klasyfikacji cech dwóch algorytmów klasyfikujących wykorzystywanych w interfejsach mózg-komputer: SVM

 powtórz wiadomości dotyczące układu współrzędnych (str.218) i twierdzenie Pitagorasa (str.230);..  rozwiąż zadania utrwalające w

Opisać badanie jakości klasyfikacji (cross-validaDon) przy pomocy krzywych ROC i Precision-Recall, pól pod tymi wykresami (także F1).. Porównać