AI:n perusteet
MitkÃĪ ovat tukivektorikoneet?
MitkÃĪ ovat tukivektorikoneet?
Tukivektorikoneet ovat tyyppi konenÃĪkÃķluokittelijoista, jotka ovat yksi suosituimmista luokittelijoista. Tukivektorikoneet ovat erityisen hyÃķdyllisiÃĪ numeerisen ennusteen, luokittelun ja mallintunnistamistehtÃĪvien suorittamiseen.
Tukivektorikoneet toimivat piirtÃĪmÃĪllÃĪ pÃĪÃĪtÃķsrajoja datapisteiden vÃĪlille, pyrkien siihen, ettÃĪ pÃĪÃĪtÃķsraja on paras mahdollinen ja ettÃĪ se erottaa datapisteet luokkiin (tai on yleisesti ottaen paras). Tukivektorikoneen tavoitteena on, ettÃĪ pÃĪÃĪtÃķsraja datapisteiden vÃĪlillÃĪ on mahdollisimman suuri, jotta etÃĪisyys minkÃĪ tahansa datapisteen ja rajan vÃĪlillÃĪ on maksimoitu. TÃĪmÃĪ on nopea selitys siitÃĪ, miten tukivektorikoneet (SVM) toimivat, mutta otetaan hieman aikaa tutkimaan, miten SVM:t toimivat ja ymmÃĪrtÃĪmÃĪÃĪn logiikkaa niiden toiminnassa.
Tukivektorikoneiden tavoite
Kuvitellaan graafi, jossa on useita datapisteitÃĪ, jotka perustuvat X- ja Y-akseleiden mÃĪÃĪrittÃĪmiin ominaisuuksiin. Datapisteet graafissa voidaan karkeasti jakaa kahteen eri ryhmÃĪÃĪn, ja ryhmÃĪ, johon datapiste kuuluu, osoittaa datapisteen luokan. Oletetaan, ettÃĪ haluamme piirtÃĪÃĪ graafiin viivan, joka erottaa kaksi luokkaa toisistaan, jotta kaikki datapisteet, jotka kuuluvat yhteen luokkaan, ovat toisella puolella viivaa ja datapisteet, jotka kuuluvat toiseen luokkaan, ovat toisella puolella viivaa. TÃĪmÃĪ erottava viiva on hyperplane.
Voi ajatella tukivektorikoneen luovan âteitÃĪâ kaupungin lÃĪpi, jakavat kaupungin eri alueisiin. Kaikki rakennukset (datapisteet), jotka sijaitsevat tiellÃĪ, kuuluvat yhteen alueeseen.

