Podpora vektorového stroje

Support vector machine ( SVM, support vector machine ) je  sada podobných algoritmů učení pod dohledem používaných pro problémy klasifikace a regresní analýzy . Patří do rodiny lineárních klasifikátorů a lze jej také považovat za speciální případ Tichonovovy regularizace . Speciální vlastností podpůrného vektorového stroje je to, že empirická klasifikační chyba se neustále zmenšuje a mezera se zvětšuje, proto je tato metoda také známá jako metoda klasifikátoru maximální mezery .

Hlavní myšlenkou metody je převést původní vektory do vícerozměrného prostoru a hledat oddělující nadrovinu s největší mezerou v tomto prostoru. Dvě paralelní nadroviny jsou postaveny na obou stranách nadroviny, která odděluje třídy. Oddělující nadrovina bude ta nadrovina, která vytváří největší vzdálenost ke dvěma rovnoběžným nadrovinám. Algoritmus je založen na předpokladu, že čím větší je rozdíl nebo vzdálenost mezi těmito paralelními nadrovinami, tím menší bude průměrná chyba klasifikátoru.

Prohlášení o problému

V algoritmech strojového učení je často nutné data klasifikovat. Každý datový objekt je reprezentován jako vektor (bod) v -rozměrném prostoru (uspořádaná množina čísel). Každý z těchto bodů patří pouze do jedné ze dvou tříd. Otázkou je, zda lze body oddělit nadrovinou dimenze ( −1). Toto je typický případ lineární oddělitelnosti . Může existovat mnoho požadovaných nadrovin, takže se má za to, že maximalizace mezery mezi třídami přispívá k spolehlivější klasifikaci. To znamená, zda je možné najít takovou nadrovinu , aby vzdálenost od ní k nejbližšímu bodu byla maximální. To je ekvivalentní [1] skutečnosti, že součet vzdáleností k nadrovině od dvou nejbližších bodů, které leží na jejích opačných stranách, je maximální. Pokud taková nadrovina existuje, nazývá se optimální oddělovací nadrovina a její odpovídající lineární klasifikátor se nazývá optimální oddělovací klasifikátor .

Formální popis problému

Věříme, že body vypadají takto:

kde má hodnotu 1 nebo −1, podle toho, do které třídy bod patří . Každý  je -rozměrný skutečný vektor, obvykle normalizovaný pomocí nebo . Pokud body nejsou normalizovány, pak bod s velkými odchylkami od průměrných souřadnic bodu příliš ovlivní klasifikátor. Můžeme si to představit jako trénovací vzorek, kde je každému prvku již přiřazena třída, do které patří. Chceme, aby je podpůrný vektorový strojový algoritmus klasifikoval stejným způsobem. K tomu vytvoříme oddělovací nadrovinu, která vypadá takto:

Vektor  je kolmý na oddělující nadrovinu. Parametr se v absolutní hodnotě rovná vzdálenosti od nadroviny k počátku. Pokud je parametr b nulový, nadrovina prochází počátkem, což omezuje řešení.

Protože nás zajímá optimální separace, zajímají nás podpůrné vektory a nadroviny, které jsou rovnoběžné s optimální a nejblíže podpůrným vektorům těchto dvou tříd. Lze ukázat, že tyto paralelní nadroviny lze popsat následujícími rovnicemi (až do normalizace).

Pokud je trénovací vzorek lineárně oddělitelný , pak můžeme volit nadroviny tak, aby mezi nimi neležel žádný bod trénovacího vzorku a pak maximalizovat vzdálenost mezi nadrovinami. Šířku pásu mezi nimi lze snadno zjistit z geometrických úvah, je rovna [2] , naším úkolem je tedy minimalizovat . Abychom z pruhu vyloučili všechny body, musíme se o to všechno ujistit

To lze také napsat jako:

Případ lineární oddělitelnosti

Problém konstrukce optimální oddělovací nadroviny je redukován na minimalizaci , za podmínky (1). Toto je problém kvadratické optimalizace, který vypadá takto:

Podle Kuhn-Tuckerovy věty je tento problém ekvivalentní duálnímu problému nalezení sedlového bodu Lagrangeovy funkce

