stub Kas yra palaikymo vektorinės mašinos? - Vienykitės.AI
Susisiekti su mumis
AI meistriškumo klasė:

AI 101 m

Kas yra palaikymo vektorinės mašinos?

mm
Atnaujinta on

Kas yra palaikymo vektorinės mašinos?

Pagalbinės vektorinės mašinos yra mašininio mokymosi klasifikatoriaus tipas, be abejo, vienas iš populiariausių klasifikatorių rūšių. Pagalbinės vektorinės mašinos ypač naudingos atliekant skaitinio numatymo, klasifikavimo ir modelio atpažinimo užduotis.

Pagalbinės vektorinės mašinos veikia nubrėždamos sprendimų ribas tarp duomenų taškų, siekdamos tokios sprendimo ribos, kuri geriausiai atskiria duomenų taškus į klases (arba yra labiausiai apibendrinama). Naudojant atramos vektoriaus mašiną, siekiama, kad sprendimo riba tarp taškų būtų kuo didesnė, kad atstumas tarp bet kurio duomenų taško ir ribos linijos būtų maksimalus. Tai greitas paaiškinimas, kaip palaikančios vektorines mašinas (SVM) veikia, bet skirkime šiek tiek laiko įsigilinti į SVM veikimo būdą ir suprasti jų veikimo logiką.

Tikslas palaikyti vektorines mašinas

Įsivaizduokite grafiką su daugybe duomenų taškų, pagrįstų X ir Y ašių nurodytomis savybėmis. Duomenų taškai grafike gali būti laisvai suskirstyti į dvi skirtingas grupes, o grupė, kuriai priklauso duomenų taškas, nurodo duomenų taško klasę. Dabar tarkime, kad norime nubrėžti liniją žemyn, skiriančią dvi klases viena nuo kitos, o visi vienos klasės duomenų taškai yra vienoje linijos pusėje, o visi kitai klasei priklausantys duomenų taškai yra kitoje pusėje. linijos. Ši skiriamoji linija yra žinoma kaip hiperplokštuma.

Galite galvoti apie atramos vektorių mašiną kaip kuriantį „kelius“ visame mieste, padalijantį miestą į rajonus abiejose kelio pusėse. Visi pastatai (duomenų taškai), esantys vienoje kelio pusėje, priklauso vienam rajonui.

Pagalbinės vektoriaus mašinos tikslas yra ne tik nubrėžti hiperplokštumas ir padalinti duomenų taškus, bet ir nubrėžti hiperplokštumą atskirtus duomenų taškus, turinčius didžiausią paraštę arba didžiausią tarpą tarp skiriamosios linijos ir bet kurio duoto duomenų taško. Grįžtant prie „kelių“ metaforos, jei miesto planuotojas rengia greitkelio planus, jis nenori, kad greitkelis būtų per arti namų ar kitų pastatų. Kuo didesnė riba tarp greitkelio ir pastatų abiejose pusėse, tuo geriau. Kuo didesnė ši marža, tuo labiau „pasitikintas“ klasifikatorius savo prognozėmis. Dvejetainės klasifikacijos atveju nubrėžti teisingą hiperplokštumą reiškia pasirinkti hiperplokštumą, kuri yra dviejų skirtingų klasių viduryje. Jei sprendimo riba/hiperplokštuma yra toliau nuo vienos klasės, ji bus arčiau kitos. Todėl hiperplokštuma turi subalansuoti skirtumą tarp dviejų skirtingų klasių.

Atskyrimo hiperplokštumos apskaičiavimas

Taigi, kaip paramos vektoriaus mašina nustato geriausią atskyrimo hiperplokštumą / sprendimo ribą? Tai pasiekiama apskaičiuojant galimas hiperplokštumas naudojant matematinę formulę. Mes neapžvelgsime hiperplokštumų skaičiavimo formulės itin detaliai, bet linija apskaičiuojama pagal garsiąją nuolydžio / linijos formulę:

Y = ax + b

Tuo tarpu linijos sudaromos iš taškų, o tai reiškia, kad bet kurią hiperplokštumą galima apibūdinti kaip: taškų, einančių lygiagrečiai siūlomai hiperplokštumai, rinkinį, nulemtą modelio svorių, padauginusių iš savybių rinkinio, pakeisto nurodytu poslinkiu / poslinkiu. („d“).

SVM piešia daug hiperplokštumų. Pavyzdžiui, ribos linija yra viena hiperplokštuma, tačiau duomenų taškai, kuriuos laiko klasifikatorius, taip pat yra hiperplokštumose. X reikšmės nustatomos pagal duomenų rinkinio ypatybes. Pavyzdžiui, jei turėtumėte duomenų rinkinį su daugelio žmonių ūgiais ir svoriais, „ūgio“ ir „svorio“ funkcijos būtų naudojamos „X“ apskaičiuoti. Kraštinės tarp siūlomos hiperplokštumos ir įvairių „palaikymo vektorių“ (duomenų taškų), esančių abiejose dalijančios hiperplokštumos pusėse, apskaičiuojamos pagal šią formulę:

W * X – b

Nors galite perskaityti daugiau apie SVM matematiką, jei ieškote intuityvesnio jų supratimo, tiesiog žinokite, kad tikslas yra maksimaliai padidinti atstumą tarp siūlomos skiriamosios hiperplokštumos / ribos linijos ir kitų hiperplokštumų, einančių lygiagrečiai su ja ( ir ant kurių randami duomenų taškai).

Nuotrauka: ZackWeinberg per Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Daugiaklasių klasifikacija

Iki šiol aprašytas procesas taikomas dvejetainėms klasifikavimo užduotims. Tačiau SVM klasifikatoriai taip pat gali būti naudojami ne dvejetainei klasifikavimo užduotims atlikti. Atliekant SVM klasifikavimą duomenų rinkinyje, kuriame yra trys ar daugiau klasių, naudojama daugiau ribinių linijų. Pavyzdžiui, jei klasifikavimo užduotyje yra trys klasės, o ne dvi, dvi skiriamosios linijos bus naudojamos duomenų taškams padalinti į klases, o regionas, kurį sudaro viena klasė, pateks tarp dviejų skiriamųjų linijų, o ne vienos. Užuot tiesiog apskaičiavęs atstumą tarp dviejų klasių ir sprendimo ribos, klasifikatorius turi atsižvelgti į ribą tarp sprendimo ribų ir kelių duomenų rinkinio klasių.

Netiesiniai atskyrimai

Aukščiau aprašytas procesas taikomas tais atvejais, kai duomenis galima atskirti tiesiškai. Atminkite, kad iš tikrųjų duomenų rinkiniai beveik niekada nėra visiškai tiesiškai atskiriami, o tai reiškia, kad naudojant SVM klasifikatorių dažnai reikės naudoti dvi skirtingos technikos: minkšta paraštė ir branduolio gudrybės. Apsvarstykite situaciją, kai skirtingų klasių duomenų taškai yra sumaišyti, kai kurie atvejai priklauso vienai klasei kitos klasės „klasteryje“. Kaip galite, kad klasifikatorius tvarkytų šiuos atvejus?

Viena taktika, kurią galima naudoti netiesiškai atskiriamiems duomenų rinkiniams tvarkyti, yra „minkštosios paraštės“ SVM klasifikatoriaus taikymas. Minkštas maržos klasifikatorius veikia priimdamas keletą neteisingai klasifikuotų duomenų taškų. Ji bandys nubrėžti liniją, kuri geriausiai atskirtų duomenų taškų grupes vieną nuo kitos, nes juose yra dauguma jų atitinkamoms klasėms priklausančių egzempliorių. Minkštas paraštės SVM klasifikatorius bando sukurti skiriamąją liniją, kuri subalansuotų du klasifikatoriaus reikalavimus: tikslumą ir paraštę. Ji stengsis sumažinti klaidingą klasifikaciją, kartu padidindama maržą.

SVM paklaidos paklaida gali būti koreguojama manipuliuojant hiperparametru, vadinamu „C“. C reikšmė valdo kiek palaikymo vektorių klasifikatorius atsižvelgia braižydamas sprendimų ribas. C reikšmė yra bauda, ​​taikoma už klaidingą klasifikaciją, o tai reiškia, kad kuo didesnė C reikšmė, tuo mažiau paramos vektorių klasifikatorius atsižvelgia ir tuo siauresnė riba.

Branduolys apgauna duomenis ir transformuoja juos netiesiniu būdu. Nuotrauka: Shiyu Ju per Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Branduolio triukas veikia taikant netiesines transformacijas duomenų rinkinio funkcijoms. Branduolio triukas perima esamas duomenų rinkinio funkcijas ir sukuria naujas funkcijas taikydamas netiesines matematines funkcijas. Tai, kas atsiranda taikant šias netiesines transformacijas, yra netiesinė sprendimo riba. Kadangi SVM klasifikatorius nebėra apsiriboja linijinių sprendimų ribų nubrėžimu, jis gali pradėti brėžti kreivąsias sprendimų ribas, kurios geriau atspindi tikrąjį paramos vektorių pasiskirstymą ir sumažina klaidingų klasifikacijų skaičių. Du iš populiariausių netiesinių SVM branduolių yra Radial Basis Function ir Polynomial. Dauginamo funkcija sukuria visų esamų ypatybių polinominius derinius, o radialinio pagrindo funkcija sukuria naujas savybes, matuojant atstumą tarp centrinio taško (taškų) iki visų kitų taškų.

Tinklaraštininkas ir programuotojas, turintis specialybių Mašininis mokymasis ir Gilus mokymasis temomis. Danielis tikisi padėti kitiems panaudoti AI galią socialinei gerovei.