Tukivektorikoneen tavoitteena ei ole ainoastaan piirtÃĪÃĪ hyperplaneja ja erottaa datapisteitÃĪ, vaan piirtÃĪÃĪ hyperplane, joka erottaa datapisteet suurimmalla marginaalilla, eli suurimmalla etÃĪisyydellÃĪ jakoviivasta ja minkÃĪ tahansa datapisteestÃĪ. Palataan âteidenâ metaforaan, jos kaupunkisuunnittelija piirtÃĪÃĪ suunnitelman moottoritielle, hÃĪn ei halua, ettÃĪ moottoritie on liian lÃĪhellÃĪ taloja tai muita rakennuksia. MitÃĪ suurempi marginaali moottoritien ja rakennusten vÃĪlillÃĪ on, sitÃĪ parempi. MitÃĪ suurempi tÃĪmÃĪ marginaali on, sitÃĪ varmemmin luokittelija voi olla ennusteistaan. BinÃĪÃĪrisessÃĪ luokittelussa oikean hyperplanen valitseminen tarkoittaa, ettÃĪ hyperplane on valittu niin, ettÃĪ se on keskellÃĪ kahta eri luokkaa. Jos pÃĪÃĪtÃķsraja/hyperplane on kauempana toisesta luokasta, se on lÃĪhempÃĪnÃĪ toista luokkaa. Siksi hyperplanen on oltava tasapainossa marginaalin vÃĪlillÃĪ kahta eri luokkaa.
Erottavan hyperplanen laskeminen
Miten tukivektorikone mÃĪÃĪrittÃĪÃĪ parhaan erottavan hyperplanen/pÃĪÃĪtÃķsrajan? TÃĪmÃĪ saavutetaan laskemalla mahdollisia hyperplaneja matemaattisella kaavalla. Emme kÃĪy tÃĪssÃĪ tarkasti lÃĪpi hyperplanen laskemisen kaavaa , mutta viiva lasketaan kuuluisalla kulma/linjan kaavalla:
Y = ax + b
Linjat koostuvat pisteistÃĪ, mikÃĪ tarkoittaa, ettÃĪ mikÃĪ tahansa hyperplane voidaan kuvailla pisteiden joukkona, jotka ovat rinnakkaisia ehdotetun hyperplanen kanssa, kuten mallin painot ja mÃĪÃĪritetyllÃĪ siirtymÃĪllÃĪ/biassilla (âdâ) muokatun ominaisuusjoukon avulla.
Tukivektorikoneet piirtÃĪvÃĪt useita hyperplaneja. Esimerkiksi rajaviiva on yksi hyperplane, mutta luokittelijan kÃĪyttÃĪmÃĪt datapisteet ovat myÃķs hyperplaneilla. X-arvon mÃĪÃĪrittÃĪminen perustuu ominaisuuksiin, jotka on mÃĪÃĪritelty datasetissÃĪ. Esimerkiksi, jos sinulla on datasetti, jossa on ihmisten pituudet ja painot, âpituusâ ja âpainoâ ominaisuudet olisivat ominaisuuksia, joita kÃĪytetÃĪÃĪn âXâ:n laskemiseen. Hyperplanen ja eri âtukivektorienâ (datapisteiden) vÃĪlisen marginaalin laskeminen perustuu seuraavaan kaavaan:
W * X â b
Voit lukea lisÃĪÃĪ SVM:n takana olevasta matematiikasta, mutta jos etsit intuitiivisempaa ymmÃĪrrystÃĪ niistÃĪ, tiedÃĪ, ettÃĪ tavoitteena on maksimoida etÃĪisyys ehdotetun erottavan hyperplanen/rajan ja muiden hyperplanejen vÃĪlillÃĪ, jotka ovat rinnakkaisia sille (ja joilla datapisteet sijaitsevat).

