Luentorunko perjantaille

Samankaltaiset tiedostot
Ohjaamaton oppiminen. Juho Rousu. Laskennallinen Data-Analyysi I,

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Hierarkkinen ryvästäminen

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Mallipohjainen klusterointi

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Algoritmit 1. Luento 1 Ti Timo Männikkö

Luento 2: Viivan toteutus

Datanäytteiden piirteiden skaalaus/normalisointi (1)

Algoritmit 1. Luento 12 Ke Timo Männikkö

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Algoritmit 1. Luento 12 Ti Timo Männikkö

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Ohjaamaton oppiminen. Marko Salmenkivi. Johdatus koneoppimiseen, syksy 2008

Algoritmit 1. Luento 10 Ke Timo Männikkö

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

10. Painotetut graafit

Partikkelit pallon pinnalla

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Algoritmit 1. Luento 14 Ke Timo Männikkö

Sovellettu todennäköisyyslaskenta B

ImageRecognition toteutus

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 12 To Timo Männikkö

Yksinkertainen alustusalgoritmi k:n keskiarvon ryvästysmenetelmää

Algoritmit 2. Luento 13 Ti Timo Männikkö

Partikkelit pallon pinnalla

811312A Tietorakenteet ja algoritmit I Johdanto

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Tietorakenteet ja algoritmit - syksy

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Laskennallinen data-analyysi II

jens 1 matti Etäisyydet 1: 1.1 2: 1.4 3: 1.8 4: 2.0 5: 3.0 6: 3.6 7: 4.0 zetor

811120P Diskreetit rakenteet

Kaksiluokkainen tapaus, lineaarinen päätöspinta, lineaarisesti erottuvat luokat

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Algoritmit 1. Luento 11 Ti Timo Männikkö

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Sovellettu todennäköisyyslaskenta B

811120P Diskreetit rakenteet

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Tekijä Pitkä matematiikka

Algoritmit 1. Luento 10 Ke Timo Männikkö

Sovellusohjelmointi Matlab-ympäristössä: Vertaisverkon koneiden klusterointi

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Kombinatorinen optimointi

Algoritmit 2. Luento 8 To Timo Männikkö

Introduction to Machine Learning

3.4 Peruutus (backtracking)

Algoritmit 2. Luento 12 Ke Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Diskriminanttianalyysi I

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

JOHDATUS TEKOÄLYYN TEEMU ROOS

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Geneettiset algoritmit

Mat Lineaarinen ohjelmointi

Klusterointiongelma. Luento 6: Klusterointi. Usein suotavia ominaisuuksia. Usein suotavia ominaisuuksia

805306A Johdatus monimuuttujamenetelmiin, 5 op

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

10. Painotetut graafit

Moniulotteisia todennäköisyysjakaumia

Algoritmi on periaatteellisella tasolla seuraava:

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Algoritmit 1. Luento 13 Ti Timo Männikkö

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kuvioton metsäsuunnittelu Paikkatietomarkkinat, Helsinki Tero Heinonen

Algoritmit 2. Luento 13 Ti Timo Männikkö

Zeon PDF Driver Trial

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Hierarkkinen klusterointi

Mat Lineaarinen ohjelmointi

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Numeeriset menetelmät

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

Johdatus tekoälyn taustalla olevaan matematiikkaan

Algoritmit 2. Luento 14 Ke Timo Männikkö

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

Algoritmit 2. Luento 7 Ti Timo Männikkö

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

6.4. Järjestyssuhteet

10. Esitys ja kuvaus

JOHDATUS TEKOÄLYYN TEEMU ROOS

Harha mallin arvioinnissa

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia

Sovellettu todennäköisyyslaskenta B

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Johdatus tekoälyn taustalla olevaan matematiikkaan

Tämän luvun sisältö. Luku 6. Hahmontunnistuksen perusteita. Luokittelu (2) Luokittelu

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Transkriptio:

Luentorunko perjantaille 28.11.28 Eräitä ryvästyksen keskeisiä käsitteitä kustannusfunktio sisäinen vaihtelu edustajavektori etäisyysmitta/funktio Osittamiseen perustuva ryvästys (yleisesti) K:n keskiarvon ryvästys (esimerkki osittamiseen perustuvasta ryvästyksestä) Hieman lisää etäisyysfunktiosta

