next up previous contents
Next: Virhemittoja Up: Opetusalgoritmi Previous: Perusalgoritmi

Eräalgoritmi (Batch Map)

Opetusalgoritmista on voidaan laatia versio, jossa yhdellä opetusaskeleella käydään läpi koko datajoukko.

Oletetaan, että naapurustofunktio h=1, jos datavektori $\bf x$kuuluu yksikön ${\bf n}_c$ topologiseen naapurustoon Ni ja on muutoin nolla -- esimerkiksi kuplanaapurusto on tällainen. Voidaan osoittaa, että karttayksiköiden tasapainoasema on implisiittisesti määriteltynä ${\bf m}^*_i=E[{\bf x}\vert{\bf x}\in V_i]$, jossa vaikutusalue Vi on se data-avaruuden osa, jolle sattuvat vektorit pystyvät päivittämään mallivektoria ${\bf m}_i$ eli ${\bf n}_c \in
N_i$. Mallivektorin tasapainoasema on siis vaikutusalueen datan ehdollinen odotusarvo. Jos h on jokin muu kuin kuplanaapurusto, lasketaan odotusarvo naapurustofunktiolla painotetuista näytteistä.

Soveltamalla K-means-algoritmin [10] tapaista menettelyä saadaan itseorganisoituvalle kartalle seuraavanlainen eräalgoritmi.

1.
Alustetaan mallivektorit.
2.
Lasketaan kullekin karttayksikölle ${\bf n}_i$ naapurustofunktiolla h painotettu keskiarvo ${\bf m}^*_i$ datasta vaikutusalueella.
3.
Asetetaan kaikille yksiköille ${\bf m}^{uusi}_i={\bf m}^*_i$.
4.
Toistetaan askeleesta 2.

Algoritmissa ei määrätä oppimisnopeusparametria. Kun naapuruston säde on nolla, keskiarvo lasketaan vain datasta, jolle ${\bf n}_i$ on voittajayksikkö. Tällöin algoritmi on sama kuin K-means. Eräalgoritmi toimii tehokkaasti, jos kartta on jo aluksi karkeasti järjestynyt. Mallivektorit on siis syytä alustaa lineaarisesti.



Johan Himberg
12/11/1997