Kuva: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Moniluokkainen luokittelu
EdellÃĪ kuvattu prosessi koskee binÃĪÃĪrisiÃĪ luokittelutehtÃĪviÃĪ. Kuitenkin SVM-luokittelijoita voidaan kÃĪyttÃĪÃĪ myÃķs ei-binÃĪÃĪrisissÃĪ luokittelutehtÃĪvissÃĪ. Kun tehdÃĪÃĪn SVM-luokittelua datasettiin, jossa on kolme tai useampi luokka, kÃĪytetÃĪÃĪn useampia jakoviivoja. Esimerkiksi, jos luokittelutehtÃĪvÃĪllÃĪ on kolme luokkaa, kÃĪytetÃĪÃĪn kahta jakoviivaa datapisteiden jakamiseen luokkiin, ja alue, joka kuuluu yhteen luokkaan, sijaitsee kahden jakoviivan vÃĪlissÃĪ. Sen sijaan, ettÃĪ lasketaan vain etÃĪisyys kahden luokan ja pÃĪÃĪtÃķsrajan vÃĪlillÃĪ, luokittelijan on otettava huomioon marginaalit pÃĪÃĪtÃķsrajojen ja useiden luokkien vÃĪlillÃĪ datasetissÃĪ.
Ei-lineaariset erot
EdellÃĪ kuvattu prosessi koskee tapauksia, joissa data on lineaarisesti erottuvaa. Huomaa, ettÃĪ kÃĪytÃĪnnÃķssÃĪ datasetit eivÃĪt ole koskaan tÃĪysin lineaarisesti erottuvia, mikÃĪ tarkoittaa, ettÃĪ tukivektorikoneen kÃĪytÃķn aikana on usein kÃĪytettÃĪvÃĪ kahta eri tekniikkaa: pehmeÃĪ marginaali ja kernel-temppu. Mieti tilannetta, jossa datapisteet eri luokista ovat sekoittuneina, ja joitakin esiintymisiÃĪ kuuluu toiseen luokkaan âtoisen luokanâ ryhmÃĪssÃĪ. Miten luokittelija voisi kÃĪsitellÃĪ nÃĪmÃĪ esiintymÃĪt?
Yksi taktiikka, jota voidaan kÃĪyttÃĪÃĪ ei-lineaarisesti erottuvien datasetien kÃĪsittelyyn, on pehmeÃĪn marginaalin tukivektorikoneen soveltaminen. PehmeÃĪ marginaali -luokittelija toimii hyvÃĪksymÃĪllÃĪ joitakin vÃĪÃĪrin luokiteltuja datapisteitÃĪ. Se yrittÃĪÃĪ piirtÃĪÃĪ viivan, joka parhaiten erottaa datapisteiden ryhmÃĪt toisistaan, koska ne sisÃĪltÃĪvÃĪt useimmat esiintymÃĪt, jotka kuuluvat niiden luokkiin. PehmeÃĪ marginaali -luokittelija yrittÃĪÃĪ luoda jakoviivan, joka tasapainottaa luokittelijan kaksi vaatimusta: tarkkuuden ja marginaalin. Se yrittÃĪÃĪ minimoida vÃĪÃĪrinluokittelun samalla, kun se maksimoi marginaalin.
Tukivektorikoneen virhetoleranssi voidaan sÃĪÃĪtÃĪÃĪ muuttamalla hyperparametria âCâ:n arvoa. C-arvo ohjaa sitÃĪ, kuinka monta tukivektoria luokittelija ottaa huomioon piirtÃĪessÃĪÃĪn pÃĪÃĪtÃķsrajoja. C-arvo on rangaistus, jota sovelletaan vÃĪÃĪrinluokitteluun, mikÃĪ tarkoittaa, ettÃĪ mitÃĪ suurempi C-arvo on, sitÃĪ vÃĪhemmÃĪn tukivektoreita luokittelija ottaa huomioon ja sitÃĪ kapeampi marginaali on.

Kernel-temppu muuttaa datan ei-lineaarisesti ja muuttaa sitÃĪ. Kuva: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
Kernel-temppu toimii soveltamalla ei-lineaarisia matemaattisia funktioita datasetin ominaisuuksiin. Kernel-temppu ottaa olemassa olevat ominaisuudet datasetistÃĪ ja luo uusia ominaisuuksia soveltamalla ei-lineaarisia matemaattisia funktioita. TÃĪmÃĪn seurauksena on ei-lineaarinen pÃĪÃĪtÃķsraja. Koska tukivektorikoneen luokittelija ei ole enÃĪÃĪ rajoitettu piirtÃĪmÃĪÃĪn lineaarisia pÃĪÃĪtÃķsrajoja, se voi alkaa piirtÃĪÃĪ kaarevia pÃĪÃĪtÃķsrajoja, jotka paremmin kuvaavat tukivektoreiden todellisen jakautumisen ja vÃĪhentÃĪvÃĪt vÃĪÃĪrinluokittelua. Kaksi suosituinta ei-lineaarista SVM-ydintÃĪ ovat Radiaalinen Basisfunktio ja Polynomi. Polynomifunktio luo polynomisia yhdistelmiÃĪ kaikista olemassa olevista ominaisuuksista, kun taas Radiaalinen Basisfunktio luo uusia ominaisuuksia mittaamalla etÃĪisyyden keskipisteen/pisteiden ja muiden pisteiden vÃĪlillÃĪ.