Ryvästyksen kustannusfunktioista Ryvästyksen onnistumista mitataan tyypillisesti kustannusfunktioilla Kustannusfunktiot määritellään lähes poikkeuksetta datapisteiden välisten etäisyyksien perusteella Ryppäiden yhteenlasketun sisäisen vaihtelun (within cluster variation) minimoiminen on yksi mahdollisuus F (C) = K wc(c k ) k=1 Toimii mielekkäästi vain, jos ryppäiden määrä on kiinnitetty edeltäkäsin. Miksi?

Ryppään edustajavektorin määrittely Määrittelemme seuraavassa kustannusfunktion, joka perustuu ryppäiden C 1,..., C K edustajavektoreihin (keskipisteisiin tai keskimmäisiin edustajiin) r 1,..., r K Kukin r k voi olla syöte, joka on jollakin tapaa keskeinen ryppään edustaja, tällöin r k C k Jos syötteet ovat jatkuva-arvoisia, keskiarvon ottaminen voi olla mielekästä: r k = 1 n k x C k x

Ryppään sisäinen vaihtelu Yksinkertainen tapa mitata ryppäiden sisäistä vaihtelua on laskea yhteen kunkin ryppään syötteiden etäisyydet ryppään edustajavektoriin wc(c) = K wc(c k ) = k=1 K k=1 x C k d(x, r k ) wc(c) pyritään minimoimaan, eli ryvästys on siis sitä parempi, mitä lähempänä syötteet ovat ryppään edustajavektoria ratkaisu kuulostanee luontevalta mitä ongelmia voi seurata?

Osittamiseen perustuva ryvästys Annettuna syötejoukko S = {x 1,..., x n } ja kokonaisluku K Tehtävä: etsi syötejoukon ositus K osajoukkoon C = {C 1,..., C K } siten, että 1. osajoukot ovat mahdollisimman homogeenisia 2. kukin syöte x i kuuluu täsmälleen yhteen osajoukkoon C j Homogeenisuutta mitataan kustannusfunktiolla F (C); paras ryvästys on se, joka minimoi kustannusfunktion C = argmin C F (C)

Osittamiseen perustuva ryvästys Käytännössä parhaan ryvästyksen löytäminen on laskennallisesti erittäin raskasta kun K=2, erilaisia klusterointeja on 2 S 1 kappaletta!) mielekkäille arvotusfunktioille NP-kova ongelma, joten ei toivoa tehokkaasta täsmällisestä ratkaisualgoritmista Ongelma ratkaistaan käytännössä heuristisesti

K:n keskiarvon ryvästys (K-means clustering) K:n keskiarvon ryvästys on iteratiiviseen parantamiseen perustuva ryvästysmenetelmä. Aloitetaan satunnaisesta ryvästyksestä, ja muutetaan ryvästystä vaihettain siten, että kustannusfunktion arvo pienenee joka askeleessa Jatketaan kunnes ryvästys ei enää muutu

K :n keskiarvon ryvästys: esimerkki 2 (a) 2 2 2 data Old Faithful -nimisestä kuumasta lähteestä; vaaka-akseli purkauksen kesto, pystyakseli aika seuraavaan purkaukseen (nollakeskiarvoistettuina ja skaalattuina) K -means: sijoitetaan ensin k (tässä k = 2) klusterikeskipiste-ehdokasta satunnaisesti,

K :n keskiarvon ryvästys: esimerkki (2) 2 (b) 2 2 2 assosioidaan kukin datapiste sitä lähinnä olevaan keskipisteeseen

K :n keskiarvon ryvästys: esimerkki (3) 2 (c) 2 2 2 lasketaan klusteriin kuuluvien alkioiden perusteella uudet keskipisteet (edustajavektorit)

K :n keskiarvon ryvästys: esimerkki (4) 2 (d) 2 (e) 2 (f) 2 2 2 2 2 2 2 2 2 iteroidaan näitä vaiheita...

K :n keskiarvon ryvästys: esimerkki (5)... kunnes klusterit eivät enää muutu

Algoritmi (K:n keskiarvon ryvästys) Algorithm K -means(s,k) % alusta keskipisteet r k = satunnainen syöte joukosta S, kaikilla k = 1,..., K ; % muodosta ryppäät k(x) = argmin K k=1 d(x, r k), kaikilla x S C k = {x k(x) = k}, kaikilla k = 1,..., K while muutoksia ryvästyksessä do % laske uudet keskipisteet: r k = 1 C k x, kaikilla k x C k = 1,..., K % muodosta ryppäät: k(x) = argmin K k=1 d(x, r k) kaikilla x S C k = {x k(x) = k} kaikilla k = 1,..., K end while

