tynkä Mitä tukivektorikoneet ovat? - Unite.AI
Liity verkostomme!

AI 101

Mitä tukivektorikoneet ovat?

mm
Päivitetty on

Mitä tukivektorikoneet ovat?

Tukivektorikoneet ovat eräänlainen koneoppimisen luokitin, joka on luultavasti yksi suosituimmista luokittelijoista. Tukivektorikoneet ovat erityisen hyödyllisiä numeeriseen ennustamiseen, luokitteluun ja kuvioiden tunnistustehtäviin.

Tukivektorikoneet toimivat piirtämällä päätösrajoja datapisteiden välille ja pyrkien siihen päätösrajaan, joka parhaiten erottaa datapisteet luokkiin (tai on yleistettävin). Tukivektorikonetta käytettäessä tavoitteena on, että pisteiden välinen päätösraja on mahdollisimman suuri, jotta minkä tahansa datapisteen ja rajaviivan välinen etäisyys on maksimoitu. Se on nopea selitys kuinka tukivektorikoneita (SVM) SVM:ien toimintaan, mutta vietetään aikaa syvemmälle SVM:ien toimintaan ja niiden toiminnan taustalla olevan logiikan ymmärtämiseen.

Tavoitteena tukea vektorikoneita

Kuvittele kaavio, jossa on useita datapisteitä X- ja Y-akselien määrittämien ominaisuuksien perusteella. Kuvaajan datapisteet voidaan löyhästi jakaa kahteen eri klusteriin, ja klusteri, johon datapiste kuuluu, ilmaisee datapisteen luokan. Oletetaan nyt, että haluamme piirtää kaavion alaspäin viivan, joka erottaa nämä kaksi luokkaa toisistaan ​​siten, että kaikki yhden luokan datapisteet löytyvät viivan toiselta puolelta ja kaikki toiseen luokkaan kuuluvat datapisteet löytyvät toiselta puolelta. linjasta. Tämä erotusviiva tunnetaan hypertasona.

Voit ajatella tukivektorikonetta luovan "teitä" koko kaupunkiin, jakaen kaupungin kaupunginosiksi tien molemmin puolin. Kaikki tien toisella puolella sijaitsevat rakennukset (tietopisteet) kuuluvat yhteen kaupunginosaan.

Tukivektorikoneen tavoitteena ei ole vain piirtää hypertasoja ja jakaa datapisteitä, vaan piirtää hypertasolle ne erottavat datapisteet, joilla on suurin marginaali tai eniten tilaa jakoviivan ja minkä tahansa datapisteen välillä. Palatakseni "teiden" metaforaan, jos kaupunkisuunnittelija piirtää moottoritielle suunnitelmia, hän ei halua moottoritien olevan liian lähellä taloja tai muita rakennuksia. Mitä enemmän marginaalia moottoritien ja molemmilla puolilla olevien rakennusten välillä, sitä parempi. Mitä suurempi tämä marginaali on, sitä "luottamustavampi" luokittelija voi olla ennusteistaan. Binääriluokituksen tapauksessa oikean hypertason piirtäminen tarkoittaa sellaisen hypertason valintaa, joka on juuri kahden eri luokan keskellä. Jos päätösraja/hypertaso on kauempana yhdestä luokasta, se on lähempänä toista. Siksi hypertason on tasapainotettava marginaali kahden eri luokan välillä.

Erottelevan hypertason laskeminen

Joten miten tukivektorikone määrittää parhaan erottavan hypertason/päätösrajan? Tämä saavutetaan laskemalla mahdolliset hypertasot matemaattisen kaavan avulla. Emme käsittele hypertasojen laskentakaavaa äärimmäisen yksityiskohtaisesti, mutta viiva lasketaan kuuluisalla kaltevuus/viivakaavalla:

Y = ax + b

Sillä välin viivoja tehdään pisteistä, mikä tarkoittaa, että mitä tahansa hypertasoa voidaan kuvata seuraavasti: Pisteiden joukko, jotka kulkevat samansuuntaisesti ehdotetun hypertason kanssa, määritettynä mallin painojen avulla kerrottuna ominaisuuksien joukolla, jota on muokattu määritetyllä siirtymällä/biasilla. ("d").

SVM:t piirtävät monia hypertasoja. Esimerkiksi rajaviiva on yksi hypertaso, mutta luokittelijan huomioimat tietopisteet ovat myös hypertasoilla. X:n arvot määritetään tietojoukon ominaisuuksien perusteella. Jos sinulla on esimerkiksi tietojoukko, joka sisältää useiden ihmisten pituudet ja painot, "X"-arvon laskemiseen käytettäisiin "pituus"- ja "paino"-ominaisuuksia. Ehdotetun hypertason ja jakavan hypertason molemmin puolin löydettyjen eri "tukivektorien" (tietopisteiden) väliset marginaalit lasketaan seuraavalla kaavalla:

L * X – b

Vaikka voit lukea lisää SVM:ien takana olevasta matematiikasta, jos etsit intuitiivisempaa ymmärrystä niistä, tiedä vain, että tavoitteena on maksimoida etäisyys ehdotetun erottavan hypertason/rajaviivan ja muiden hypertasojen välillä, jotka kulkevat sen rinnalla ( ja joista datapisteet löytyvät).

Kuva: ZackWeinberg Wikimedia Commonsin kautta, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Moniluokkainen luokitus

Tähän mennessä kuvattu prosessi koskee binääriluokittelutehtäviä. SVM-luokittajia voidaan kuitenkin käyttää myös ei-binäärisiin luokitustehtäviin. Kun SVM-luokitus tehdään tietojoukolle, jossa on vähintään kolme luokkaa, käytetään enemmän rajaviivoja. Jos esimerkiksi luokitustehtävässä on kolme luokkaa kahden sijasta, kahta jakoviivaa käytetään datapisteiden jakamiseen luokkiin ja yhden luokan sisältävä alue jää kahden jakoviivan väliin yhden sijasta. Sen sijaan, että luokittelija laskeisi vain kahden luokan ja päätösrajan välisen etäisyyden, luokittelijan on nyt otettava huomioon marginaalit päätösrajojen ja tietojoukon useiden luokkien välillä.

Epälineaariset erotukset

Yllä kuvattu prosessi koskee tapauksia, joissa tiedot ovat lineaarisesti erotettavissa. Huomaa, että todellisuudessa tietojoukot eivät ole lähes koskaan täysin lineaarisesti erotettavissa, mikä tarkoittaa, että SVM-luokittajaa käytettäessä joudut usein käyttämään kaksi eri tekniikkaa: pehmeä marginaali ja ytimen temppuja. Tarkastellaan tilannetta, jossa eri luokkien datapisteet sekoitetaan keskenään, jolloin jotkut esiintymät kuuluvat yhteen luokkaan toisen luokan "klusterissa". Miten luokittelija voisi käsitellä näitä tapauksia?

Eräs taktiikka, jota voidaan käyttää käsittelemään epälineaarisesti erotettavia tietojoukkoja, on "pehmeän marginaalin" SVM-luokittajan soveltaminen. Pehmeä marginaaliluokitin toimii hyväksymällä muutamia väärin luokiteltuja tietopisteitä. Se yrittää piirtää viivan, joka parhaiten erottaa tietopisteiden klusterit toisistaan, koska ne sisältävät suurimman osan vastaaviin luokkiinsa kuuluvista esiintymistä. Pehmeä marginaali SVM-luokitin yrittää luoda jakoviivan, joka tasapainottaa luokittelijan kaksi vaatimusta: tarkkuus ja marginaali. Se yrittää minimoida virheellisen luokituksen ja samalla maksimoida marginaalin.

SVM:n virhetoleranssia voidaan säätää käsittelemällä hyperparametria nimeltä “C”. C-arvo ohjaa kuinka monta tukivektoria luokittelija ottaa huomioon piirtäessään päätösrajoja. C-arvo on virheluokittelusta sovellettu rangaistus, eli mitä suurempi C-arvo, sitä vähemmän tukivektoreita luokitin ottaa huomioon ja sitä kapeampi marginaali on.

Ydin huijaa dataa ja muuntaa sen epälineaarisella tavalla. Kuva: Shiyu Ju Wikmedia Commonsin kautta, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick toimii soveltamalla epälineaarisia muunnoksia tietojoukon ominaisuuksiin. Ytimen temppu hyödyntää tietojoukossa olevia ominaisuuksia ja luo uusia ominaisuuksia epälineaaristen matemaattisten funktioiden avulla. Mitä näiden epälineaaristen muunnosten soveltamisesta seuraa, on epälineaarinen päätösraja. Koska SVM-luokitin ei enää rajoitu lineaaristen päätösrajojen piirtämiseen, se voi alkaa piirtää kaarevia päätösrajoja, jotka kapseloivat paremmin tukivektorien todellisen jakauman ja minimoivat virheelliset luokitukset. Kaksi suosituimmista epälineaarisista SVM-ytimistä ovat Radial Basis Function ja Polynomial. Polynomifunktio luo polynomiyhdistelmiä kaikista olemassa olevista piirteistä, kun taas säteittäinen perusfunktio luo uusia ominaisuuksia mittaamalla keskipisteen/pisteiden välisen etäisyyden kaikkiin muihin pisteisiin.

Bloggaaja ja ohjelmoija erikoisaloilla Koneen oppiminen ja Deep Learning aiheita. Daniel toivoo voivansa auttaa muita käyttämään tekoälyn voimaa yhteiskunnalliseen hyvään.