59
SVM – Support Vector Machines Metoda wektorów nośnych JERZY STEFANOWSKI Institute of Computing Sciences, Poznań University of Technology UM – slajdy dodatkowe do wykładu

SVM – Support Vector Machines Metoda wektorów nośnych

  • Upload
    vodang

  • View
    245

  • Download
    2

Embed Size (px)

Citation preview

Page 1: SVM – Support Vector Machines Metoda wektorów nośnych

SVM – Support Vector MachinesMetoda wektorów nośnych

JERZY STEFANOWSKIInstitute of Computing Sciences,

Poznań University of Technology

UM – slajdy dodatkowe do wykładu

Page 2: SVM – Support Vector Machines Metoda wektorów nośnych

Plan wykładu

1. Liniowa separowalność w statystycznej klasyfikacji

2. Podstawy metody SVM3. Uogólnienie SVM (nie w pełni separowalne

liniowo)4. Funkcje jądrowe (kernal functions)5. SVM dla danych separowalnych nieliniowo6. Podsumowanie7. Gdzie szukać więcej

Page 3: SVM – Support Vector Machines Metoda wektorów nośnych

Formalizacja problemu klasyfikacji• W przestrzeni danych (ang. measurement space) Ω znajdują

się wektory danych x stanowiące próbkę uczącą D, należące do dwóch klas

• Szukamy klasyfikatora pozwalającego na podział całej przestrzeni Ω na dwa rozłączne obszary odpowiadającej klasom 1,-1 oraz pozwalającego jak najlepiej klasyfikowaćnowe obiekty x do klas

• Podejście opiera się na znalezieniu tzw. granicy decyzyjnej między klasami → g(x)

( ) Niip

iii cRxcD 11,1,|, =−∈∈= x

Page 4: SVM – Support Vector Machines Metoda wektorów nośnych

Separowalność liniowa• Dwie klasy są liniowo separowalne, jeśli istnieje

hiperpłaszczyzna H postaci g(x)

• przyjmująca wartości

• Jak poszukiwać takiej hiperpłaszczyzny granicznej?

