Tukivektorikone ( SVM, tukivektorikone ) on joukko samanlaisia valvottuja oppimisalgoritmeja , joita käytetään luokittelu- ja regressioanalyysiongelmiin . Se kuuluu lineaaristen luokittimien perheeseen ja sitä voidaan pitää myös Tihonov-regulaation erikoistapauksena . Tukivektorikoneen erityinen ominaisuus on, että empiirinen luokitteluvirhe pienenee jatkuvasti ja aukko kasvaa, minkä vuoksi menetelmä tunnetaan myös maksimaalisen aukon luokittelumenetelmänä .
Menetelmän pääideana on kääntää alkuperäiset vektorit korkeamman ulottuvuuden avaruuteen ja etsiä erottelevaa hypertasoa, jossa on suurin aukko tässä tilassa. Kaksi rinnakkaista hypertasoa on rakennettu luokat erottavan hypertason molemmille puolille. Erotteleva hypertaso on se hypertaso, joka luo suurimman etäisyyden kahteen rinnakkaiseen hypertasoon. Algoritmi perustuu oletukseen, että mitä suurempi ero tai etäisyys näiden rinnakkaisten hypertasojen välillä on, sitä pienempi luokittelijan keskimääräinen virhe on.
Usein koneoppimisalgoritmeissa tietojen luokittelu on välttämätöntä. Jokainen tietoobjekti esitetään vektorina (pisteenä) -ulotteisessa avaruudessa (järjestetty numerosarja). Kukin näistä pisteistä kuuluu vain toiseen kahdesta luokasta. Kysymys kuuluu, voidaanko pisteet erottaa hypertasolla, jonka ulottuvuus on ( −1). Tämä on tyypillinen lineaarisen erotettavuuden tapaus . Haluttuja hypertasoja voi olla monia, joten uskotaan, että luokkien välisen eron maksimoiminen edistää luokittelun luotettavuutta. Eli onko mahdollista löytää tällainen hypertaso niin, että etäisyys siitä lähimpään pisteeseen on suurin. Tämä vastaa [1] sitä tosiasiaa, että etäisyyksien summa hypertasoon kahdesta sitä lähimmästä pisteestä, jotka sijaitsevat sen vastakkaisilla puolilla, on maksimi. Jos tällainen hypertaso on olemassa, sitä kutsutaan optimaaliseksi erottavaksi hypertasoksi ja sitä vastaavaa lineaarista luokittelijaa kutsutaan optimaaliseksi erottavaksi luokittelijaksi .
Uskomme, että pisteet näyttävät tältä:
missä saa arvon 1 tai −1, riippuen kumpaan luokkaan piste kuuluu . Jokainen on -ulotteinen reaalivektori , joka on tavallisesti normalisoitu tai . Jos pisteitä ei normalisoida, niin piste, jossa on suuria poikkeamia keskimääräisistä pistekoordinaateista, vaikuttaa luokittimeen liikaa. Voimme ajatella tätä harjoitusnäytteenä, jossa jokaiselle elementille on jo annettu luokka, johon se kuuluu. Haluamme, että tukivektorikonealgoritmi luokittelee ne samalla tavalla. Tätä varten rakennamme erottavan hypertason, joka näyttää tältä:
Vektori on kohtisuorassa erottavaan hypertasoon nähden. Parametri on absoluuttisesti yhtä suuri kuin etäisyys hypertasosta origoon. Jos parametri b on nolla, hypertaso kulkee origon läpi, mikä rajoittaa ratkaisua.
Koska olemme kiinnostuneita optimaalisesta erottelusta, olemme kiinnostuneita tukivektoreista ja hypertasoista, jotka ovat yhdensuuntaisia optimaalisen kanssa ja lähinnä kahden luokan tukivektoreita. Voidaan osoittaa, että nämä rinnakkaiset hypertasot voidaan kuvata seuraavilla yhtälöillä (normalisointiin asti).
Jos harjoitusnäyte on lineaarisesti erotettavissa , voimme valita hypertasot siten, että mikään harjoitusnäytteen piste ei ole niiden välissä ja maksimoida hypertasojen välinen etäisyys. Niiden välisen nauhan leveys on helppo löytää geometrisista syistä, se on yhtä suuri kuin [2] , joten tehtävämme on minimoida . Kaikkien pisteiden sulkemiseksi pois nauhasta meidän on varmistettava kaikki tämä
Tämä voidaan kirjoittaa myös näin:
Optimaalisen erottelevan hypertason rakentamisen ongelma on vähennetty minimiin , ehdolla (1). Tämä on neliöllinen optimointiongelma, joka näyttää tältä:
Kuhn-Tuckerin lauseen mukaan tämä ongelma vastaa kaksoisongelmaa Lagrange-funktion satulapisteen löytämisessä.
missä on kaksoismuuttujien vektori.
Pelistämme tämän ongelman vastaavaksi toisen asteen ohjelmointitehtäväksi, joka sisältää vain kaksi muuttujaa:
Oletetaan, että olemme ratkaisseet tämän ongelman, niin se voidaan löytää kaavoilla:
Tämän seurauksena luokitusalgoritmi voidaan kirjoittaa seuraavasti:
Tässä tapauksessa summaamista ei tapahdu koko näytteelle, vaan vain tukivektoreille, joille .
Jotta algoritmi toimisi, jos luokat ovat lineaarisesti erottamattomia, annetaan sen tehdä virheitä harjoitusjoukossa. Otetaan käyttöön joukko lisämuuttujia, jotka kuvaavat objektien virheen suuruutta . Otetaan (2) lähtökohtana, pehmennetään epätasa-arvorajoituksia ja lisätään myös sakko kokonaisvirheestä minimoituun funktioon:
Kerroin on menetelmän asetusparametri, jonka avulla voit säätää erotuskaistan leveyden maksimoimisen ja kokonaisvirheen minimoimisen välistä suhdetta.
Samoin Kuhn-Tuckerin lauseen mukaan pelkistetään ongelma Lagrange-funktion satulapisteen löytämiseen :
Analogisesti vähennämme tämän ongelman vastaavaan:
Käytännössä tukivektorikoneen rakentamiseksi ratkaistaan tämä ongelma, ei (3), koska pisteiden lineaarista erotettavuutta kahteen luokkaan ei yleensä voida taata. Tätä algoritmin muunnelmaa kutsutaan soft-margin SVM-algoritmiksi, kun taas lineaarisesti erotettavissa olevassa tapauksessa puhutaan kovasta marginaalista (hard-margin SVM).
Luokittelualgoritmille säilytetään kaava (4) sillä ainoalla erolla, että nyt ei vain viiteobjekteilla, vaan myös rikkovilla objekteilla on nollasta poikkeavat arvot. Tietyssä mielessä tämä on haitta, koska melupiikit ovat usein rikoksentekijöitä ja niihin rakennettu päätössääntö itse asiassa nojaa meluun.
Vakio C valitaan yleensä liukuohjauksen kriteerin mukaan. Tämä on työläs menetelmä, koska tehtävä on ratkaistava uudelleen jokaiselle C:n arvolle.
Jos on syytä uskoa, että näyte on lähes lineaarisesti erotettavissa ja vain outlier-objektit luokitellaan väärin, voidaan käyttää outlier-suodatusta. Ensin ongelma ratkaistaan jollekin C:lle ja pieni osa objekteista, joilla on suurin virhearvo, poistetaan näytteestä . Sen jälkeen ongelma ratkaistaan uudelleen katkaistulla näytteellä. Saattaa olla tarpeen tehdä useita tällaisia iteraatioita, kunnes loput objektit ovat lineaarisesti erotettavissa.
Vladimir Vapnikin ja Aleksei Chervonenkiksen vuonna 1963 ehdottama algoritmi optimaalisen erottavan hypertason muodostamiseksi on lineaarinen luokittelualgoritmi. Kuitenkin vuonna 1992 Bernhard Boser, Isabelle Guyon ja Vapnik ehdottivat menetelmää epälineaarisen luokittelun luomiseksi, joka perustuu siirtymiseen skalaarituloksista mielivaltaisiin ytimiin, niin sanottua ydintemppua (jota ehdottivat ensimmäistä kertaa M. A. Aizerman , E. M. Braverman ja L. I. Rozonoer mahdollisten funktioiden menetelmälle), joka mahdollistaa epälineaaristen erottimien rakentamisen. Tuloksena oleva algoritmi on hyvin samanlainen kuin lineaarinen luokittelualgoritmi, sillä ainoa ero on, että jokainen skalaaritulo yllä olevissa kaavoissa korvataan epälineaarisella ydinfunktiolla (skalaaritulo avaruudessa, jolla on suurempi ulottuvuus). Tässä tilassa voi jo olla optimaalinen erottava hypertaso. Koska tuloksena olevan avaruuden mitta voi olla suurempi kuin alkuperäisen, skalaarituloja vastaava muunnos on epälineaarinen, mikä tarkoittaa, että alkuperäisen avaruuden optimaalista erottavaa hypertasoa vastaava funktio on myös epälineaarinen.
Jos alkuperäinen tila on riittävän suuri, näyte voi olla lineaarisesti erotettavissa.
Yleisimmät ytimet:
Keinotekoisten neuroverkkojen tyypit | |
---|---|
|
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|