Podręcznik
2. Sieci wektorów nośnych SVM
2.3. Sieć nieliniowa SVM w zadaniu klasyfikacji
Nieseparowalność liniowa wzorców nie oznacza braku ich separowalności w ogóle. Powszechnym rozwiązaniem, zastosowanym między innymi w poznanych już sieciach RBF jest nieliniowe zrzutowanie danych oryginalnych w inną przestrzeń funkcyjną, w której wzorce te są liniowo separowalne, bądź prawdopodobieństwo ich separowalności jest bliskie jedności. Podstawę matematyczną stanowi tu twierdzenia Covera [59,68], zgodnie z którym wzorce nieseparowalne liniowo w przestrzeni oryginalnej mogą być przetransformowane w inną przestrzeń parametrów, tak zwaną przestrzeń cech, zwykle o wymiarze , w której z dużym prawdopodobieństwem stają się separowalne liniowo. Warunkiem jest zastosowanie transformacji nieliniowej o odpowiednio wysokim wymiarze
przestrzeni cech.


Rys. 5.3 przedstawia szczególny przykład nieliniowej transformacji wzorców należących do dwu klas nieseparowalnych liniowo (klasa oznaczona gwiazdką i klasa
oznaczona symbolem o, obie określone w przestrzeni dwuwymiarowej,
), w przestrzeń funkcyjną zdefiniowaną za pośrednictwem 2 funkcji gaussowskich przy równej dla obu funkcji wartości
oraz wartościach centrów
,
. Wzorce oryginalne nieseparowalne w przestrzeni dwuwymiarowej (rys. 5.3a) po transformacji nieliniowej stają się separowalne (rys. 5.3b) i mogą być rozdzielone jedną hiperpłaszczyzną separującą. Zauważmy, że w tym szczególnym przykładzie wystarczyło użycie tylko dwu funkcji nieliniowych, aby przekształcić problem nieseparowalny liniowo w problem całkowicie separowalny.
W ogólności, jeśli oznacza wektor wejściowy opisujący wzorzec, to po zrzutowaniu go w przestrzeń
-wymiarową jest on reprezentowany przez zbiór
cech
dla
tworzący wektor
. W efekcie takiej transformacji równanie hiperpłaszczyzny w przestrzeni liniowej określone wzorem
może być zastąpione przez równanie hiperpłaszczyzny w przestrzeni cech, które można zapisać w postaci
![]() |
(5.21) |
w której oznaczają wagi prowadzące od
do neuronu wyjściowego,
. Wektor wag
jest
-wymiarowy a
oznacza wagę polaryzacji. Cechy procesu opisane funkcjami
przejęły rolę poszczególnych zmiennych
. Wartość sygnału wyjściowego sieci opisuje teraz równanie
![]() |
(5.22) |
Równaniu (5.22) można przyporządkować strukturę sieci neuronowej analogiczną do sieci RBF, omówioną w rozdziale poprzednim jak to przedstawiono na rys. 5.4.

