what is support vector machine machine learning
Tento výukový program vysvětluje podporu vektorového stroje v ML a souvisejících pojmech jako Hyperplane, Support Vectors & Applications of SVM:
V Předchozí tutoriál , jsme se dozvěděli o genetických algoritmech a jejich roli ve strojovém učení.
V našich dřívějších výukových programech jsme studovali některé supervizované a nekontrolované algoritmy strojového učení. Backpropagation je algoritmus učení pod dohledem, zatímco Kohenen je algoritmus učení bez dozoru.
V tomto tutoriálu podpory vektorových strojů se dozvíme o podpůrných vektorových strojích. SVM jsou robustní matematické algoritmy strojového učení pod dohledem, které se široce používají při klasifikaci souboru tréninkových dat.
=> Přečtěte si celou sérii školení o strojovém učení
Co se naučíte:
- Co je to Support Vector Machine (SVM)
- Co je to Hyperplane
- Co jsou algoritmy klasifikace a regrese
- Co jsou podpůrné vektory
- Jak funguje vektorový stroj podpory
- Jak optimalizovat polohu hyperplánu
- Aplikace SVM
- Závěr
- Doporučené čtení
Co je to Support Vector Machine (SVM)
Algoritmus SVM je supervizovaný učební algoritmus kategorizovaný podle klasifikačních technik. Jedná se o binární klasifikační techniku, která používá tréninkovou datovou sadu k předpovědi optimální nadroviny v n-dimenzionálním prostoru.
Tato nadrovina se používá ke klasifikaci nových sad dat. Jako binární klasifikátor rozděluje tréninková datová sada nadrovina tréninkovou datovou sadu do dvou tříd.
Algoritmy SVM se používají ke klasifikaci dat v 2-dimenzionální rovině i vícerozměrné nadrovině. Multidimenzionální hyperplán používá ke kategorizaci multidimenzionálních dat „jádra“.
Vždy je žádoucí mít maximální rozlišení mezi klasifikovanými datovými body. To znamená, že by měli mít maximální vzdálenost, nebo nadrovina by měla mít maximální rozpětí mezi datovými body.
Co je to Hyperplane
Hyperplán je hranice, která rozděluje rovinu. Jedná se o hranici rozhodnutí, která klasifikuje datové body do 2 odlišných tříd. Jelikož se SVM používá ke klasifikaci dat do vícerozměrných, nadrovina může být přímka, pokud existují 2 vstupy, nebo 2D rovina, pokud existují více než 2 vstupy.
Algoritmy SVM lze také použít pro regresní analýzu, ale hlavně se používají pro klasifikaci. Podívejme se na několik dalších podrobností o každé z těchto metod.
Co jsou algoritmy klasifikace a regrese
Klasifikační algoritmus je algoritmus, který analyzuje tréninková data a předpovídá výsledek. Výsledkem je cílová třída, například , Den nebo Noc, Ano nebo Ne, Dlouhý nebo Krátký. Příkladem klasifikačního algoritmu by bylo, zda by si zákazník v supermarketu kupující chléb koupil také máslo. Cílová třída by byla „Ano“ nebo „Ne“.
Regresní algoritmus zjišťuje vztah mezi nezávislými proměnnými a předpovídá výsledek. Lineární regrese zjišťuje lineární vztah mezi vstupem a výstupem. Například: „A“ jako vstup a „b“ jako výstup, lineární funkce bude b = k * a + c.
Co jsou podpůrné vektory
Vektory podpory jsou datové body, které nám pomáhají optimalizovat nadrovinu. Tyto vektory leží nejblíže k nadrovině a je nejobtížnější je klasifikovat. Poloha rozhodovací nadroviny závisí na podpůrných vektorech. Pokud jsou tyto podpůrné vektory odstraněny, pak se také změní poloha nadroviny.
Support Vector Machine (SVM) používá vstupní datové body nebo funkce zvané podpůrné vektory k maximalizaci rozhodovacích hranic, tj. Prostoru kolem nadroviny. Vstupy a výstupy SVM jsou podobné neuronové síti. Existuje jen jeden rozdíl mezi SVM a NN, jak je uvedeno níže.
Vstupy: Síť SVM může obsahovat n počet vstupů, například xjeden, Xdva, …… .., Xi,…., Xn.
Výstupy: Cílový výstup t.
Váhy: Jako váhy neuronové sítě wjeden, vdva, ……, vnjsou spojeny s každým vstupem, jehož lineární kombinace předpovídá výstup y.
Rozdíl mezi SVM a neuronovými sítěmi
Synaptické váhy v neuronových sítích jsou eliminovány pro výpočet výstupu y sítě, zatímco v SVM jsou nenulové váhy redukovány nebo eliminovány pro výpočet optimální hranice rozhodování.
S vyloučením vah sníží vstupní datovou sadu na několik důležitých vstupních funkcí, které pomohou při rozhodování o oddělitelné nadrovině.
Jak funguje vektorový stroj podpory
Jak víme, cílem podpůrných vektorových strojů je maximalizovat rozpětí mezi klasifikovanými datovými body. To přinese optimálnější výsledky pro klasifikaci nových sad netrénovaných dat. Lze jej tedy dosáhnout tím, že máme nadrovinu v poloze, kde je maximální okraj.
Podívejme se na příklad lineárně oddělených datových bodů:
Krok 1: Zjistěte správnou nadrovinu z různých možností: Chcete-li se rozhodnout pro nejlepší nadrovinu, vyhledejte všechny možné roviny, které rozdělují data, a poté vyberte tu, která nejlépe klasifikuje vstupní datové sady. V níže uvedeném grafu jsou tři možnosti nadroviny. Nadrovina 3 lépe rozděluje datové body.
Krok 2: Vyberte nadrovinu s maximálním okrajem mezi nejbližšími datovými body: Okraj je definován jako vzdálenost mezi nadrovinou a nejbližšími datovými body. Optimální je tedy mít maximální marži. Když 2 nebo více než 2 hyperplany klasifikují data rovnoměrně, zjistěte okraj.
Je vybrána nadrovina s maximálním okrajem. Na následujícím obrázku rozděluje nadrovina 2.1,2.2 a 2.3 datové body, ale nadrovina 2.2 má maximální rozpětí.
Krok 3: Pokud jsou k dispozici odlehlé hodnoty: Odlehlé hodnoty jsou datové body, které se liší od sady datových bodů. V případě 2 sad datových bodů může být odlehlá hodnota. SVM ignoruje takové odlehlé hodnoty v datech a poté najde nadrovinu s maximálním okrajem.
Krok 4: V případě nelineárně oddělených datových bodů používá SVM trik jádra. Převede nelineárně oddělitelnou rovinu na oddělitelný panel zavedením nové dimenze. Jádrové triky jsou složité matematické rovnice, které provádějí složité transformace dat za účelem optimalizace nadroviny.
Obrázek níže ukazuje nelineárně oddělitelné datové body, které se poté transformují do vysoce dimenzionální roviny z. Nadrovina rozdělující dvě datové sady je kruh.
Jak optimalizovat polohu hyperplánu
Poloha nadroviny je optimalizována pomocí optimalizačních algoritmů.
Parametr SVM: Jádro
Vytvoření optimalizované nadroviny v nelineárně oddělitelném problému se provádí pomocí jader. Jádra jsou matematické funkce, které převádějí složitý problém pomocí lineární algebraické formy.
Pro lineární jádro se rovnice nachází jako:
F (x) = b + součet (ai* (x, xi))
kde,
x je nová vstupní data
Xije vektor podpory
b, aijsou koeficienty. Tyto koeficienty se odhadují během fáze učení algoritmu.
U složitého nelineárně oddělitelného problému funguje trik jádra jako převod nelineárního oddělitelného problému na oddělitelný problém. Transformuje komplexní data a hledá způsob, jak rozdělit datové body na výstupy.
Funkce jádra jsou mnoha typů, jako jsou lineární, polynomiální, sigmoidní, radiální zkreslení, nelineární a mnoho dalších.
Podívejme se na využití některých výše uvedených funkcí jádra:
Funkce jádra vypočítají vnitřní součin 2 vstupů x, y prostoru.
# 1) Funkce radiálního zkreslení: Nejpoužívanější funkce jádra říká, že pro všechny hodnoty ležící mezi x = (-1,1) je hodnota funkce 1 jinak 0. U některých úseků řekněte xi, hodnota funkce jádra je 1 pro | (xi- h), (xi+ h) | pro xibráno jako střed a jinak 0.
# 2) Funkce sigmoidu: Jako neuronové sítě využívající Sigmoid je funkce jádra pro SVM
# 3) Hyperbolická tangensová funkce: Jak neuronové sítě používají, funkce je
# 4) Funkce Gaussian Kernel: Stavy funkce Gaussian Kernel
# 5) Polynomiální funkce: k (xi, Xj) = (x.)i* Xj+1)dva
Aplikace SVM
Skutečné aplikace SVM zahrnují:
# 1) Zařazení článků do různých kategorií: SVM rozlišuje mezi psanými texty a rozděluje je do různých kategorií, jako jsou články o zábavě, zdraví a beletrii. Je založen na přednastavených prahových hodnotách vypočítaných během tréninku SVM.
Pokud je prahová hodnota překročena, je zařazena do kategorie. Pokud hodnota není splněna, jsou pro klasifikaci definovány nové kategorie.
potřebuji nového poskytovatele e-mailu
# 2) Rozpoznání tváře: Daný obraz je klasifikován jako obraz obličeje nebo obraz jiné tváře detekcí funkcí pomocí pixelů. Obrázek je rozpoznán jako obličej nebo jiný než obličej.
# 3) Informace o zdraví: SVM se používají ke klasifikaci pacientů na základě jejich genů, rozpoznávání biologických vzorů atd.
# 4) Detekce homologie bílkovin: Ve výpočetních lékařských vědách jsou SVM trénovány na modelování proteinových sekvencí. SVM se poté použije k detekci homologie proteinů.
Závěr
V tomto kurzu podpory vektorových strojů jsme se dozvěděli o podpoře vektorových strojů. Algoritmy SVM jsou supervizované algoritmy učení, které se používají ke klasifikaci binárních dat a lineárně oddělitelných dat. Klasifikuje datové body nadrovinou s maximálním okrajem.
Nelineární datové body lze také klasifikovat pomocí vektorových podpůrných strojů pomocí triků jádra. V reálném životě existuje mnoho aplikací SVM, jednou z nejběžnějších aplikací je rozpoznávání obličeje a rozpoznávání rukopisu.
Šťastné čtení!!
=> Navštivte zde exkluzivní sérii strojového učení
Doporučené čtení
- Výukový program pro strojové učení: Úvod do ML a jeho aplikací
- Kompletní průvodce umělou neuronovou sítí ve strojovém učení
- Data Mining vs. Machine Learning vs. Artificial Intelligence vs. Deep Learning
- Druhy strojového učení: Supervised Vs Unsupervised Learning
- Úvod do genetických algoritmů ve strojovém učení
- 11 nejpopulárnějších softwarových nástrojů pro strojové učení v roce 2021
- Top 13 NEJLEPŠÍCH společností pro strojové učení (aktualizovaný seznam 2021)
- Co je Java Vector | Výukový program Java Vector Class s příklady