Tukivektorikone

Wikipediasta
Siirry navigaatioon Siirry hakuun
Tukivektorikoneen yksinkertainen kaavio.

Tukivektorikone (engl. support-vector machine) on 1990-luvulla kehitetty lineaarinen luokitinmalli, joka soveltuu luokitteluun ja käyränsovitustehtävään. Tukivektorikone voidaan toteuttaa neuroverkolla.[1] Tukivektorikoneen yleistämiskyky on MLP-neuroverkkoon verrattuna parempi. Yleistämiskyky kuvaa luokittimen kykyä luokitella ennalta tuntemattomat näytteet oikein.

Perusteet[muokkaa | muokkaa wikitekstiä]

Päätöstaso (keskellä) ja marginaalitasot.

Tukivektorikoneen perusajatus on sovittaa kahden näytejoukon väliin sellainen taso, että sen kanssa yhdensuuntaisten marginaalitasojen välimatka on mahdollisimman suuri eikä yksikään näyte jää marginaalitasojen väliin. Marginaalitasojen välimatkaa rajoittavia näytevektoreita kutsutaan tukivektoreiksi. Luokittelun tulos riippuu ainoastaan näistä tukivektoreista.

Tukivektorikoneen tulee opetuksen jälkeen osata luokitella mielivaltainen näyte. Luokitin opetetaan opetusaineiston perusteella, ja siksi sen hyvyys osaltaan riippuu opetusaineiston hyvyydestä.

Kun opetusjoukot eivät ole separoituvia, käytetään tukivektorikonetoteutusta, jota kutsutaan joustavan marginaalin luokittimeksi. Menetelmä etsii opetusaineistosta ne näytevektorit, jotka määrittävät eri luokkien rajat.

Optimimarginaaliluokitin[muokkaa | muokkaa wikitekstiä]

Optimimarginaaliluokitin on tukivektorikoneen toteutus separoituville näytejoukoille. Optimimarginaaliluokitin määrää päätöstason kahden separoituvan näytejoukon välille. Lisäksi vaaditaan että kummankin luokan päätöstasoa lähimmän pisteen ja päätöstason välinen etäisyys on mahdollisimman suuri. Tämä tarkoittaa sitä että kummankin luokan lyhin etäisyys pintaan nähden on sama, koska kokonaisuuden kannalta lyhin etäisyys määrittyy lähempänä olevan luokan perusteella.

Luokat ovat lineaarisesti separoituvia silloin kun kahden eri luokan yksikäsitteinen erottaminen yhdellä tasolla on mahdollista.

Etsitään piirreavaruuden tasoa siten, että näytevektorille pätee

.

Sovitaan, että luokan pisteitä vastaa :n arvo ja luokan . Muodostetaan yhtälö

,

joka pätee kummankin luokan pisteille. Jos opetustieto koostuu eri pisteestä, jotka ovat , kun , ja ovat niiden vastaavat luokat (joko tai ), niin vaadimme että luokat erottava taso toteuttaa ehdon

.

Näytepisteen euklidinen etäisyys tasoon on

.

Päätöstason löytämiseksi on olemassa useita ratkaisutapoja. Kirjallisuudessa usein esiintyvä ratkaisutapa perustuu neliölliseen optimointiin. Toinen tapa on etsiä kummallekin luokalle konveksipeitteet, ja sen jälkeen etsiä konveksipeitteiden välinen lyhin etäisyys ja tätä vastaavat pisteet ja peitteiden pinnalla. Päätöstason normaalivektori on pisteiden ja erotus vektorin suuntainen, ja on näiden pisteiden keskiarvo.

Ratkaiseminen neliöllisellä optimoinnilla[muokkaa | muokkaa wikitekstiä]

Optimimarginaaliluokitin määritetään ratkaisemalla seuraava neliöllinen optimointiongelma. Ratkaistaan päätöstaso minimoimalla lauseke tason normaalivektorin suhteen ehdolla

.

Muuttuja ratkaistaan ehdosta.

