stubs Kas ir atbalsta vektora mašīnas? - Apvienojieties.AI
Savienoties ar mums
AI meistarklase:

AI 101

Kas ir atbalsta vektora mašīnas?

mm
Atjaunināts on

Kas ir atbalsta vektora mašīnas?

Atbalsta vektora mašīnas ir mašīnmācīšanās klasifikatora veids, kas, iespējams, ir viens no populārākajiem klasifikatoru veidiem. Atbalsta vektora mašīnas ir īpaši noderīgas skaitliskās prognozēšanas, klasifikācijas un modeļu atpazīšanas uzdevumos.

Atbalsta vektora mašīnas darbojas, novelkot lēmumu robežas starp datu punktiem, tiecoties pēc lēmuma robežas, kas vislabāk sadala datu punktus klasēs (vai ir visvairāk vispārināmā). Izmantojot atbalsta vektora mašīnu, mērķis ir panākt, lai lēmuma robeža starp punktiem būtu pēc iespējas lielāka, lai attālums starp jebkuru datu punktu un robežlīniju būtu maksimāls. Tas ir ātrs paskaidrojums, kā atbalsta vektora mašīnas (SVM) darbojas, taču veltīsim laiku, lai padziļināti izpētītu SVM darbību un izprastu to darbības loģiku.

Mērķis atbalsta vektora mašīnas

Iedomājieties grafiku ar vairākiem datu punktiem, kuru pamatā ir X un Y ass norādītās pazīmes. Datu punktus diagrammā var brīvi sadalīt divās dažādās kopās, un klasteris, kuram pieder datu punkts, norāda datu punkta klasi. Tagad pieņemsim, ka mēs vēlamies novilkt līniju uz leju diagrammā, kas atdala abas klases vienu no otras, un visi datu punkti vienā klasē atrodas vienā līnijas pusē un visi datu punkti, kas pieder citai klasei, atrodas otrā pusē. no līnijas. Šī atdalošā līnija ir pazīstama kā hiperplakne.

Jūs varat domāt par atbalsta vektoru mašīnu kā “ceļu” izveidi visā pilsētā, sadalot pilsētu rajonos abās ceļa pusēs. Visas ēkas (datu punkti), kas atrodas vienā ceļa pusē, pieder vienam rajonam.

Atbalsta vektoru mašīnas mērķis ir ne tikai zīmēt hiperplaknes un sadalīt datu punktus, bet arī uzzīmēt hiperplaknē atdalītos datu punktus ar lielāko rezervi vai ar lielāko atstarpi starp dalīšanas līniju un jebkuru doto datu punktu. Atgriežoties pie “ceļu” metaforas, ja pilsētplānotājs zīmē automaģistrāles plānus, viņš nevēlas, lai automaģistrāle atrastos pārāk tuvu mājām vai citām ēkām. Jo lielāka robeža starp automaģistrāli un ēkām abās pusēs, jo labāk. Jo lielāka šī rezerve, jo “pārliecinātāks” klasifikators var būt par savām prognozēm. Binārās klasifikācijas gadījumā pareizas hiperplaknes zīmēšana nozīmē tādas hiperplaknes izvēli, kas atrodas tieši divu dažādu klašu vidū. Ja lēmuma robeža/hiperplakne atrodas tālāk no vienas klases, tā būs tuvāk citai klasei. Tāpēc hiperplaknei ir jāsabalansē starpība starp divām dažādām klasēm.

Atdalošās hiperplaknes aprēķināšana

Tātad, kā atbalsta vektora mašīna nosaka vislabāko atdalošo hiperplānu/lēmuma robežu? To panāk, aprēķinot iespējamās hiperplaknes, izmantojot matemātisko formulu. Mēs neaptveram hiperplānu aprēķināšanas formulu ārkārtīgi detalizēti, bet līnija tiek aprēķināta ar slaveno slīpuma/līnijas formulu:

Y = cirvis + b

Tikmēr līnijas tiek veidotas no punktiem, kas nozīmē, ka jebkuru hiperplakni var raksturot kā: punktu kopa, kas iet paralēli ierosinātajai hiperplaknei, ko nosaka modeļa svari, reizināti ar pazīmju kopu, kas modificēta ar noteiktu nobīdi/novirzi. (“d”).

SVM zīmē daudzas hiperplānas. Piemēram, robežlīnija ir viena hiperplakne, bet datu punkti, kurus uzskata klasifikators, arī atrodas hiperplaknēs. X vērtības tiek noteiktas, pamatojoties uz datu kopas līdzekļiem. Piemēram, ja jums būtu datu kopa ar daudzu cilvēku augumiem un svaru, "X" aprēķināšanai tiktu izmantoti elementi "augstums" un "svars". Robežas starp piedāvāto hiperplakni un dažādiem “atbalsta vektoriem” (datu punktiem), kas atrodas abās dalošās hiperplaknes pusēs, aprēķina pēc šādas formulas:

W * X – b

Lai gan varat lasīt vairāk par SVM matemātiku, ja meklējat intuitīvāku izpratni par tiem, vienkārši ziniet, ka mērķis ir maksimāli palielināt attālumu starp piedāvāto atdalošo hiperplakni/robežlīniju un citām hiperplaknēm, kas iet tai paralēli ( un uz kuriem ir atrasti datu punkti).

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

Vairāku klašu klasifikācija

Līdz šim aprakstītais process attiecas uz binārās klasifikācijas uzdevumiem. Tomēr SVM klasifikatorus var izmantot arī nebinārās klasifikācijas uzdevumiem. Veicot SVM klasifikāciju datu kopā ar trim vai vairākām klasēm, tiek izmantots vairāk robežlīniju. Piemēram, ja klasifikācijas uzdevumā ir trīs klases, nevis divas, tiks izmantotas divas dalīšanas līnijas, lai sadalītu datu punktus klasēs, un reģions, kas ietver vienu klasi, atradīsies starp divām dalīšanas līnijām, nevis vienu. Tā vietā, lai tikai aprēķinātu attālumu tikai starp divām klasēm un lēmuma robežu, klasifikatoram tagad ir jāņem vērā robežas starp lēmuma robežām un vairākām klasēm datu kopā.

Nelineāras atdalīšanas

Iepriekš aprakstītais process attiecas uz gadījumiem, kad dati ir lineāri atdalāmi. Ņemiet vērā, ka patiesībā datu kopas gandrīz nekad nav pilnībā lineāri atdalāmas, kas nozīmē, ka, izmantojot SVM klasifikatoru, jums bieži būs jāizmanto divas dažādas tehnikas: mīkstās malas un kodola triki. Apsveriet situāciju, kad dažādu klašu datu punkti tiek sajaukti kopā, un daži gadījumi pieder vienai klasei citas klases “klasterā”. Kā jūs varētu likt klasifikatoram rīkoties ar šiem gadījumiem?

Viena taktika, ko var izmantot, lai apstrādātu nelineāri atdalāmas datu kopas, ir “mīkstās robežas” SVM klasifikatora pielietošana. Mīkstais starpības klasifikators darbojas, pieņemot dažus nepareizi klasificētus datu punktus. Tā mēģinās novilkt līniju, kas vislabāk atdala datu punktu kopas vienu no otras, jo tajās ir lielākā daļa gadījumu, kas pieder to attiecīgajām klasēm. Mīkstās robežas SVM klasifikators mēģina izveidot dalījuma līniju, kas līdzsvaro divas klasifikatora prasības: precizitāti un rezervi. Tas mēģinās samazināt nepareizo klasifikāciju, vienlaikus palielinot rezervi.

SVM kļūdu pielaidi var pielāgot, manipulējot ar hiperparametru, ko sauc par “C”. C vērtība kontrolē cik atbalsta vektorus ņem vērā klasifikators, zīmējot lēmumu robežas. C vērtība ir sods, ko piemēro nepareizai klasifikācijai, kas nozīmē, ka jo lielāka ir C vērtība, jo mazāk atbalsta vektoru klasifikators ņem vērā un jo šaurāka ir rezerve.

Kodols apmāna datus un pārveido tos nelineārā veidā. Fotoattēls: Shiyu Ju, izmantojot Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kodola triks darbojas, datu kopas līdzekļiem piemērojot nelineāras transformācijas. Kodola triks izmanto datu kopā esošās funkcijas un rada jaunas funkcijas, izmantojot nelineāras matemātiskas funkcijas. Šo nelineāro transformāciju piemērošanas rezultāts ir nelineāra lēmuma robeža. Tā kā SVM klasifikators vairs neaprobežojas tikai ar lineāru lēmumu robežu zīmēšanu, tas var sākt zīmēt izliektas lēmumu robežas, kas labāk iekapsulē atbalsta vektoru patieso sadalījumu un samazina nepareizās klasifikācijas līdz minimumam. Divi no populārākajiem SVM nelineārajiem kodoliem ir Radial Basis Function un Polynomial. Polinoma funkcija izveido visu esošo pazīmju polinoma kombinācijas, savukārt radiālā pamata funkcija ģenerē jaunas funkcijas, mērot attālumu starp centrālo punktu/punktiem līdz visiem pārējiem punktiem.

Emuāru autors un programmētājs ar specialitātēm Mašīnu mācīšana un Dziļa mācīšanās tēmas. Daniels cer palīdzēt citiem izmantot mākslīgā intelekta spēku sociālā labuma gūšanai.