kde je vektor duálních proměnných.

Tento problém redukujeme na ekvivalentní problém kvadratického programování obsahující pouze duální proměnné:

Předpokládejme, že jsme tento problém vyřešili, pak jej lze nalézt podle vzorců:

V důsledku toho lze klasifikační algoritmus zapsat jako:

V tomto případě sumace neprobíhá přes celý vzorek, ale pouze přes podpůrné vektory, pro které .

Případ lineární neoddělitelnosti

Aby algoritmus fungoval, pokud jsou třídy lineárně neoddělitelné, dovolme mu dělat chyby na trénovací množině. Představme si sadu dalších proměnných charakterizujících velikost chyby na objektech . Vezměme (2) jako výchozí bod, zmírníme omezení nerovností a také zavedeme penalizaci za celkovou chybu do minimalizovaného funkcionálu:

Koeficient  je parametr nastavení metody, který umožňuje upravit poměr mezi maximalizací šířky oddělovacího proužku a minimalizací celkové chyby.

Podobně podle Kuhn-Tuckerovy věty redukujeme problém na nalezení sedlového bodu Lagrangeovy funkce :

Analogicky redukujeme tento problém na ekvivalentní:

V praxi je pro sestavení podpůrného vektorového stroje vyřešen tento problém a ne (3), protože obecně není možné zaručit lineární oddělitelnost bodů do dvou tříd. Tato varianta algoritmu se nazývá soft-margin SVM algoritmus, zatímco v lineárně separovatelném případě se mluví o hard-margin SVM (hard-margin SVM).

Pro klasifikační algoritmus je zachován vzorec (4), jen s tím rozdílem, že nyní mají nejen referenční objekty, ale i objekty porušující nenulové hodnoty. V určitém smyslu je to nevýhoda, protože špičky hluku jsou často pachateli a rozhodovací pravidlo na nich postavené ve skutečnosti spoléhá na hluk.

Konstanta C se obvykle volí podle kritéria klouzavého řízení. Je to pracná metoda, protože problém se musí řešit znovu pro každou hodnotu C.

Pokud existuje důvod se domnívat, že vzorek je téměř lineárně oddělitelný a pouze odlehlé objekty jsou klasifikovány nesprávně, lze použít filtrování odlehlých hodnot. Nejprve se problém vyřeší pro některé C a ze vzorku se odstraní malá část objektů s největší chybovou hodnotou . Poté je problém znovu vyřešen na zkráceném vzorku. Může být nutné provést několik takových iterací, dokud nebudou zbývající objekty lineárně oddělitelné.

Jádra

Algoritmus pro konstrukci optimální oddělovací nadroviny, navržený v roce 1963 Vladimirem Vapnikem a Aleksey Chervonenkisem  , je lineární klasifikační algoritmus. V roce 1992 však Bernhard Boser, Isabelle Guyon a Vapnik navrhli metodu pro vytvoření nelineárního klasifikátoru založeného na přechodu od skalárních součinů k libovolným jádrům, tzv. kernel trick (poprvé navrhli M. A. Aizerman , E. M. Braverman a L. I. Rozonoer pro metodu potenciálních funkcí), která umožňuje stavět nelineární separátory. Výsledný algoritmus je velmi podobný lineárnímu klasifikačnímu algoritmu, pouze s tím rozdílem, že každý skalární součin ve výše uvedených vzorcích je nahrazen nelineární funkcí jádra (skalární součin v prostoru s vyšší dimenzí). V tomto prostoru již může existovat optimální separační nadrovina. Protože dimenze výsledného prostoru může být větší než dimenze původního, bude transformace odpovídající skalárním součinům nelineární, což znamená, že funkce odpovídající optimální oddělovací nadrovině v původním prostoru bude také nelineární.

Pokud má původní prostor dostatečně velký rozměr, pak může být vzorek lineárně oddělitelný.

Nejběžnější jádra:

Viz také

Poznámky

  1. Vyugin, 2013 , str. 86-90.
  2. K. V. Voroncov. Přednášky o podpůrných vektorových strojích Archivovány 27. září 2007 na Wayback Machine

Literatura

Odkazy