bg T += xwx)(

−∈<∈>

10)(10)(

ii

ii

gg

xxxx

Page 5: SVM – Support Vector Machines Metoda wektorów nośnych

Liniowa funkcja separująca

• Funkcja liniowa separująca

• Wyznacza podział przestrzeni na obszary odpowiadające dwóm klasom decyzyjnym.

• Oryginalna propozycja Fisher, ale także inne metody (perceptron, itp..)

• Uogólnienia dla wielu klas.

x

y

Page 6: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Znajdź liniową hiperpłaszczyznę (decision boundary) oddzielające obszary przykładów z dwóch różnych klas

Page 7: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Jedno z możliwych rozwiązań

Page 8: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Inne możliwe rozwiązanie

Page 9: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Zbiór wielu możliwych rozwiązań

Page 10: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Którą z hiperpłaszczyzn należy wybrać? B1 or B2?• Czy można to formalnie zdefiniować?

Page 11: SVM – Support Vector Machines Metoda wektorów nośnych

Uwagi o marginesie• Hiperpłaszczyzny bi1 i bi2

są otrzymane przez równoległe przesuwanie hiperpłaszczyznygranicznej aż do pierwszych punktów z obu klas.

• Odległość między nimi –margines klasyfikatora liniowego

• Jaki margines wybierać?

Page 12: SVM – Support Vector Machines Metoda wektorów nośnych

Węższe czy szersze marginesy?

Support Vectors

Small Margin Large Margin

• Szerszy margines → lepsze własności generalizacji, mniejsza podatność na ew. przeuczenie (overfitting)

• Wąski margines – mała zmiana granicy, radykalne zmiany klasyfikacji

Page 13: SVM – Support Vector Machines Metoda wektorów nośnych

Teoria „Structural risk minimization”• Oszacowanie górnej granicy błędu ze względu na błąd uczący

Re, liczbę przykładów N i tzw. model complexity h z prawdopodobieństwem 1-η „generalization error” nie przekroczy:

• Prace teoretyczne – h complexity dla modelu liniowego:• „Models with small margins have higher capacity -complexity

because they are more flexivle and can fit many training sets”• Także „The hypothesis space with minimal VC-dimension

according to SRM”• Reasumując modele o wiekszej complexity mają gorsze

oszacowanie błędu• Dlatego wybieraj większy margines!

))log(,(NN

hRR eηϕ+≤

Page 14: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines

• Znajdź hiperpłaszycznę, która maksymalizuje tzw. margines => B1 jest lepsze niż B2

Page 15: SVM – Support Vector Machines Metoda wektorów nośnych

Liniowe SVM hiperpłaszczyzna graniczna• Vapnik – poszukuj „maximal margin classifier”

gdzie w i b są parametrami modelu

• Parametry granicy wyznaczaj tak, aby maksymalne marginesy bi1 i bi2 były miejscem geometrycznym punktów x spełniających warunki

• Margines – odległość między płaszczyznami bi1 i bi2

0=+⋅ bxw

11

2

1

−=+⋅=+⋅

bxwbxw

i

i

bb

<+⋅−>+⋅

=0101

bxwbxw

y

Page 16: SVM – Support Vector Machines Metoda wektorów nośnych

Poszukiwanie parametrów hiperpłaszczyzny

0=+• bxw rr

1−=+• bxw rr 1+=+• bxw rr

−≤+•−≥+•

=1bxw if1

1bxw if1)( rr

rrrxf

Page 17: SVM – Support Vector Machines Metoda wektorów nośnych

Ilustracje i sposób przekształceń

||||2w

margin =

||||2w

margin =

pww ++≡ ...|||| 212w

Cel: Maksymalizujmargines!

w2

maximize

2w

minimize

→ 2

2w

minimize

Page 18: SVM – Support Vector Machines Metoda wektorów nośnych

Linear Support Vector Machines• Sformułowanie mat. problemu:

• Przy warunkach ograniczających

• Jest to problem optymalizacji kwadratowej z liniowymi ogr. → uogólnione zadanie optymalizacji rozwiązywany metodą mnożników Lagrange’a (tak aby np. nie dojść do w → 0)

2|||| 2

minw

w=

Nibxwy ii ,,2,11)( K=≥+⋅

Page 19: SVM – Support Vector Machines Metoda wektorów nośnych

LSVM• Minimalizuj funkcję Lagrange’a

• parametry α ≥0 mnożniki Lagrange’a

• Powinno się różniczkować L po w i b – nadal trudności w rozwiązaniu

• Przy przekształceniach wykorzystuje się ograniczenia Karush-Kuhn-Tucker na mnożniki:

• W konsekwencji αi są niezerowe wyłącznie dla wektorów nośnych x, pozostałe są zerowe

• Rozwiązanie parametrów w i b zależy wyłącznie od wektorów nośnych.

∑ = −+−= Ni iii bybwL 1

2 )1)((21),,( wxw αα

0]1)([0

=−+⋅≥bxwy iii

i

αα

Page 20: SVM – Support Vector Machines Metoda wektorów nośnych

LSVM – sformułowanie dualne• Nadal zbyt wiele parametrów w,b,α do oszacowania• Przechodzi się na postać dualną zadania optymalizacji

• Maksymalizuj L(α)

• Przy ograniczeniach

• Rozwiązanie (α>0 dla i∈SV) ; b – odpowiednio uśredniane

• Hiperpłaszczyzna decyzyjna

( )jijiN

i

N

jji

N

ii yy xx ⋅∑ ∑∑

= ==−

1 1121 ααα

ii ∀≥ ,0α 01 =∑ =Ni ii yα

∑=

=N

iiii y

1xw α

∑=

=+⋅N

iiii by

10xxα

Page 21: SVM – Support Vector Machines Metoda wektorów nośnych

Rozwiązanie LSVM• Klasyfikacja – funkcja decyzyjna

• O ostatecznej postaci hiperpłaszczyzny decydują wyłącznie wektory nośne (αi >0)

• Im większa wartość αi tym większy wpływ wektora na granicędecyzyjną

• Klasyfikacja zależy od iloczynu skalarnego nowego x z wektorami nośnymi xi ze zbioru uczącego

• Pewne założenie metody – starać się zbudować klasyfikator liniowy używając możliwie minimalną liczbę wektorów z danych treningowych (wektory nośne)

• Funkcjonalnie klasyfikator podobny do niektórych siecineuronowej, metod jądrowych Parzena

∑=

+⋅=N

iiii bysignxf

1)()( xxα

Page 22: SVM – Support Vector Machines Metoda wektorów nośnych

Przykład

Obliczmy wagi∑ −=⋅−⋅+⋅⋅== i iii xyw 64.64871.0)1(5621.653858.015621.6511 α

∑ −=⋅−⋅+⋅⋅== i iii xyw 32.9611.0)1(5621.654687.015621.6522 α

930.7)4687.0)(32.9(3858.0)64.6(1' =−−⋅−−=b

928.7)611.0)(32.9(4871.0)64.6(1'' =−−⋅−−−=b

93.7)(5.0 ''' =+⋅= bbb

Page 23: SVM – Support Vector Machines Metoda wektorów nośnych

Support Vector Machines• Co robić z LSVM gdy dane nie są w pełni liniowo

separowalne?

Page 24: SVM – Support Vector Machines Metoda wektorów nośnych

Jak użyć SVM dla dane liniowo nieseparowalnych

Page 25: SVM – Support Vector Machines Metoda wektorów nośnych

Zmienne dopełniające

Page 26: SVM – Support Vector Machines Metoda wektorów nośnych

Zmienne osłabiające - interpretacja

• Zmienne ξi≥0 dobiera się dla każdego przykładu uczącego. Jej wartość zmniejsza margines separacji. (rodzaj „zwisu” punktu poza hiperpłaszczyzną nośną)

• Jeżeli 0≤ ξi ≤1, to punkt danych (xi,di) leży wewnątrz strefy separacji, ale po właściwej stronie

• Jeżeli ξi>1, punkt po niewłaściwej stronie hiperpłaszczyzny i wystąpi błąd klasyfikacji

• Modyfikacja wymagań dla wektorów nośnych

ςξ

+−=+⋅−=+⋅

11

2

1

bxwbxw

i

i

bb

Page 27: SVM – Support Vector Machines Metoda wektorów nośnych

Linear SVM – niepełna separowalność

wFor all

For

...for some positive ξ

12211 +≥+ ∗∗ bxwxw

ξ−+≥+ ∗∗ 12211 bxwxw

Task: Maximize the margin and minimise training errors

minimize

∑+ →i

iC )(22

22

ξww SEMOCEB

minimize

x2

x1

Page 28: SVM – Support Vector Machines Metoda wektorów nośnych

SVM z dodatkowymi zmiennymi• Jak przedefiniować sformułowanie? Z dodatkowymi

zmiennymi dopełniającym oraz kosztem błędu na danych uczących

• Mimimalizuj wyrażenie:

• z ograniczeniami:

• Drugi czynnik odpowiada za ew. błędy testowania (górne oszacowanie tych błędów

• Parametr C ocena straty związanej z każdym błędnie klasyfikowanym punktem dla które ξ>0

• Przetarg „szeroki margines” to dużo błędów i odwrotnie

+−≤+•−≥+•

=ii

ii

1bxw if1-1bxw if1

)(ξ

ξrr

rrrixf

+= ∑

=

N

i

kiCwwL

1

2

2||||)( ξ

r

Page 29: SVM – Support Vector Machines Metoda wektorów nośnych
Page 30: SVM – Support Vector Machines Metoda wektorów nośnych

Rozwiązanie problemu

Ponownie dojdziemy do dualnego problemu:

Max: W(α) =

ogranicz:

(1)

(2)

= ==

− •∑∑∑ jiji

m

i

m

jji

m

ii yy xx

1 1121 ααα

iCi ∀≤≤ ,0 α

∑=

=m

iii y

10α

w

Programowanie kwadratowe (QP) : trudności rozwiazania →przeformułuj problem

Globalne max αi może być odnalezione

x2

x1

Page 31: SVM – Support Vector Machines Metoda wektorów nośnych
Page 32: SVM – Support Vector Machines Metoda wektorów nośnych

Nonlinear Support Vector Machines• Co zrobić gdy próby uczące powinny być

nieliniowo separowalne?

Page 33: SVM – Support Vector Machines Metoda wektorów nośnych

Nonlinear Support Vector Machines• Transformacja do wysoce wielowymiarowej przestrzeni

Page 34: SVM – Support Vector Machines Metoda wektorów nośnych

SVM – Transformacje• Przykład transformacji 1D→ 2D

• Projekcja danych oryginalnych x∈Rp w nową m>p wielowymiarową przestrzeń, w której z dużym prawdopodobieństwem będą separowalneliniowo (Twierdzenia matem. np. Covera)

• Przykład przekształcenia wielomianowe wyższego stopnia gdzie do zmiennych x dołącza się ich p-te potęgi oraz iloczyny mieszane.

-1 0 +1

+ +-

(1,0)(0,0)

(0,1) +

+-

Page 35: SVM – Support Vector Machines Metoda wektorów nośnych

Przykład transformacji wielomianowej

Page 36: SVM – Support Vector Machines Metoda wektorów nośnych

Przykład transformacji wielomianowej

• Oryginalna funkcja celu

• Transformacja

• Poszukujemy parametrów

• Rozwiązanie

−>−+−=

otherwisexxxxy

12.0)5.0()5.0(1),(

22

21

21

)1,2,2,,(),(: 2122

2121 xxxxxx →Φ

022 02112223

214 =++++ wxwxwxwxw

46.02221

21 −=−+− xxxx

Page 37: SVM – Support Vector Machines Metoda wektorów nośnych
Page 38: SVM – Support Vector Machines Metoda wektorów nośnych

Kilka definicji

• Przykłady danych do klasyfikacji

Page 39: SVM – Support Vector Machines Metoda wektorów nośnych

Model nieliniowy SVM• Funkcja decyzyjna po przekształceniu

• Zasady klasyfikacji

• Sformułowanie problemu nieliniowego SVM

• Podobnie jak poprzednio optymalizujemy funkcje z mnożnikami Lagrange’a

• Funkcja klasyfikująca

bg += )()( xwx ϕ

0)(10)(1

<−>+

xx

gg

2|||| 2

minw

w= Nibxwy ii ,,2,11))(( K=≥+Φ⋅

( ))()1 11

21 xx( jijiN

i

N

jji

N

ii yy ΦΦ∑ ∑∑

= ==− ααα

∑=

+Φ⋅Φ=N

iiii bysignxf

1))()(()( xxα

Page 40: SVM – Support Vector Machines Metoda wektorów nośnych

Curse of dimensionality and …• Oblicz Φ(xi)⋅Φ(xj)• Problem: Trudne obliczeniowo do wykonania! • Wiele parametrów do oszacowania - wielomian stopnia

p dla N atrybutów w oryginalnej przestrzeni prowadzi do atrybutów w nowej rozszerzonej F feature space

• Skorzystaj z dot product (iloczynu skalarnego) na wektorach wejściowych jako miary podobieństwa wektorów

• Iloczyn może być odniesiony do podobieństwa wektorów w transformowanej rozszerzonej przestrzeni

• Idea kerneli (funkcji jądrowych)• Proste funkcje K dwóch argumentów wektorowych

pozwalają obliczyć wartość iloczynu skalarnego w rozszerzonej przestrzeni

)( PNO

)()( ji xx Φ⋅Φji xx ⋅

Page 41: SVM – Support Vector Machines Metoda wektorów nośnych

Co to są funkcje jądrowe (Kernel function)• Wywodzą się z badań liniowych przestrzeni

wektorowych, przestrzeni Hilberta, Banacha

• Intuicyjnie są to stosunkowo proste symetryczne K(xi,xj) zależne od odległości między xi i xj które spełniają pewne wymagania matem.

∫ ∫ >==≥ 0)(,1)(,0)( 2 duuuKduuKuK Kσ

Page 42: SVM – Support Vector Machines Metoda wektorów nośnych

Wniosek z twierdzenia Mercera

• Własność podstawą tzw. triku kernelowego (kernel trick ) :• „... map the data into some other scalar product space (feature space)

F by means of a nonlinear mapping like the above, and perform thelinear algorithm (like decision boundary for 2 classes) in the featurespace F. In many cases the mapping Φ cannot be explicitly computed, due to the high-dimensionality of F. But this is not an obstacle, whenthe decision function requires the evaluation of scalar products Φ(x)⋅Φ(y), and not the pattern Φ(x) in explicit form.”[Camastra]

• „every dot product is replaced by a non-linear kernel function. „

Page 43: SVM – Support Vector Machines Metoda wektorów nośnych

Typowo stosowane jądraDopuszczalne typy jąder związane z SVM

sigmoidalne

Wielomianowe

Normalne (Gaussowskie)

2)(

exp),( 2σji

jiKxx

xx−

−=

pjiji dK )(),( +⋅= xxxx

)(),( δκ −⋅= jiji tghK xxxx

Page 44: SVM – Support Vector Machines Metoda wektorów nośnych

Przykład prostego przekształcenia wielomianowego

SVM: the kernel trick

The kernel trick:

( ) ( ))()(

,2,,2,)(),( 2221

21

2221

21

2

ji

jjjjiiiijiji xxxxxxxxK

xxxxxx

Φ⋅Φ=

== ••

( )jijiN

i

N

jji

N

ii Kyy xx ⋅

= ==− ∑ ∑∑

1 1121 αααOriginal optimization

function:

Nie musimy znać funkcji Ф, wystarczy znać jądro (kernel)i można pracować w nowej przestrzeni.

Page 45: SVM – Support Vector Machines Metoda wektorów nośnych

Funkcja decyzyjna• Wykorzystanie funkcji jądrowych

• Model klasyfikacji binarnej rozszerza się na zagadnienie wieloklasowe K > 2

• Specyficzne konstrukcje złożone:• one-versus-all• Pairwise classification (Hastie,…)

( )( )bKysign

bysignfNi iii

Ni iii

+

+ΦΦ=

∑∑

=

=

1

1

),()()()(

xxxxx

αα

Page 46: SVM – Support Vector Machines Metoda wektorów nośnych
Page 47: SVM – Support Vector Machines Metoda wektorów nośnych
Page 48: SVM – Support Vector Machines Metoda wektorów nośnych

Example 2: Cleveland heart dataLeft: 2D MDS features, linear SVM, C=1, acc. 81.9%

Right: support vectors removed, margin is clear.

Gaussian kernel, C=10000, 10xCV, 100% train, 79.3 ± 7.8 testGaussian kernel, C=1, 10xCV, 93.8% train, 82.6 ± 8.0 testAuto C=32 and Gaussian dispersion 0.004: about 84.4 ± 5.1 on test

Page 49: SVM – Support Vector Machines Metoda wektorów nośnych

Przykładowe zastosowaniaMożna się zapoznać z listą:

http://www.clopinet.com/isabelle/Projects/SVM/applist.htmlA few interesting applications, with highly competitive results:

• On-line Handwriting Recognition, zip codes• 3D object recognition• Stock forecasting• Intrusion Detection Systems (IDSs)• Image classification• Detecting Steganography in digital images• Medical applications: diagnostics, survival rates ...• Technical: Combustion Engine Knock Detection• Elementary Particle Identification in High Energy Physics• Bioinformatics: protein properties, genomics, microarrays• Information retrieval, text categorization

Page 50: SVM – Support Vector Machines Metoda wektorów nośnych

Trochę historii• Wczesne lata sześćdziesiąte – została

opracowana metoda “support vectors” w celu konstruowania hiperpłaszczyzn do rozpoznawania obrazu ( Vapnik i Lerner 1963, Vapnik i Czervonenkis 1964) – liniowa SVM.

• Początek lat 1990-siątych: uogólnienie metody pozwalające na konstruowanie nieliniowych funkcji separujących (Boser 1992, Cortes i Vapnik 1995).

• 1995: dalsze rozszerzenie pozwalające otrzymać estymację funkcji ciągłej na wyjściu – regresja (Vapnik 1995).

Page 51: SVM – Support Vector Machines Metoda wektorów nośnych

Kilka zagadn. efektywnego stosowania SVM

• Normalizuj sygnały wejściowe

• Dobrze wybierz wartość C

• Wybór funkcji jądrowej

• Uogólnienia dla problemów wieloklasowych

• … co jeszcze?

• Na ile są skuteczne SVM w analizie danych niezrównoważonych

Page 52: SVM – Support Vector Machines Metoda wektorów nośnych

Parę uwag podsumowujących• Dane odwzorowane (przy pomocy funkcji jądrowych) w

nową przestrzeń cech – silna przewaga nad innymi metodami

• W nowej przestrzeni dane powinny być liniowo separowalne

• W porównaniu do innych podejść wielowymiarowość przekształcenia jest „rozwiązana” przez trick kernelowy

• Pośrednio ogranicza się niebezpieczeństwo przeuczenia• Teoretycznie poszukują minimum globalnego a nie

lokalnego (jak podejścia heurystyczne – MLP)• Ograniczenia

• Dobór parametrów

• Skrajne podejście „black box”

Page 53: SVM – Support Vector Machines Metoda wektorów nośnych

Jianfeng Feng, Sussex University

Mocne strony SVM

Stopień skomplikowania/pojemność jest niezależna od liczby wymiarów.Bardzo dobra podbudowa statystyczno-teoretyczna

Znajdowanie minimum glonalnego. Minimalizujemy funkcję kwadratową co gwarantuje zawsze znalezienie minimum. Algorytm jest wydajny i SVM generuje prawie optymalny klasyfikator. Nie jest tez czuły na przetrenowanie.

Dobre uogólnianie dzięki wielowymiarowej “feature space”.

Najważniejsze: poprzez użycie odpowiedniej funkcji jądra SVM bardzo duża skuteczność w praktyce

Page 54: SVM – Support Vector Machines Metoda wektorów nośnych

Słabe strony SVMPowolny trening – minimalizacja funkcji, szczególnie dokuczliwy przy dużej ilości danych użytych do treningu.

Rozwiązania też są skomplikowane (normalnie >60% wektorów użytych do nauki staje się wektorami wspierającymi), szczególnie dla dużych ilości danych.

Przykład (Haykin): poprawa o 1.5% ponad wynik osiągnięty przez MLP. Ale MLP używał 2 ukrytych węzłów, a SVM 285 wektorów.

Trudno dodać własną wiedzę (prior knowledge)

Jianfeng Feng, Sussex University

Page 55: SVM – Support Vector Machines Metoda wektorów nośnych

Przetarg między złożonością modelu a minimalizacją błędów

Model complexity

Min. number of

training errors,

Functions ordered in

increasing complexity

complexity +min. training errors

Best trade-off

complexitymin. training errors

Page 56: SVM – Support Vector Machines Metoda wektorów nośnych

Odnośniki literaturowe• T.Hastie, R.Tibshirani, J.Friedman: The Elements

of Statistical Learning. Springer → poszukaj wersji elektronicznej pdf

• J.Koronacki, J.Ćwik: Statystyczne systemy uczące się (rozdz. 6)

• M.Krzyśko, W.Wołyński, T.Górecki,M.Skorzybut: Systemy uczące się.

• S.Osowski: Sieci neuronowe w przetwarzaniu informacji.

Page 57: SVM – Support Vector Machines Metoda wektorów nośnych

Inne materiały - internet• A.Bartkowiak: Wykłady nt. Sieci Neuronowych:

w11 Kernele, siecie SVM i sieci GDA.

• http://www.ii.uni.wroc.pl/~aba/

• W.Duch: wyklady nt. Computational Intelligence

• http://www.fizyka.umk.pl/~duch/Wyklady/NN_plan.html

• Angielska wersja Wikipedii

• Thorsten Joachims: Support Vector and KernelMethods - SIGIR 2003 Tutorial

Page 58: SVM – Support Vector Machines Metoda wektorów nośnych

SVM Related Links

• SVM Website

• http://www.kernel-machines.org/

• Representative implementations

• LIBSVM: an efficient implementation of SVM, multi-class

classifications, nu-SVM, one-class SVM, including also various

interfaces with java, python, etc.

• SVM-light: simpler but performance is not better than LIBSVM,

support only binary classification and only C language

• SVM-torch: another recent implementation also written in C.

Page 59: SVM – Support Vector Machines Metoda wektorów nośnych

Inne odnośniki do literatury anglojęzycznej

• “Statistical Learning Theory” by Vapnik: extremely hard to understand, containing many errors too.

• C. J. C. Burges. A Tutorial on Support Vector Machines for Pattern Recognition. Knowledge Discovery and Data Mining, 2(2), 1998.

• Better than the Vapnik’s book, but still written too hard for introduction, and the examples are so not-intuitive

• The book “An Introduction to Support Vector Machines” by N. Cristianini and J. Shawe-Taylor

• Also written hard for introduction, but the explanation about the mercer’s theorem is better than above literatures

• The neural network book by Haykins

• Contains one nice chapter of SVM introduction