Zasadniczą różnicę w stosunku do sieci RBF stanowi fakt, że funkcje mogą przyjmować dowolną postać, w szczególności radialną, sigmoidalną czy wielomianową. Traktując warstwę ukrytą sieci jedynie jako układ rzutujący dane oryginalne w przestrzeń cech, w której są one liniowo separowalne, można traktować sygnały
jako wymuszenia dla sieci liniowej SVM. Wszystkie zależności wyprowadzone dla sieci liniowej obowiązują zatem również tutaj, przy formalnym zastąpieniu wektora
przez wektor
. W szczególności problem pierwotny uczenia można przepisać w postaci
![]() |
(5.23) |
przy ograniczeniach liniowych (
![]() |
(5.24) |
Rozwiązanie problemu pierwotnego odbywa się poprzez jego transformację do problemu dualnego, identycznie jak dla sieci o liniowej separowalności wzorców poprzez minimalizację funkcji Lagrange'a [59,68]
![]() |
(5.25) |
w której mnożniki odpowiadają ograniczeniom funkcyjnym a
ograniczeniom nierównościowym nakładanym na zmienne
(wzór 5.24).
Rozwiązanie powyższego problemu optymalizacyjnego zakłada w pierwszym etapie przyrównanie do zera pochodnych funkcji Lagrange'a względem ,
oraz
. Z zależności tych otrzymuje się wyrażenie wektora
poprzez mnożniki Lagrange'a oraz dodatkowe zależności funkcyjne, które muszą być spełnione. Po uwzględnieniu tych zależności problem pierwotny przekształca się w problem dualny zdefiniowany wyłącznie względem mnożników Lagrange'a
o następującej postaci (mnożniki
zostają wyeliminowane)
![]() |
(5.26) |
![]() |
(5.27) |
przy wartości stałej przyjętej z góry przez użytkownika. Funkcja
występująca w sformułowaniu zadania dualnego jest iloczynem skalarnym funkcji wektorowej
określonym dla wektorów
oraz
![]() |
(5.28) |
Iloczyn ten nazywany jest funkcją jądra (ang. kernel function). Z definicji jest to skalarna funkcja symetryczna, to znaczy . Zauważmy, że sformułowanie problemu dualnego nie zawiera ani zmiennych dopełniających ani odpowiadających im mnożników Lagrange'a. Mnożniki
muszą spełniać równość
, ich iloczyn ze zmienną dopełniającą
musi być równy zeru,
.
Rozwiązanie problemu dualnego pozwala wyznaczyć optymalne wartości mnożników Lagrange'a, na podstawie których określa się wartości optymalne wag sieci w postaci
![]() |
(5.29) |
Wartość wagi polaryzacyjnej wyznacza się podobnie jak w przypadku liniowym wybierając dowolny wektor podtrzymujący
dla którego
i stosując wzór
. Po podstawieniu zależności (5.29) do wzoru (5.22) otrzymuje się ostateczne wyrażenie określające sygnał wyjściowy sieci nieliniowej SVM w postaci
![]() |
(5.30) |
Sygnał wyjściowy sieci zależy od funkcji jądra a nie od funkcji aktywacji
. W związku z tym wynikową strukturę sieci nieliniowej SVM można przedstawić jak na rys. 5.5.

O tym czy funkcja jest kandydatem na jądro spełniającym warunek iloczynu skalarnego dwu bliżej nieokreślonych funkcji wektorowych
i
decyduje spełnienie warunków twierdzenia Mercera [68]. Istnieje wiele funkcji spełniających warunek Mercera, które mogą być użyte do budowy sieci SVM. Do takich funkcji należy między jądro typu gaussowskiego, wielomianowego, funkcje sklejane oraz (przy pewnych ograniczeniach) również jądro sigmoidalne [46,59].
W tabeli 5.1 zestawiono zależności odnoszące się do najczęściej używanych jąder: liniowego, wielomianowego, radialnego oraz sigmoidalnego. Zastosowanie jądra sigmoidalnego prowadzi do powstania sieci perceptronowej o jednej warstwie ukrytej, jądra radialnego - do sieci RBF, natomiast jądra wielomianowego do sieci wielomianowej. Wszystkie te sieci zawierają jedną warstwę ukrytą. W przypadku jądra liniowego sieć jest w pełni liniowa bez warstwy ukrytej.
Tabela 5.1. Przykłady funkcji jąder
Funkcja jądra |
Równanie |
Uwagi |
Liniowe |
||
Wielomianowe |
||
Gaussowskie |
||
Sigmoidalne |
liczbowe |
Funkcje jądra dają swój wkład w definicję funkcji celu w zadaniu dualnym dla konkretnych wartości wektorów wejściowych . Przy ustalonych przez użytkownika wartościach współczynników tych funkcji składniki związane z jądrem mają charakter liczbowy i rodzaj zastosowanego jądra nie ma żadnego związku z nieliniowością problemu optymalizacyjnego (problem dualny jest zawsze o postaci kwadratowej). Zauważmy, że funkcje jądra
są wielkościami skalarnymi i dla wszystkich możliwych kombinacji indeksów
tworząc macierz kwadratową.
Należy podkreślić, że w sieci radialnej liczba funkcji bazowych i ich centra są automatycznie utożsamione z wektorami podtrzymującymi. Sieć SVM o radialnej funkcji jądra może więc być utożsamiona z siecią radialną RBF, choć jej ostateczna struktura jak również sposób uczenia są różne. W sieci sigmoidalnej liczba neuronów ukrytych jest określona również automatycznie przez liczbę wektorów podtrzymujących i położenia tych wektorów.
Istotnym elementem teorii sieci nieliniowej SVM jest fakt, że po zastąpieniu wektora poprzez wektor
a iloczynu skalarnego
przez
problem uczenia można sformułować w identyczny sposób jak dla sieci liniowej, jako problem pierwotny i dualny. Rozwiązaniu podlega praktycznie problem dualny, który niezależnie od rodzaju zastosowanej sieci jest sformułowany jako zadanie programowania kwadratowego. W procesie uczenia sieci SVM początkowa liczba wektorów podtrzymujących jest zwykle równa liczbie danych uczących. W zależności od przyjętych wartości ograniczeń (wartość parametru
) złożoność sieci jest redukowana i tylko część wektorów uczących pozostaje nadal wektorami podtrzymującymi.
Na rys. 5.6 przedstawiono przykład działania klasyfikacyjnego sieci SVM o jądrze radialnym dla rozkładu danych dwuwymiarowych rozmieszczonych jak na rysunku, należących do dwu klas. Jak widać przy odpowiedniej wartości współczynnika hiperpłaszczyzna w przestrzeni cech transformuje się w nieliniową krzywą w przestrzeni oryginalnej
, separującą bezbłędnie obie klasy. Liczba wektorów podtrzymujących zależy od wartości
. Im wyższa jego wartość tym większa kara za przekroczenie ograniczeń i w efekcie węższy margines separacji, a co za tym idzie również mniejsza liczba wektorów podtrzymujących.

Przy małej wartości kara za przekroczenie ograniczeń jest niewielka i optymalne wartości wag umożliwiają klasyfikację z wieloma błędami na danych uczących.
5.3.1 Interpretacja mnożników Lagrange'a w rozwiązaniu sieci
Mnożniki Lagrange'a spełniają bardzo ważną rolę w rozwiązaniu problemu uczenia sieci SVM. Każdy mnożnik jest stowarzyszony z odpowiadającą mu parą uczącą
stanowiąc współczynnik kary za niespełnienie ograniczenia (w przypadku spełnienia tego ograniczenia wartość mnożnika powinna być zerowa). Z warunków optymalności Kuhna-Tuckera problemu optymalizacyjnego sformułowanego dla sieci SVM wynikają następujące zależności [32,59]
![]() |
(5.31) |
W przypadku spełnienia ograniczenia mnożnik Lagrange'a z definicji powinien przyjąć wartość zerową eliminując wpływ danego ograniczenia na wartość minimalizowanej funkcji celu. W zależności od obliczonych wartości mnożników możemy mieć do czynienia z 3 przypadkami.
Biorąc pod uwagę warunek Kuhna-Tuckera wartość zmiennej dopełniającej
. Uwzględniając zależność
jest oczywiste, że
, co oznacza, że para ucząca
spełnia ograniczenie bez zmniejszania szerokości marginesu separacji (klasyfikacja całkowicie poprawna). Co więcej, wobec zerowej wartości
para ta nie wnosi żadnego wkładu do ukształtowanej hiperpłaszczyzny separującej.
Wartość mnożnika jest równa
co oznacza, że dla spełnienia warunki
wartość
podobnie jak w przypadku poprzednim. Jednakże tym razem wobec niezerowej wartości
zerować się musi czynnik
. Przy zerowej wartości
i binarnych wartościach zadanych
otrzymuje się warunek
oznaczający, że wektor
jest wektorem podtrzymującym. Stąd wartość mnożnika z przedziału
oznacza, że para danych uczących położona jest dokładnie na marginesie separacji (klasyfikacja poprawna).
W tym przypadku wobec mamy
. Oznacza to, że dana ucząca znalazła się wewnątrz marginesu separacji lub poza tym marginesem (po niewłaściwej stronie), prowadząc bądź do błędu klasyfikacji bądź jedynie do realnego zmniejszenia szerokości marginesu. Wobec
spełniony musi być warunek
, z którego wynika, że
. Wartość niezerowa
oznacza więc wejście w margines separacji o wartość
. Jeśli ta wartość jest mniejsza od 1 mamy do czynienia jedynie ze zmniejszeniem marginesu przy poprawnej klasyfikacji. W przeciwnym przypadku, gdy
popełniony zostaje błąd (punkt danych po niewłaściwej stronie marginesu separacji).
7.3.2 Problem klasyfikacji przy wielu klasach
Sieci SVM z istoty swego działania dokonują rozdziału danych na dwie klasy. W odróżnieniu od sieci klasycznych, gdzie liczba klas poddanych klasyfikacji może być dowolna, rozpoznanie wielu klas przy pomocy tej techniki wymaga przeprowadzenia wielokrotnej klasyfikacji. Do najbardziej znanych podejść należą tu metody "jeden przeciw pozostałym" i "jeden przeciw jednemu". W metodzie "jeden przeciw pozostałym" przy klasach należy skonstruować
sieci, każda odpowiedzialna za rozpoznanie jednej klasy. Sieć
-ta jest trenowana na danych uczących, w których przykłady
-tej klasy są skojarzone z
a pozostałe z
.
Przykładowo przy istnieniu 4 klas problem sprowadza się wytrenowania 4 sieci SVM, każda trenowana na innym zbiorze danych:
-
Sieć 1: (klasa 1: dane klasy 1), (klasa przeciwna: dane klasy 2+3+4)
-
Sieć 2: (klasa 1: dane klasy 2), (klasa przeciwna: dane klasy 1+3+4)
-
Sieć 3: (klasa 1: dane klasy 3), (klasa przeciwna: dane klasy 1+2+4)
-
Sieć 4: (klasa 1: dane klasy 4), (klasa przeciwna: dane klasy 1+2+3)
Po wytrenowaniu wszystkich sieci następuje etap odtwarzania, w którym ten sam wektor jest podawany na każdą sieć SVM. Określane są sygnały wyjściowe
funkcji decyzyjnych) wszystkich wytrenowanych sieci SVM (w przypadku klasy złożonej zwycięstwa przypisuje się do każdej klasy składowej)
![]() |
(5.32) |
Wektor jest następnie zaliczany do klasy o największej wartości funkcji decyzyjnej
, poprzez głosowanie większościowe.
Innym równie często stosowanym rozwiązaniem jest metoda "jeden przeciw jednemu" [46]. W metodzie tej konstruuje się klasyfikatorów typu SVM, rozróżniających za każdym razem 2 klasy danych ze zbioru uczącego, kolejno parowanych ze sobą. Przykładowo przy 4 klasach poszczególne sieci będą trenowane na następujących zbiorach danych (6 sieci SVM)
-
Sieć 1: klasa 1 (dane klasy 1), klasa 2 (dane klasy 2)
-
Sieć 2: klasa 1 (dane klasy 2), klasa 2 (dane klasy 3)
-
Sieć 3: klasa 1 (dane klasy 3), klasa 2 (dane klasy 4)
-
Sieć 4: klasa 1 (dane klasy 2), klasa 2 (dane klasy 3)
-
Sieć 5: klasa 1 (dane klasy 2), klasa 2 (dane klasy 4)
-
Sieć 6: klasa 1 (dane klasy 3), klasa 2 (dane klasy 4)
Po wytrenowaniu wszystkich sieci można przystąpić do właściwej klasyfikacji przy założeniu konkretnej wartości wektora
. Oznaczmy równanie decyzyjne sieci SVM rozróżniającej między klasą
-tą a
-tą dla danych wejściowych opisanych wektorem
w postaci
![]() |
(5.33) |
Jeśli wskazuje na
-tą klasę, należy zwiększyć o jeden sumę wskazań do tej klasy. W przeciwnym wypadku zwiększyć o jeden sumę wskazań do klasy
-tej w głosowaniu. Klasa o największej sumie zwycięstw wśród M(M-1)/2 sieci jest uważana za zwycięską (wektor
zalicza się ostatecznie do tej klasy).
W ostatnich latach zaproponowano wiele nowych, równie skutecznych podejść do rozpoznawania wielu klas, pozwalających na rozwiązanie problemu w jednej strukturze SVM, przy uwzględnieniu wszystkich danych uczących na raz i z zastosowaniem dekompozycji zbioru uczącego na mniejsze podzbiory dla przyśpieszenia procedury uczenia. Do takich metod należą między innymi metoda Cramera i Singera [9] oraz metoda C. Hsu i C. Lina [28].