csonk Mik azok a támogató vektorgépek? - Egyesüljetek.AI
Kapcsolatba velünk
AI mesterkurzus:

AI 101

Mik azok a támogató vektorgépek?

mm
korszerűsített on

Mik azok a támogató vektorgépek?

A támogató vektorgépek a gépi tanulási osztályozók egy fajtája, vitathatatlanul az egyik legnépszerűbb osztályozó típus. A támogató vektorgépek különösen hasznosak numerikus előrejelzési, osztályozási és mintafelismerési feladatokhoz.

A támogató vektorgépek úgy működnek, hogy döntési határokat húznak az adatpontok közé, megcélozva azt a döntési határt, amely a legjobban szétválasztja az adatpontokat osztályokra (vagy a leginkább általánosítható). Támogatóvektor gép használatakor az a cél, hogy a pontok közötti döntési határ a lehető legnagyobb legyen, így az adott adatpont és a határvonal közötti távolság maximalizálható. Ez egy gyors magyarázat, hogyan támogatási vektoros gépek (SVM-ek) működni, de szánjunk egy kis időt arra, hogy mélyebbre ássuk az SVM-ek működését, és megértsük működésük logikáját.

A vektoros gépek támogatásának célja

Képzeljünk el egy grafikont, amelyen számos adatpont található, az X és Y tengelyek által meghatározott jellemzők alapján. A grafikonon lévő adatpontok lazán feloszthatók két különböző klaszterre, és az a klaszter, amelyhez egy adatpont tartozik, jelzi az adatpont osztályát. Most tegyük fel, hogy egy vonalat akarunk rajzolni a grafikonon, amely elválasztja a két osztályt egymástól, ahol az egyik osztály összes adatpontja a vonal egyik oldalán található, és a másik osztályhoz tartozó összes adatpont a másik oldalon található. a vonalról. Ezt az elválasztó vonalat hipersíknak nevezik.

Elképzelhető egy támogatási vektorgép úgy, hogy „utakat” hoz létre egy városban, és a várost kerületekre választja szét az út mindkét oldalán. Minden épület (adatpont), amely az út egyik oldalán található, egy kerülethez tartozik.

A támaszvektor gép célja nemcsak hipersíkok rajzolása és adatpontok felosztása, hanem az is, hogy a hipersík megrajzolja a legnagyobb margójú, vagy az elválasztó vonal és az adott adatpont között a legnagyobb hellyel rendelkező adatpontokat. Visszatérve az „utak” metaforához, ha egy várostervező autópálya terveit készít, nem akarja, hogy az autópálya túl közel legyen házakhoz vagy más épületekhez. Minél nagyobb a margó az autópálya és az épületek között mindkét oldalon, annál jobb. Minél nagyobb ez az árrés, annál „magabiztosabb” lehet az osztályozó az előrejelzéseivel kapcsolatban. Bináris osztályozás esetén a megfelelő hipersík megrajzolása azt jelenti, hogy olyan hipersíkot választunk, amely a két különböző osztály közepén található. Ha a döntési határ/hipersík távolabb van az egyik osztálytól, akkor közelebb lesz a másikhoz. Ezért a hipersíknak ki kell egyensúlyoznia a két különböző osztály közötti margót.

Az elválasztó hipersík kiszámítása

Tehát hogyan határozza meg egy támaszvektor gép a legjobb elválasztó hipersík/döntési határt? Ezt a lehetséges hipersíkok matematikai képlet segítségével történő kiszámításával érik el. Nem térünk ki a hipersíkok kiszámításának képletére rendkívül részletesen, de a vonal kiszámítása a híres lejtő/vonal képlettel történik:

Y = ax + b

Eközben a vonalak pontokból állnak, ami azt jelenti, hogy bármely hipersíkot így írhatunk le: a javasolt hipersíkkal párhuzamosan futó pontok halmaza, amelyet a modell súlyai ​​szoroznak a meghatározott eltolás/eltolódás által módosított jellemzők halmazával. („d”).

Az SVM-ek sok hipersíkot rajzolnak. Például a határvonal egy hipersík, de az osztályozó által figyelembe vett adatpontok szintén hipersíkon vannak. Az x értékeit az adatkészlet jellemzői alapján határozzák meg. Például, ha van egy adatkészlete sok ember magasságával és súlyával, akkor a „magasság” és „súly” jellemzők lennének az „X” kiszámításához használt jellemzők. A javasolt hipersík és az osztó hipersík két oldalán található különféle „támaszvektorok” (adatpontok) közötti margót a következő képlettel számítjuk ki:

W * X – b

Míg többet olvashat az SVM-ek mögött rejlő matematikáról, ha intuitívabban szeretné megérteni őket, csak tudja, hogy a cél az, hogy maximalizálja a távolságot a javasolt elválasztó hipersík/határvonal és a vele párhuzamosan futó többi hipersík között ( és amelyeken az adatpontok találhatók).

Fotó: ZackWeinberg a Wikimedia Commonson keresztül, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Többosztályos osztályozás

Az eddig leírt folyamat a bináris osztályozási feladatokra vonatkozik. Az SVM osztályozók azonban nem bináris osztályozási feladatokhoz is használhatók. Ha három vagy több osztályt tartalmazó adatkészleten végez SVM-osztályozást, több határvonalat használ a rendszer. Például, ha egy osztályozási feladatnak három osztálya van kettő helyett, akkor a rendszer két választóvonalat használ az adatpontok osztályokra való felosztására, és az egyetlen osztályt tartalmazó régió egy helyett két elválasztó vonal közé esik. Ahelyett, hogy csupán két osztály és egy döntési határ közötti távolságot számítaná ki, az osztályozónak most figyelembe kell vennie a döntési határok és az adatkészleten belüli több osztály közötti határokat.

Nem-lineáris elválasztások

A fent leírt folyamat azokra az esetekre vonatkozik, amikor az adatok lineárisan elkülöníthetők. Vegye figyelembe, hogy a valóságban az adatkészletek szinte soha nem teljesen lineárisan szétválaszthatók, ami azt jelenti, hogy SVM osztályozó használatakor gyakran kell használni két különböző technika: lágy margó és kerneltrükkök. Vegyünk egy olyan helyzetet, amikor a különböző osztályok adatpontjai keverednek, és néhány példány egy osztályhoz tartozik egy másik osztály „fürtjében”. Hogyan kezelhette az osztályozó ezeket az eseteket?

A nem lineárisan szétválasztható adatkészletek kezelésére használható egyik taktika a „soft margin” SVM osztályozó alkalmazása. A soft margin osztályozó úgy működik, hogy elfogad néhány rosszul besorolt ​​adatpontot. Megpróbál egy vonalat húzni, amely a legjobban elválasztja egymástól az adatpontok klasztereit, mivel ezek tartalmazzák a megfelelő osztályokhoz tartozó példányok többségét. A soft margin SVM osztályozó olyan választóvonalat próbál létrehozni, amely egyensúlyban tartja az osztályozó két követelményét: a pontosságot és a margót. Megpróbálja minimalizálni a téves besorolást, miközben maximalizálja a margint.

Az SVM hibatűrése a „C” nevű hiperparaméter manipulálásával állítható be. A C érték vezérli hány támaszvektort vesz figyelembe az osztályozó a döntési határok meghúzásakor. A C érték a téves besorolásokra alkalmazott büntetés, ami azt jelenti, hogy minél nagyobb a C érték, annál kevesebb támogatási vektort vesz figyelembe az osztályozó, és annál szűkebb a margin.

A kernel becsapja az adatokat, és nemlineáris módon átalakítja azokat. Fotó: Shiyu Ju a Wikmedia Commonson keresztül, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

A Kernel trükk úgy működik, hogy nemlineáris transzformációkat alkalmaz az adatkészlet jellemzőire. A Kernel Trick átveszi az adatkészlet meglévő jellemzőit, és nemlineáris matematikai függvények alkalmazásával új szolgáltatásokat hoz létre. Ezeknek a nemlineáris transzformációknak az alkalmazása nemlineáris döntési határt eredményez. Mivel az SVM osztályozó már nem korlátozódik lineáris döntési határvonalak megrajzolására, elkezdhet ívelt döntési határokat rajzolni, amelyek jobban magukba foglalják a támogatási vektorok valódi eloszlását, és minimálisra csökkentik a téves besorolásokat. A két legnépszerűbb SVM nemlineáris kernel a Radial Basis Function és a Polynomial. A polinomiális függvény az összes meglévő jellemző polinomkombinációját hozza létre, míg a Radial Basis Function új jellemzőket generál egy központi pont/pontok és az összes többi pont közötti távolság mérésével.

Blogger és programozó szakterületekkel Gépi tanulás és a Deep Learning témákat. Daniel abban reménykedik, hogy segíthet másoknak az AI erejét társadalmi javára használni.