Päätöstason yksiselitteiseen määrittämiseen tarvitsee tuntea kaksi tasoa lähinnä olevaa pistettä ja . Pisteen euklidinen etäisyys tasoon on

,

missä on normalisointitermi.

Taso on yhdensuuntainen tason kanssa, kun , josta seuraa että voidaan valita siten, että pisteille ja . Tällöin euklidisten etäisyyksien summaksi saadaan

.

Tämän seurauksena rajoittamalla reunaehdot annetun tehtävän mukaisesti ja minimoimalla , marginaalitasoilla sijaitsevien pisteiden m ja n etäisyys maksimoituu.

Joustavan marginaalin luokitin[muokkaa | muokkaa wikitekstiä]

Joustavan marginaalin luokitin (C-SVM) optimimarginaaliluokittimen yleistys ei-separoituville näytejoukoille. Lähes kaikissa käytännön luokittelutehtävissä näytejoukot ovat ei-separoituvia. Ei-separoituvuus huomioidaan määrittämällä jokaiselle väärään luokkaan luokittuvalle näytteelle ns. slack-vakio , mikä on näytteen etäisyys päätöspintaan. Vakio , kun näyte luokittuu oikein.

Kahteen luokkaan luokitteleva joustavan marginaalin luokitin määritetään ratkaisemalla neliöllinen optimointiongelma

muuttujien , ja suhteen kun reunaehdot ovat

ja

kun . Ongelma voidaan ratkaista ratkaisemalla Lagrangen menetelmällä konstruoitu duaaliongelma

missä on regularisointitermi ja reunaehdot ovat

ja

missä ovat Lagrangen kertoimet ja .

Epälineaarinen tukivektorikone[muokkaa | muokkaa wikitekstiä]

Coverin teoreeman mukaan kaksi ei-separoituvaa näytejoukkoa separoituvat suuremmalla todennäköisyydellä, kun ne kuvataan epälineaarisesti korkeampiulotteiseen avaruuteen. Tukivektorikoneen suorituskykyä voidaan parantaa kuvaamalla piirreavaruus kernelifunktiolla , joka implisiittisesti määrittelee kuvauksen.

Mercerin teorian perusteella kernelifunktiolle on olemassa sisätuloavaruus jos matriisi on positiivisemidefiniitti ja on symmetrinen funktio, kun kaikille . Luokittelu suoritetaan sisätuloavaruudessa lineaarisesti, mutta päätöspinta kuvautuu piirreavaruuteen epälineaariseksi, kuten ympyräksi tai ellipsiksi radiaalisella kernelifunktiolla. Mercerin teoria mahdollistaa epälineaarisen luokittimen määrittämisen intuitiivisesti.

Mielivaltainen piste luokitellaan luokkaan , kun

ja muussa tapauksessa luokkaan .

Havaitaan, että kun , niin on tukivektori. Näin ollen luokittelu riippuu ainoastaan tukivektoreista.

Kernelifunktiota[muokkaa | muokkaa wikitekstiä]

Yleisimpiä kernelifunktiota ovat

  • polynominen kernelifunktio , kun on positiivinen kokonaisluku
  • radiaalinen kernelifunktio , kun

Polynominen kernelifunktio erottelee piirteet lineaarisesti lähtöavaruudessa kun taas radiaalinen funktio erottelee piirteet lineaarisesti tietyssä korkeaulotteisessa avaruudessa. Lähtöavaruuden näkökulmasta radiaalinen kernelifunktio erottelee näytteet epälineaarisesti ja se voi näin ollen sen suorituskyky on joissain tilainteissa polynomista luokitinta parempi.

Tukivektorikonetoteutuksia[muokkaa | muokkaa wikitekstiä]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  • Haykin, Simon: Neural Networks - A comprehensive foundation 2nd edition, Prentice-Hall, 1999

Viitteet[muokkaa | muokkaa wikitekstiä]

  1. C. Cortes, V. N. Vapnik: Support Vector Networks. Machine Learning, 1995, nro Volume 20, Number 3, s. 273–297.