výhonek Co jsou podpůrné vektorové stroje? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Co jsou podpůrné vektorové stroje?

mm
aktualizováno on

Co jsou podpůrné vektorové stroje?

Podporné vektorové stroje jsou typem klasifikátoru strojového učení, pravděpodobně jedním z nejoblíbenějších druhů klasifikátorů. Podporné vektorové stroje jsou zvláště užitečné pro úlohy numerické predikce, klasifikace a rozpoznávání vzorů.

Podporné vektorové stroje fungují tak, že kreslí rozhodovací hranice mezi datovými body, přičemž se zaměřují na rozhodovací hranici, která nejlépe rozděluje datové body do tříd (nebo je nejvíce zobecnitelná). Cílem při použití podpůrného vektorového stroje je, aby rozhodovací hranice mezi body byla co největší, takže vzdálenost mezi libovolným daným datovým bodem a hraniční čárou je maximalizována. To je rychlé vysvětlení jak podpora vektorových strojů (SVM) fungují, ale věnujte nějaký čas tomu, abychom se hlouběji ponořili do toho, jak fungují SVM a porozuměli logice jejich provozu.

Cíl podpory vektorových strojů

Představte si graf s množstvím datových bodů na základě vlastností určených osami X a Y. Datové body v grafu lze volně rozdělit do dvou různých shluků a shluk, do kterého datový bod patří, označuje třídu datového bodu. Nyní předpokládejme, že chceme v grafu nakreslit čáru, která odděluje obě třídy od sebe, přičemž všechny datové body v jedné třídě se nacházejí na jedné straně čáry a všechny datové body patřící do jiné třídy na druhé straně. z řady. Tato oddělující čára je známá jako nadrovina.

Podpůrný vektorový stroj si můžete představit jako vytváření „silnic“ po celém městě, rozdělující město na obvody po obou stranách silnice. Všechny budovy (datové body), které se nacházejí na jedné straně silnice, patří do jednoho okresu.

Cílem podpůrného vektorového stroje není pouze kreslit nadroviny a dělit datové body, ale kreslit nadrovinu oddělující datové body s největším okrajem nebo s největším prostorem mezi dělicí čárou a libovolným daným datovým bodem. Vrátíme-li se k metafoře „silnic“, pokud urbanista kreslí plány na dálnici, nechce, aby byla dálnice příliš blízko domů nebo jiných budov. Čím větší vzdálenost mezi dálnicí a budovami na obou stranách, tím lépe. Čím větší je toto rozpětí, tím si může být klasifikátor „jistější“ ve svých předpovědích. V případě binární klasifikace znamená nakreslení správné nadroviny výběr nadroviny, která je právě uprostřed dvou různých tříd. Pokud je rozhodovací hranice/nadrovina dále od jedné třídy, bude blíže jiné. Proto musí nadrovina vyrovnávat rozpětí mezi dvěma různými třídami.

Výpočet oddělující nadroviny

Jak tedy podpůrný vektorový stroj určí nejlepší oddělující nadrovinu/hranici rozhodnutí? Toho je dosaženo výpočtem možných nadrovin pomocí matematického vzorce. Nebudeme se zabývat vzorcem pro výpočet nadrovin v extrémních detailech, ale čára se vypočítá podle známého vzorce sklon/čára:

Y = ax + b

Mezitím jsou čáry tvořeny body, což znamená, že jakoukoli nadrovinu lze popsat jako: množinu bodů, které běží rovnoběžně s navrhovanou nadrovinou, jak je určeno vahami modelu krát množina prvků upravená zadaným posunem/vychýlením. ("d").

SVM kreslí mnoho nadrovin. Například hraniční čára je jedna nadrovina, ale datové body, které klasifikátor zvažuje, jsou také na nadrovinách. Hodnoty pro x jsou určeny na základě funkcí v datové sadě. Pokud byste například měli datovou sadu s výškami a hmotnostmi mnoha lidí, funkce „výška“ a „váha“ by byly funkcemi používanými k výpočtu „X“. Okraje mezi navrhovanou nadrovinou a různými „nosnými vektory“ (datovými body) nalezenými na obou stranách dělící nadroviny se vypočítají podle následujícího vzorce:

Š * X – ž

I když si můžete přečíst více o matematice za SVM, pokud hledáte jejich intuitivnější pochopení, vězte, že cílem je maximalizovat vzdálenost mezi navrhovanou oddělující nadrovinou/hraniční čárou a ostatními nadrovinami, které s ní běží paralelně ( a na kterých se nacházejí datové body).

Foto: ZackWeinberg prostřednictvím Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Vícetřídní klasifikace

Dosud popsaný proces platí pro úlohy binární klasifikace. Klasifikátory SVM však lze použít i pro nebinární klasifikační úlohy. Při klasifikaci SVM na datové sadě se třemi nebo více třídami se používá více hraničních čar. Pokud má například klasifikační úloha tři třídy místo dvou, k rozdělení datových bodů do tříd se použijí dvě dělící čáry a oblast, která obsahuje jedinou třídu, bude spadat mezi dvě dělící čáry místo jedné. Namísto pouhého výpočtu vzdálenosti mezi pouze dvěma třídami a rozhodovací hranicí musí nyní klasifikátor zvážit okraje mezi rozhodovacími hranicemi a více třídami v rámci datové sady.

Nelineární separace

Výše popsaný proces platí pro případy, kdy jsou data lineárně oddělitelná. Všimněte si, že ve skutečnosti nejsou datové sady téměř nikdy úplně lineárně oddělitelné, což znamená, že při použití klasifikátoru SVM budete často muset použít dvě různé techniky: soft margin a kernel triky. Uvažujme situaci, kdy jsou datové body různých tříd smíchány dohromady, přičemž některé instance patří do jedné třídy ve „shluku“ jiné třídy. Jak byste mohli přimět klasifikátor, aby tyto případy zvládl?

Jednou taktikou, kterou lze použít ke zpracování nelineárně oddělitelných datových sad, je použití klasifikátoru SVM s „soft margin“. Klasifikátor měkkých okrajů funguje tak, že přijímá několik chybně klasifikovaných datových bodů. Pokusí se nakreslit čáru, která nejlépe oddělí shluky datových bodů od sebe, protože obsahují většinu instancí patřících do jejich příslušných tříd. Klasifikátor SVM s měkkým okrajem se pokouší vytvořit dělicí čáru, která vyvažuje dva požadavky klasifikátoru: přesnost a okraj. Pokusí se minimalizovat chybnou klasifikaci a zároveň maximalizovat marži.

Toleranci SVM na chybu lze upravit manipulací s hyperparametrem nazývaným „C“. Hodnota C řídí kolik vektorů podpory klasifikátor zvažuje při kreslení hranic rozhodování. Hodnota C je penalizací aplikovanou na chybné klasifikace, což znamená, že čím větší je hodnota C, tím méně vektorů podpory bere klasifikátor v úvahu a tím užší je rozpětí.

Jádro oklame data a transformuje je nelineárním způsobem. Foto: Shiyu Ju přes Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick funguje tak, že aplikuje nelineární transformace na prvky v datové sadě. Kernel Trick přebírá existující funkce v datové sadě a vytváří nové funkce pomocí aplikace nelineárních matematických funkcí. Výsledkem aplikace těchto nelineárních transformací je nelineární hranice rozhodování. Protože klasifikátor SVM již není omezen na kreslení lineárních rozhodovacích hranic, může začít kreslit zakřivené rozhodovací hranice, které lépe zapouzdřují skutečné rozložení podpůrných vektorů a snižují chybné klasifikace na minimum. Dvě z nejpopulárnějších nelineárních jader SVM jsou Radial Basis Function a Polynomial. Funkce polynomu vytváří polynomické kombinace všech existujících prvků, zatímco funkce Radial Basis generuje nové prvky měřením vzdálenosti mezi centrálním bodem/body ke všem ostatním bodům.

Blogerka a programátorka se specializací v Strojové učení a Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.