K-means -algoritmin pysähtyminen Askeltavien algoritmien pysähtyminen ei ole itsestään selvää, periaatteessa voisi olla mahdollista että algoritmi jää oskilloimaan eri ryvästysten välillä. Voidaan kuitenkin osoittaaa, että K-means -algoritmi pysähtyy lokaaliin minimiin.

Aikavaativuus Algoritmi toimii ajassa O(KnI ), missä I on iteraatioiden määrä (while-silmukka) Yhden iteraation vaativuus O(Kn) seuraa argmin-operaation suorittamisesta: kutakin n syötettä verrataan kuhunkin K keskipisteeseen Iteraatioiden määrä I riippuu syötejoukosta ja siitä, miten aloituspisteet alustetaan. Käytännössä on havaittu, että tarvittavien iteraatioiden määrä on pieni Yllä olevassa jätetään etäisyyksien d(x, y) laskennan kustannus huomiotta. Tyypillisesti kustannus on luokkaa O(d), missä d on syötteen piirteiden määrä.

Algoritmin ongelmia: lokaali minimi Vaikka algoritmi pysähtyykin, saatu ratkaisu on herkkä ryppäiden keskipisteiden alustuksen suhteen: algoritmi päätyy herkästi lokaaliin minimiin, jos keskipisteet alustetaan "epäonnekkaasti" Tavallisin ratkaisu ongelmaan on suorittaa algoritmi useaan kertaan eri alkuasetuksilla ryppäiden keskipisteille ja valita tuloksista paras Edistyneempi menetelmä on nk. simuloitu jäähdytys (simulated annealing), jossa algoritmi voi välillä huonontaakin arvotusfunktion arvoa päästäkseen ulos lokaalista minimistä. Haittapuoli on suurempi suoritusaika.

Tulosten visualisointi: rinnakkaiset koordinaatit ongelma: miten klusteroinnin tuloksia visualisoidaan kun data on moniulotteista? yksi ratkaisu: rinnakkaiset koordinaatit (parallel coordinates) tulostuksessa yksi käyrä vastaa yhtä datapistettä (tai vaikkapa kunkin klusterin keskipistettä) eri klusteriin kuuluminen voidaan koodata viivan värillä 2 data 1.5 1 parallel coordinate plot 1 2 3 x 3 1 1 2 2 x 2 2 1 x 1 1 2 Coordinate Value.5.5 1 1.5 1 2 3 Coordinate

Miten valita ryppäiden määrä K? Mallinvalintaongelma (vrt. ohjattu oppiminen) Teoria on valitettavasti vielä suhteellisen kypsymätöntä Ratkaisuvaihtoehtoja Ryppäiden määrän kasvattamisesta sakottaminen, erilaisia kriteerejä esim. Minimum Description Length, MDL: Valitaan ryvästys, joka "pakkaa"datan parhaiten, kun datan kuvaus on ryppäiden keskipisteet + erotusvektori kullekin datapisteelle lähimpään keskipisteeseen erotusvektorit koodataan siten, että lyhyet vektorit saava lyhyen koodin Ryvästyksen stabiilisuus: jos ryppäiden määrä on "oikea", ryvästyksen ei pitäisi muuttua keskimäärin "paljoa", kun opetusaineistoa muutetaan vähän

Miten valita ryppäiden määrä K? "Yritys-ja-erehdys -menetelmä": kokeillaan eri arvoja K = 1, 2,..., n kunnes ryppäiden sisäinen varianssi on riittävän pieni Jos datassa on optimaalinen K, sisäinen varianssi pienenee nopeasti ryppäiden määrillä < K ja sen jälkeen hitaasti Kyynärpääkriteeri x 2 1 5 5 1 1 5 x 1 5 1 J 25 2 15 1 5 2 4 6 8 1 K

Ekskursio: laajennus sekoitemalleihin K:n keskiarvon klusterointi pakottaa jokaisen syötteen yhteen klusteriin kaikki klusteriin kuuluvat syötteet ovat yhtä merkittäviä, kun edustajavektori (keskiarvo) määritetään voisi ajatella, että kahden klusterin rajaa lähellä olevien syötteiden pitäisi vaikuttaa molempiin klustereihin

Ekskursio: laajennus sekoitemalleihin sekoitetodennäköisyysmalleihin perustuvassa klusteroinnissa syötteiden ajatellaan olevan peräisin K :sta lähteestä (esim. K :sta normaalijakaumasta eri parametrein), mutta lähteet ovat latentteja: ei tiedetä mikä syöte on mistäkin lähteestä optimaalinen klusterointi määritellään tyypillisesti sekoitemallin parametrien suurimman uskottavuuden (maximum likelihood) estimaatin avulla käytännössä joudutaan usein tyytymään lokaaliin maksimiin (Expectation Maximization, EM-algoritmi) sekoitemalleista kiinnostuneet voivat tutustua esim. teokseen Bishop: Pattern recognition and machine learning, luku 9.

Ekskursio: EM-algoritmi 2 2 2 L = 1 2 2 2 2 (a) 2 2 (b) 2 2 (c) 2 2 L = 2 2 L = 5 2 L = 2 2 2 2 2 (d) 2 2 (e) 2 2 (f) 2

Etäisyysfunktio klusteroinnissa käsitellään syötteiden välisiä suhteita, euklidinen etäisyys on erikoistapaus tästä etäisyysfunktio on yksi tapa kuvata pisteiden väliset suhteet etäisyysfunktio kuvaa kohteiden {o 1,..., o N } väliset etäisyydet ei-negatiivisina reaalilukuina d(o m, o n ) joskus etäisyysfunktion arvot lasketaan joskus etäisyysfunktio on suoraan lähtödatana esimerkiksi psykologiassa koehenkilöiltä voidaan kysyä suoraan kohteiden välisiä etäisyyksiä;

Syötteiden väliset etäisyydet (1) Joitakin tavallisimpia etäisyysmittoja syötteiden välisille etäisyyksille Euklidinen etäisyys d(x, z) = d j=1 (x j z j ) 2, Manhattan-etäisyys d(x, z) = d j=1 x j z j, Hamming-etäisyys d(x, z) = d Kosini-etäisyys d(x, z) = cos(θ) = j=1 1 x j z j x z x z

Syötteiden väliset etäisyydet (2) etäisyysfunktion määritteleminen on kuitenkin sovelluskohtaista ja heuristista alla pikselikohtaisen K -means (K = 2) klusteroinnin tuloksia kuvalle, joka on esitetty HSV-avaruudessa, eli kutakin pikseliä kohti kolme lukua: H (värisävy), S (värisaturaatio) sekä V (kirkkaus) värisävymuuttuja skaalattu varianssit normalisoitu kertoimella 1 alkuperäinen kuva (mukava valoa etsivälle) (mukava mehiläiselle)

Etäisyys vs. samankaltaisuus joskus lähtötietoina ei ole etäisyyksiä vaan samankaltaisuuksia s(o m, o n ) samankaltaisuudet voidaan muuttaa etäisyyksiksi monotonisesti laskevalla funktiolla 1.8 d=1/(1s+1) d=1 s d=(1 s) 1/2 etäisyys d.6.4.2.2.4.6.8 1 samankaltaisuus s

Etäisyysfunktion räätälöinti Esikäsittelyn sijaan vaihtoehtoinen tapa käsitellä heterogeenistä dataa on räätälöidä etäisyysfunktion laskenta sopivaksi kullekin datatyypille. Tällöin dataa ei muunneta numeeriseen muotoon, vaan datapisteiden etäisyyttä laskettaessa käytetään datatyyppikohtaista etäisyysmittaa. Tehdään kullekin piirretyypille oma etäisyysfunktionsa. esim. seuraavasti Numeeriset piirteet: d(x j, z j ) = (x j z j )/σ j Järjestysasteikon piirteet d(x j, z j ) = rank(x j ) rank(z j ) / rank(maximum) rank(minimum) Nominaaliasteikon piirteet: d(x j, z j ) = 1 {xj z j }

Rakenteiset piirteet Muuttujat voivat olla muutakin kuin yksittäisiä arvoja, niillä voi olla sisäinen rakenne Miten mitata etäisyyttä seuraavissa tapauksissa? Osajoukko: x j { kehärata, kehä II, keskustatunneli, länsimetro} Järjestetty joukko: x j = (1. länsimetro, 2. kehärata, 3. kehä II, 4. keskustatunneli )