Jeremias Penttilä. Koneoppiminen. Tietotekniikan kandidaatintutkielma. 2. elokuuta Jyväskylän yliopisto. Tietotekniikan laitos

Samankaltaiset tiedostot
TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Tee-se-itse -tekoäly

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

E. Oja ja H. Mannila Datasta Tietoon: Luku 2

Johdatus tekoälyn taustalla olevaan matematiikkaan

Introduction to Machine Learning

Luku 2. Datasta tietoon: mitä dataa? mitä tietoa?

Kognitiivinen mallintaminen. Nelli Salminen

Koneoppiminen ja tekoäly suurten tietomassojen käsittelyssä yleensä ja erityisesti sovellettuina satelliittidatan käyttöön metsien arvioinnissa

Tekoäly ja sen soveltaminen yrityksissä. Mika Rantonen

805306A Johdatus monimuuttujamenetelmiin, 5 op

Tiedonlouhinta ja sen mahdollisuudet

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö

Älykäs datan tuonti kuljetusongelman optimoinnissa. Antoine Kalmbach

T DATASTA TIETOON

Tekoäly liiketoiminnassa. Tuomas Ritola CEO, selko.io

Oppijan saama palaute määrää oppimisen tyypin

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

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

JUHTA ja VAHTI juhlatilaisuus, Tietojärjestelmien tulevaisuudesta tekoälyn kehityksen näkökulmasta. Timo Honkela.

Johdatus tekoälyn taustalla olevaan matematiikkaan

Tarvitseeko informaatioteknologia matematiikkaa?

Laskut käyvät hermoille

Tekoäly tukiäly. Eija Kalliala, Marjatta Ikkala

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

Poikkeavuuksien havainnointi (palvelinlokeista)

Tekoäly tänään , Vadim Kulikov (Helsingin Yliopisto)

ALGORITMIT & OPPIMINEN

Kombinatorinen optimointi

Tilastotiede ottaa aivoon

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

Puheentunnistus. Joel Pyykkö 1. 1 DL-AT Consulting

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

KONEOPPIMISEN HYÖDYNTÄMINEN: AUTOMAATTINEN TIKETTIEN KÄSITTELY. Esa Sairanen

Ongelma(t): Miten digitaalista tietoa voidaan toisintaa ja visualisoida? Miten monimutkaista tietoa voidaan toisintaa ja visualisoida?

Tänään ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus laskarit. Ensi kerralla (11.3.)

DOB valmennus Data-analyysi. Koneoppiminen. CC by

Gradu UASI-hankkeesta

Tekoäly ja koneoppiminen metsävaratiedon apuna

Tilastotiede ottaa aivoon

Ryhmäfaktorianalyysi neurotiedesovelluksissa (Valmiin työn esittely) Sami Remes Ohjaaja: TkT Arto Klami Valvoja: Prof.

Tekoäly muuttaa arvoketjuja

TIETOJENKÄSITTELYTIEDE

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Diskriminanttianalyysi I

UUDET INNOVAATIOT. Professori Heikki Kälviäinen Koulutusohjelman johtaja Laitoksen johtaja

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises

ImageRecognition toteutus

Muuttaako tekoäly maailmaa - ja miten? Kansainvälinen Telepäivä

ELEC-C5210 Satunnaisprosessit tietoliikenteessä

Autamme asiakkaitamme menestymään parantamalla tekemisen luottamustasoa ja läpinäkyvyyttä uusilla innovatiivisilla konsepteilla ja ratkaisuilla.

Datatähti 2019 loppu

Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely)

Logistinen regressio, separoivat hypertasot

Tulevaisuuden ja kehitteillä olevat tekniikat (FET)

Tietotekniikan valintakoe

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

Tiedonsiirron kokonaisoptimointi erilaisten tietoverkkojen yhteiskäytössä

Simulation model to compare opportunistic maintenance policies

ACUMEN O2: Verkostot

SFS/SR315 Tekoäly Tekoälyn standardisointi

805306A Johdatus monimuuttujamenetelmiin, 5 op

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Siltaaminen: Piaget Matematiikka Inductive Reasoning OPS Liikennemerkit, Eläinten luokittelu

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v alusta Luonnonvarakeskus / Luke)

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

Viimeistely Ajourien huomiointi puutiedoissa ja lopullinen kuviointi. Metsätehon tuloskalvosarja 5/2018 LIITE 4 Timo Melkas Kirsi Riekki Metsäteho Oy

Johdatus tekoälyn taustalla olevaan matematiikkaan

matematiikka Tapio Helin Nuorten akatemiaklubi Helsinki Matematiikan ja tilastotieteen laitos

Tietorakenteet ja algoritmit

NBE-E4510 Special Assignment in Biophysics and Biomedical Engineering AND NBE-E4500 Special Assignment in Human. NBE-E4225 Cognitive Neuroscience

Matematiikka ja tilastotiede. Orientoivat opinnot /

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

MATINE-projekti 2500M-0069: Tietotekniset harhautukset (ICT Illusions)

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä.

pitkittäisaineistoissa

S09 04 Kohteiden tunnistaminen 3D datasta

TERVEISET OPETUSHALLITUKSESTA

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia.

Robotit ja tekoäly terveydenhuollon työvälineinä nyt ja tulevaisuudessa työn tutkimukseen perustuva näkökulma

CHERMUG-pelien käyttö opiskelijoiden keskuudessa vaihtoehtoisen tutkimustavan oppimiseksi

Näkökulmia tietoyhteiskuntavalmiuksiin

Taitava taitoharjoittelu kehittymisen tukena Sami Kalaja

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Geneettiset algoritmit

Edistyksen päivät, Helsinki. Voiko tutkija muuttaa maailmaa? Humanistista meta-analyysiä merkitysneuvottelevien koneiden avulla.

Kandidaatintyön esittely: Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu

Avainsanojen poimiminen Eeva Ahonen

Transkriptio:

Jeremias Penttilä Koneoppiminen Tietotekniikan kandidaatintutkielma 2. elokuuta 2015 Jyväskylän yliopisto Tietotekniikan laitos

Tekijä: Jeremias Penttilä Yhteystiedot: jeremias.f.penttila@student.jyu.fi Työn nimi: Koneoppiminen Title in English: Machine learning Työ: Kandidaatintutkielma Sivumäärä: 22+0 Tiivistelmä: Koneoppiminen on monipuolinen ja tehokas työkalu erilaisiin tehtäviin. Tässä tutkielmassa on tarkoituksena tutustua sekä ohjatun että ohjaamattoman oppimisen yleisimpiin menetelmiin. Tarkoituksena on käsitellä nämä menetelmät yleisellä tasolla niin, että asiasta tietämätön ymmärtää perusperiaatteet miten eri menetelmät toimivat. Tarkempia yksityiskohtia ja matemaattisia algoritmejä ei tulla käsittelemään. Avainsanat: Koneoppiminen, ohjattu oppiminen, ohjaamaton oppiminen, neuroverkot, itseorganisoituvat kartat, klusterointi, adaptive resonance theory, art Abstract: Machine learning is powerfull and versatile tool for a multitude of tasks. The point of this study is to familiarize oneself with a couple of different methods of both supervised and unsupervised machine learning, so that anyone can understand the basic principles behind the different methods. We will not go into details, nor will we explain the mathematical algorithms behind these methods. Keywords: Machine learning, supervised learning, unsupervised learning, neural networks, self-organizing maps, clustering, adaptive resonance theory, art i

Kuviot Kuvio 1. Ohjatun oppimisen työnkulku (lähde: Googlen kuvahaku)... 4 Kuvio 2. Esimerkki päätöspuusta... 5 Kuvio 3. Yksinkertainen Bayes-verkko (lähde: Googlen kuvahaku)... 6 Kuvio 4. Markovin piilomalli esimerkki (lähde: Googlen kuvahaku)... 7 Kuvio 5. Optimaalinen hypertaso tulosavaruudessa (lähde: Googlen kuvahaku)... 8 Kuvio 6. K-lähintä naapuria esimerkki (lähde: Googlen kuvahaku)... 9 Kuvio 7. Voronoi-diagrammi ennen Lloydin algoritmia, ja sen jälkeen (lähde:wikipedia, Lloyd s algorithm)... 11 Kuvio 8. K-means algoritmi ja DBSCAN-algoritmi sovellettuna samaan pistejoukkoon (lähde: Googlen kuvahaku, DBSCAN vs k-means)... 12 Kuvio 9. Neuroverkko-malli... 13 Kuvio 10. Itseorganisoituvan kartan opetusprosessi... 14 ii

Sisältö 1 JOHDANTO... 1 2 KONEOPPIMINEN YLEISESTI... 3 3 OHJATTU OPPIMINEN... 4 3.1 Päätöspuut... 5 3.2 Bayes-verkot... 5 3.3 Markovin mallit... 6 3.4 Tukivektorikoneet... 7 3.5 K-lähimmän naapurin algoritmit... 8 4 OHJAAMATON OPPIMINEN... 10 4.1 Klusterointi... 10 4.1.1 K-means klusterointi... 10 4.1.2 DBSCAN klusterointi... 12 4.2 Itseorganisoituvat kartat ja neuroverkot... 12 4.2.1 Neuroverkot... 13 4.2.2 Itseorganisoituvat kartat... 14 4.3 Adaptive resonance theory... 15 5 YHTEENVETO... 17 LÄHTEET... 18 iii

1 Johdanto Mitä koneoppiminen on? Onko se scifissä esiintyneitä robotteja, vai jotain maanläheisempää? Tässä tutkimuksessa on tarkoituksena tuoda esille yleisellä tasolla, mitä koneoppiminen on, mitä eri menetelmiä se pitää sisällään ja miten nämä menetelmät eroavat toisistaan. Kun teknologia etenee suurin harppauksin, ja erilaiset enemmän tai vähemmän älykkäät järjestelmät leviävät arkielämään, kasvattaa koneoppiminen tärkeyttään aikaisempaan verrattuna. Koneoppiminen on jo integraalinen, vaikkakin usein piilossa oleva, osa modernia elämää. Esimerkiksi joihinkin valokuva-albumiohjelmiin on tullut automaattinen kasvojentunnistustoiminto, joka perustuu hahmontunnistukseen. Hahmontunnistus ja konenäkö yleisesti ovat yksi tärkeimpiä koneoppimisen tutkimuskohteita. Yksinkertaisempiakin esimerkkejä löytyy, muun muassa sähköpostiohjelmien roskapostifiltterit, jotka skannaavat tulevia posteja ja yrittävät määrittää ovatko ne roskapostia vai ei. Erityisen tärkeässä asemassa koneoppiminen on tiedonlouhintaa tehtäessä. Siinä koneoppimisen avulla pyritään valtavasta tiedon määrästä etsimään yhteyksiä (Kapitanova ja Son 2012). Kuten nähdään, koneoppiminen on integraalinen osa modernia elämää ja ainakin sen yleinen ymmärtäminen on hyödyllistä. Koneoppimisen tutkimisen ja kehittämisen pitkän aikavälin tavoitteena voidaan nähdä todellisen tekoälyn (ts. tekoäly jolla on tietoisuus) saavuttaminen. Tämä ei ole mahdollista ilman koneoppimista. Koneoppiminen on tekoälyn osa-alue, joka voidaan määritellä alaksi, jonka tarkoituksena on luoda algoritmeja, jotka empiiristä dataa, kokemusta ja koulutusta avulla käyttäen mukautuvat muutoksiin halutulla tavalla. Koneoppiminen sisältää osia muun muassa psykologiasta, filosofiasta, tilastotieteistä ja neurobiologiasta (Kapitanova ja Son 2012). Nykyyhteiskunnassa, jossa tieteen eri alojen rajoja pyritään rikkomaan, koneoppiminen on ajankohtainen ja moderni tutkimusalue. Etenkin kun edellä mainitut älykkäät järjestelmät yleistyvät, voi viallinen koneoppimisen tai sen osa-alueen huono toteutus johtaa jopa hengenvaarallisiin tilanteisiin. Esimerkiksi uusien ajoneuvojen ADAS-järjestelmät (engl. advanced driver assistance systems) toimivat paljolti hahmontunnistuksen avulla (Geronimo et al. 2010). Mainitun todellisen tekoälyn saavuttaminen tulisi olemaan tieteellisesti erittäin suuri läpi- 1

murto, joka saattaisi aloittaa uuden nopean teknologisen ja tieteellisen kehittymisen aikakauden. Tähän tapahtumaan liittyy myös synkkä puoli: ihmiskunta ei kykene sopeutumaan nopeaan teknologian kehittymiseen. Tätä tapahtumaa kutsutaan teknologiseksi singulariteetiksi. Termi jonka matemaatikko John von Neumann kehitti 1950-luvulla, ja jonka tieteiskirjailija Vernor Vinge toi kuuluisaksi. Tässä tutkimuksessa tarkoituksena on kartoittaa yleisellä tasolla koneoppimisen eri menetelmiä, sen käyttötarkoituksia sekä hyötyjä ja haittoja. Pääpaino pyritään pitämään ohjaamattomassa oppimisessa, mutta koska tarkoituksena on kuvata koneoppimista, niin käydään myös ohjatun oppimisen yleisimpiä menetelmiä läpi. Luvussa 2 käsitellään koneoppimista yleisellä tasolla. Koneoppiminen terminä selvitetään; miten se määritellään, ja mitä se pitää sisällään. Lisäksi käydään läpi lyhyesti muut koneoppimisen menetelmät kuin ohjaamaton ja ohjattu oppiminen. Luvuissa 3 ja 4 käsitellään ohjattu ja ohjaamatton oppiminen tarkemmin läpi. Ohjatusta oppimisesta Käsitellään muutaman yleisimmin käytössä olevan menetelmän nopeasti, ja ohjaamattomassa oppimisessa käydään muutama yleinen menetelmä hieman syvällisemmin läpi. Luvussa 5 vedetään lyhyt yhteenveto työn pääkohdista. 2

2 Koneoppiminen yleisesti Kuten johdannossa mainittiin, on koneoppiminen Kapitanova ym. (2012) mukaan kokoelma algoritmeja jotka mukautuvat muutoksiin halutulla tavalla. Tämä saavutetaan luomalla opetteludataa, jossa tiedetään syöte (eli alkutila) ja haluttu lopputulos. Näin tätä dataa käyttämällä luodaan algoritmi, joka päätyy samaan lopputulokseen kaikilla samankaltaisilla syötteillä. Esimerkkinä oikein opetetun roskapostifiltterin tulisi tunnistaa erityyppiset roskapostit aiemman datan perusteella, vaikka ne olisivatkin sisällöltään erilaiset. Ohjatulla oppimisella tarkoitetaan algoritmeja, joille annetaan oppimisdataa jonka lopputulos tiedetään (engl. labeled data). Oppimisdatan avulla algoritmia voidaan muokata niin, että se saavuttaa halutut lopputulokset tietynkaltaisella syötteellä. Ohjaamattomassa oppimisessa oppimisdatalle ei sen sijaan ole annettu lopputulosta (engl. unlabeled data) (Kapitanova ja Son 2012; Kotsiantis, Zaharakis ja Pintelas 2007). Tutkimuksessa selvitetään tarkemmin näiden kahden eroja ja vaatimuksia. Tarkemmin käsitellään vain ohjatun ja ohjaamattoman oppimisen menetelmiä, mutta mainitsemisen arvoisia ovat myös vahvistusoppiminen (engl. reinforcement learning) ja puoliohjattu oppiminen (engl. semi-supervised learning). Vahvistusoppiminen on trial-and-error menetelmällä tapahtuvaa oppimista. Tässä menetelmässä syötteen labelia ei tiedetä etukäteen, mutta poiketen ohjaamattomasta oppimisesta vahvistusoppimisessa saadaan tieto, kuinka hyvä tai oikein on algoritmilla saavutettu lopputulos. Toisinsanottuna algoritmi tietää millon se on tehnyt oikean päätöksen, ja näin se hiljalleen oppii tekemään oikeita päätöksiä myös muunlaisten syötteiden kanssa. (Sutton ja Barto 1998) Puoli-ohjattu koneoppiminen on nimensä mukaisesti yhdistelmä ohjattua ja ohjaamatonta koneoppimista. Tässä menetelmässä pääpaino on ohjaamattomassa oppimisessa, mutta opiskeludatasta osa käsitellään ohjatun oppimisen menetelmin. Näin algoritmia saadaan ohjattua haluttuun suuntaan. Puoli-ohjatulla koneoppimisella voidaan välttää sekä ohjatun että ohjaamattoman oppimisen huonoja puolia, kunhan se vain tehdään tarpeeksi hyvin. (Zhu 2006) 3

3 Ohjattu oppiminen Ohjattu koneoppiminen on nimensä mukaisesti ihmisten ohjaamaa oppimista. Tämä onnistuu oppimisdatan avulla opettamalla algoritmille syöte-tulos parien avulla halutunlaista käytöstä. Eli kun oppimisdatassa tiedetään sekä syöte että tulos, tutkimusdatan syötteistä ei tiedetä tulosta. Näin oppimisdatan avulla luodaan luokittimia (engl. classifiers), joiden avulla jokainen tutkimusdatan syöte voidaan yleistää yhteen luokittimeen, ja näin ollen saadaan tulos. Tällaisen oppimisdatan käyttö aiheuttaa myös yhden suurimmista ohjatun oppimisen ongelmista, miten oppimisdata luodaan? Oppimisdatan Luominen on työläs ja hidas prosessi ja jos se tehdään huonosti, voi se johtaa koneoppimisalgoritmin huonoon tai väärään opettamiseen, minkä seurauksena se ei toimi halutulla tavalla tai se toimiivajaavaisesti. Oppimisdata usein hankitaan satunnaisotanalla oikean maailman datasta, jolloin siinä saattaa olla mahdottomia arvoja (joko puuttuvia tai vajaita) tai tutkimuksen kannalta merkityksettömiä arvoja. (Kapitanova ja Son 2012; Kotsiantis, Zaharakis ja Pintelas 2007) Kuvio 1. Ohjatun oppimisen työnkulku (lähde: Googlen kuvahaku) Kuvassa 1 näkyy ohjatun oppimisen tavanomainen työnkulu. Aluksi hankitaan dataa joka luokitellaan, ja jolla algoritmia opetetaan. Tämän jälkeen hankitaan uutta dataa, jota ei käsitellä mitenkään ja sillä testataan luotua algoritmia. Tulokset tarkastetaan, ja tarvittaessa 4

algoritmia opetetaan lisää kunnes saavutaan halutunlaiseen lopputulokseen. 3.1 Päätöspuut Kuvio 2. Esimerkki päätöspuusta Päätöspuut (engl. decision trees, myös classification trees sekä regression trees) ovat ehkä yksinkertaisin malli ohjatusta koneoppimisesta, mutta se on myös yksi toimivimpia. Päätöspuut ovat yksinkertaisia kuvassa 2 esitetyn kaltaisia binääripuita, joiden avulla järjestelmä tekee päätöksiä. Yksittäiset päätöspuut eivät sinänsä ole oppivia järjestelmiä, koska ne pysyvät staattisina eivätkä muutu ajan myötä, mutta ottamalla mukaan useita puita (metsät) ja soveltamalla erilaisia menetelmiä valintojen tekemiseen, puiden painottamiseen ja uusien puiden luomiseen saavutetaan oppiva järjestelmä (Kapitanova ja Son 2012). Esimerkiksi kuvassa 2 oleva oikeanpuoleinen puu on oppiva mikäli todennäköisyys muuttuu päätösten perusteella. Päätöspuut ovat erityisen toimivia yksinkertaisissa järjestelmissä, mutta laajemmissa järjestelmissä ne kannattaa korvata muilla menetelmillä. 3.2 Bayes-verkot Bayes-verkot (engl. Bayesian networks) ovat graafiteoriaan ja todennäköisyyslaskentaan perustuvia malleja. Bayes-verkot ovat pohjimmiltaan melko yksinkertaisia, kuvan 3 mukaisia suunnattuja syklittomia verkkoja. Bayes-verkot toimivat siten, että edellisen kuvan mukaan jos henkilöllä on päänsärky joka johtaa koomaan, on hänellä todennäköisesti aivokasvain. 5

Kuvio 3. Yksinkertainen Bayes-verkko (lähde: Googlen kuvahaku) Nämä kausaalisuhteet eivät ole absoluuttisia: vaikka henkilöllä olisi ollut päänsärky ja kooma, ei hänellä välttämättä ole aivokasvainta. Tämän kaltaisia (mutta huomattavasti laajempia) graafeja voidaan käyttää koneoppimisessa ja päätöksenteossa. Koneoppimisen osalta Bayes-verkkoja käytetään etenkin silloin, kun halutaan kerätä tietoa tuntemattomasta systeemistä. Eli aloitetaan pienella tai olemattomalla puulla ja lähdetään laajentamaan sitä (Kapitanova ja Son 2012; Charniak 1991). Charniakin (1991) artikkeli Bayesian networks without tears on erinomainen perusteiden opiskeluun. 3.3 Markovin mallit Markovin mallit (engl. Markov models) ovat stokastisia prosesseja joilla ei ole muistia. Stokastiset prosessit ovat prosesseja, joilla on jokin tila joka vaihtuu sattumanvaraisesti satunnaisin ajoin. Markovin prosessissa prosessi ei muista aiempaa tilaa, ja tulos on riippuva vain nykytilasta. Esimerkiksi nopan heittäminen on Markovin prosessi, koska lopputulos ei riipu aiemman heiton tuloksesta. Markovin malleja ei itsessään käytetä koneoppimisessa, mutta sen johdannaista Markovin piilomallia (engl. Hidden Markov model) käytetään. Se eroaa normaalista mallista siten, että siinä prosessin tila ja siirtymät ovat tuntemattomia, mutta jokaisen suoritetun siirtymän jälkeen nähdään tulos. 6

Kuvio 4. Markovin piilomalli esimerkki (lähde: Googlen kuvahaku) Esimerkiksi kuvassa 4 tilat c i ovat piilotettuja, mutta tulokset y i tiedetään. Vaikka Markovin piilomalleissa ainoastaan nykyhetkellä on vaikutusta tulokseen, riippuvat tilat aiemmasta tilasta. Tämä näkyy kuvassa 4 nuolina tilojen välillä. Markovin piilomallien lisäksi on olemassa vielä Markovin puoli-piilomallit (engl. Hidden Semi-Markov model), joita ei tässä tutkimuksessa käsittele. Markovin mallit ovat erityisen toimivia kun käsitellään ajasta riippuvaa dataa. Esimerkiksi puheentunnistus, jossa yksittäiset äänet ovat merkityksettömiä, mutta missä useiden äänteiden yhdistelmät (ts. useiden tilojen tulokset) ovat merkityksellisiä. (Cortes ja Vapnik 1995) 3.4 Tukivektorikoneet Tukivektorikoneet (engl. Support vector machines, svm) ovat hyvin teoreettinen koneoppimismenetelmä. Toisin kuin useat muut koneoppimisalgoritmit, tukivektorikoneet on kehitelty suoraan tilastopohjaisen oppimisteorian mukaan (engl. Statistical learning theory), eikä käytännön menetelmien pohjalta. Tästä seuraa, että näihin algoritmeihin sisältyy oletuksena lupaus niiden toimivuudesta. Tukivektorikoneet ovat matemaattisia algoritmeja datan luokitteluun ja näin ne soveltuvat erinomaisesti muun muassa tekstintunnistamiseen ja konenäköön. Lyhyesti sanottuna tukivektorikoneet toimivat yhdistämällä syötteen yhteen arvojoukkoon moniulotteisessa avaruudessa. Kuvassa 5 näkyy kaksi arvojoukkoa tulosavaruudessa. Itse 7

Kuvio 5. Optimaalinen hypertaso tulosavaruudessa (lähde: Googlen kuvahaku) syötteen yhdistäminen tulokseen ei ole hankalaa, mutta tulosavaruuden arvojoukkojen erottelu toisista on. Tukivektorikoneet tekevät nimenomaan tätä tehtävää, ne erottelevat tulsoavaruuden arvojoukot toisistaan mahdollisimman isolla marginaalilla. Kuvassa katkoviivoilla merkittyjä vektoreita kutsutaan tukivektoreiksi, joista menetelmä saakin nimensä (Cortes ja Vapnik 1995). 3.5 K-lähimmän naapurin algoritmit K-lähimmän naapurin algoritmit (engl. k-nearest neighbor, k-nn) ovat yksinkertaisia algoritmeja datan luokitteluun. Esimerkiksi jos verkkokauppa haluaisi luoda tuotteita joista asiakas voisi olla kiinnostunut, onnistuisi se valitsemalla K:n arvoksi esimerkiksi 10 ja näin etsimällä 10 lähintä naapuria (tässä yhteydessä toista asiakasta, joiden käyttäytyminen on lähellä luokiteltavaa asiakasta). Tarkkailemalla näiden naapurien ostoksia ja toimintaa voidaan luoda suositus-lista. Esimerkin mukaan k-lähimmän naapurin algoritmeja voi soveltaa useisiin eri tilanteisiin, erityisesti luokittelutehtäviin. Näistä algoritmeista on olemassa useita erilaisia 8

variaatioita; esimerkiksi etäisyyspainotettu versio (engl. Distance weighted k-nn). (Bhatia ja Vandana 2010) Kuvio 6. K-lähintä naapuria esimerkki (lähde: Googlen kuvahaku) Kuvassa 6 näkyy yksinkertainen esimerkki k-lähimmän naapurin algoritmista, kun halutaan tietää onko X q positiivinen vai negatiivinen silloin kun k=5. Kun viidestä lähimmästä naapurista kolme on negatiivisia, asetetaan myös X q negatiiviseksi. 9

4 Ohjaamaton oppiminen Ohjaamaton oppiminen on nimensä mukaisesti ohjatun oppimisen vastakohta. Kun ohjatussa oppimisessa algoritmia ohjataan haluttuun suuntaan, niin annetaaan ohjaamattomassa oppimisessa algoritmin saapua omiin päätöksiin ilman ulkopuolista avustusta. Toisin kuin ohjattu oppiminen, ohjaamaton oppiminen ei käytä syöte-tulos -pareja (engl. labeled data) oppimiseen ja näin se ei kärsi ohjatun oppimisen suurimmasta ongelmasta, eli oppimisdatan luomisesta. Tämä tosin luo ohjaamattoman oppimisen suurimman ongelman/riskin, joka on oikeanlaisen algoritmin valitseminen. Algoritmin valinnalla on tässä yhteydessä vielä suurempi tärkeys kuin ohjatun oppimisen yhteydessä. (Kapitanova ja Son 2012) Kun ohjatun oppimisen tavoitteena on luokitella dataa halutulla tavalla, niin ohjaamattoman oppimisen tavoitteena on etsiä piilossa olevia riippuvuuksia datasta. Näin ollen se on hyvin lähellä tiedonlouhintaa. 4.1 Klusterointi Klusterointialgoritmit ovat yleisimpiä ohjaamattoman oppimisen menetelmistä, ja yksi laajimpia. Valtaosa ohjaamattomasta oppimisesta on erilaisia klusterointialgoritmeja. Yksinkertaisesti ne perustuvat klusterointihypoteesiin, jonka mukaan samaan luokkaan kuuluvat objektit käyttäytyvät samalla tavalla tutkittavan parametrin puitteissa. Esimerkiksi 2-ulotteisessa avaruudessa samaan luokkaan kuuluvat oliot (jatkossa pisteet) muodostavat silminnähtäviä klustereita. Yleisesti klusterianalyysi tehdäänkin juuri moniulotteissa avaruudessa sijaitseviin pisteisiin. (Kapitanova ja Son 2012; Witten ja Frank 2005) Huom. vaikka aikaisemmin mainitut k-lähimmän naapurin algoritmit ovat periaatteessa klusterointialgoritmeja, eivät ne kuulu ohjaamattomaan oppimiseen. 4.1.1 K-means klusterointi K-means klusterointi on klassinen esimerkki klusterointialgoritmista. Ensin siinä selvitetään kuinka monta klusteria datasta halutaan luoda, eli k:n arvo. Tämän jälkeen k pistettä vali- 10

taan satunnaisesti toimimaan jokaisen klusterin keskipisteenä. Lopuksi jäljelle jäävät pisteet liitetään lähimpään klusteriin. Tällaisessa muodossa tämä algoritmi on todella yksinkertainen. Pisteet vain liitetään suoraan lähimpään klusteriin, näin syntyviä klustereita kutsutaan Voronoi-soluiksi jotka muodostavat Voronoi-diagrammin. K-means klusteroinnissa optimaalisen ratkaisun löytäminen on NP-kova ongelma. Näin ollen k-means klusteroinnissa käytetään heuristisia algoritmejä, joista ehkä yleisin on Lloydin algoritmi. (Kapitanova ja Son 2012) Aluksi sattumanvaraisia pisteitä käyttämällä luodaan prototyyppi klusterit, joihin sitten sovelletaan Lloydin algoritmia. Tämä algoritmi laskee klustereille uudet keskipisteet. Tätä jatketaan niin kauan, että päästään haluttuun lopputulokseen. Kuvassa 7 näkyy ensimmäinen Voronoi-diagrammi, ja lopputulos 15 iteraation jälkeen. Kuvio 7. Voronoi-diagrammi ennen Lloydin algoritmia, ja sen jälkeen (lähde:wikipedia, Lloyd s algorithm) K-means klusterointialgoritmista on olemassa useita eri versioita, jotka muun muassa nopeuttavat sen toimintaa. K-means klusterointi on yksinkertainen ja helppo algoritmi, joka toimii todella hyvin tietynlaisiin datajoukkoihin, mutta esimerkiksi esiintymistiheyteen perustuvissa klustereissa se voi leikata klustereita osiin (Kapitanova ja Son 2012; Witten ja Frank 2005). Se on riippuvainen k:n arvoista ja ylimääräinen tai virheellinen tieto (engl. noise) häiritsee sen toimintaa helposti. Lisäksi k-means algoritmin toimintaa häiritsee poikkeavat tai reunoilla olevat tulokset (engl. outliers). 11

4.1.2 DBSCAN klusterointi Kun k-means klusterointi on pisteiden välisiin etäisyyksiin perustuva algoritmi, on toinen paljon käytetty menetelmä tiheyteen perustuva klusterointi. Näistä tiheysklusterointi algoritmeistä käytetyin on DBSCAN (Kapitanova ja Son 2012). Kun k-means klusterointialgoritmissa luodaan haluttu määrä tasaisesti hajaantuneita ja samankokoisia klustereita tavoitteena luokitella dataa. Esiintymistiheyteen perustuvat algoritmit toimivat eritavalla. Sen sijaan ne eivät luokittele dataa haluttuihin luokkiin, vaan etsivät datasta jo olemassa olevia luokkia. Kuvassa 8 näkyy vertailu k-means algoritmin ja DBSCAN-algoritmin välillä, kun pistejoukko on sama. Kuvassa k-means -algoritmi hakee kaksi haluttua klusteria, kun DBSCAN-algoritmi löytää vain yhden klusterin. koska kuvan pisteiden (datan) esiintymistiheys on sama pistejoukossa, DBSCAN käsittelee pisteet vain yhtenä klusterina. Tämän ansiosta DBSCAN pystyy löytämään muunmuassa epälineaarisia klustereita. Kuvio 8. K-means algoritmi ja DBSCAN-algoritmi sovellettuna samaan pistejoukkoon (lähde: Googlen kuvahaku, DBSCAN vs k-means) 4.2 Itseorganisoituvat kartat ja neuroverkot Jotta itseorganisoituvat kartat voidaan käydä läpi, selvitämme lyhyesti neuroverkkojen toimintaperiaatteen. 12

4.2.1 Neuroverkot Kuvio 9. Neuroverkko-malli Neuroverkot ovat laskennallinen malli, joka perustuu ihmisten keskushermoston rakenteeseen. Siinä luodaan joukko keinotekoisia neuroneita, jotka ovat kytketty toisiinsa. Neuroverkot ovat kuvan 9 mukaisesti rakennettuja verkkoja, joissa vihreät pallot ovat syötekerros, siniset pallot ovat piilotettu kerros ja keltaiset pallot ovat tuloskerros. Kuvassa esitetty malli on eteenpäin kytketty monikerroksinen perseptroniverkko. Neuroverkkojen opettaminen tapahtuu siten, että ne löytävät opetusdatasta alkioiden välisiä merkitseviä riippuvuuksia. Se että verkko nimenomaan löytää merkitsevät riippuvuudet saadaan aikaiseksi valitsemalla opetusdata huolellisesti. Jos esimerkiksi halutaan kameran lukevan auton rekisterikilven, opetusdatassa ei ole muita kuvia kuin rekisterikilpiä. Mikäli muita kuvia lisätään opetusdataan, voi verkko valita väärät merkitsevät riippuvuudet. Itse oppiminen tapahtuu niin, että opetusdataa käsiteltäessä verkon neuronien välisten reittien painoarvot muuttuvat. Lopulta jos opettaminen on mennyt oikein, pitäisi verkon päätyä samaan tulokseen samankaltaisilla syötteillä. Kuvassa 9 olevassa mallissa on vain yksi piilotettu kerros, mutta todellisuudessa niitä voi olla useita. (Haykin 1994) 13

4.2.2 Itseorganisoituvat kartat Itseorganisoituvat kartat (engl. self organizing map, SOM myös Kohonen network, Kohonen map) ovat Teuvo Kohosen 1980-luvulla luoma neuroverkkomalli. Yksinkertaistettuna se toimii projektoimalla moniulotteisen datan yleensä 2-ulotteiseen avaruuteen siten, että data ei menetä keskeistä informaatiota. (Haykin 1994) Esimerkiksi valitaan verkko, jossa on kuusi syötettä ja kaksi tulos neuronia. Nämä neuronit ja syötteet projisoidaan kaksi-ulotteiseen avaruuteen (kuva 10). Nyt syötteistä yksi valitaan satunnaisesti (keltainen syöte) ja se ajetaan neuroverkon läpi. Itseorganisoituvissa kartoissa vain yksi tulosneuroni voi olla kerrallaan aktiivinen. Tätä neuronia kutsutaan nimellä voittajaneuroni (engl. winner neutron, winner-takes-all neutron). Tämä neuroni siirretään sitten lähemmäksi aktiivista syötettä. Tulosneuronit on liitetty toisiinsa siten, että vaikka vain yksi neuroni on aktiivinen molempia siirretään samaan suuntaan. Ei-aktiivisille neutroneille tämä siirto on pienempi mitä kauempana se on voittajaneuronista. Tätä prosessia toistetaan niin kauan että kaikki syötteet on käyty läpi (tässä tapauksessa kuusi kertaa). Kun kaikki syötteet on käyty läpi, luokitellaan ne lähimmän tulosneuronin mukaan. Eli esimerkissä saimme kaksi erillistä luokkaa, joita kuvaa sininen ja vihreä tulosneuroni. Kuvio 10. Itseorganisoituvan kartan opetusprosessi Esimerkin mukaisesti tämä menetelmä luo moniulotteisesta datasta halutun määrän luok- 14

kia, jotka esitetään yleensä 2-ulotteisessa avaruudessa. Tästä menetelmästä on luotu useita eri variaatioita, ja tämä onkin yksi käytetyimpiä ohjaamattoman oppimisen menetelmistä. On huomioitava, että yksinkertaisilla syötteillä itseorganisoituvat kartat käyttäytyvät hyvin samankaltaisesti k-means -klusterointialgoritmin kanssa, mutta syötteiden ominaisuuksien määrän kasvaessa menetelmien erot tulevat ilmi. 4.3 Adaptive resonance theory Adaptive Reconanse Theory (jatkossa ART) on itseorganisoituvien karttojen tapaan eräs neuroverkkojen implementaatio. Se pohjautuu kilpailevaan oppimiseen (engl. competitive learning), jossa neuronit kilpailevat siitä, kuka saa lähettää dataa eteenpän. Tämä johtaa neuronien erikoistumiseen ajan kuluessa. ART luotiin pyrkimyksenä päästä eroon sekä kilpailevan oppimisen että itseorganisoituvien karttojen ongelmista ja ratkaisemaan stabiilisuusmukautuvuus -dilemma (engl. stability-plasticity dilemma). Tämä dilemma kuvaa ongelmaa oppivissa järjestelmissä, kun pitäisi oppia uutta vanhaa unohtamatta; mukautuvuus tarkoittaa järjestelmän kykyä mukautua uuteen tietoon ja stabiliteetti kykyä säilyttää vanha tieto. (Grossberg 2013) Alunperin ART-malli luotiin selittämään aivojen oppimisprosessia. Soveltamalla sitä keinotekoisiin neuroverkkoihin saadaan aikaan oppivia järjestelmiä, jotka ovat erityisen toimivia kun halutaan järjestelmä jonka pitää oppia uutta vanhaa unohtamatta. Tässä annetaan usein esimerkki ihmisaivoista: ihmiset tunnistavat vanhemmansa jopa vuosien jälkeen huolimatta siitä, että he ovat oppineet useita uusia kasvoja vuosien saatossa. Tämänkaltainen uuden oppiminen ei ole mahdollista valtaosalla koneoppimismalleista. ART-malleja on useita, joista tällä hetkellä käytetyin on ARTMAP. Se pohjautuu ART1 ja ART2 -malleihin. (Grossberg 2013) ART1 on ensimmäinen ja yksinkertaisin luotu malli; se hyväksyy ainoastaan binäärisiä syötteitä. Se toimii yksinkertaisesti siten, että jokainen syöte yritetään sitoa olemassa olevaan luokkaan. Mikäli olemassa olevaa luokka ei löydy niin sidotaan tämä syöte vapaana olevaan tulosneuroniin. Koska luokat ovat tuloskerroksen neuroneita (huom. vain yksi tulosneuroni voi olla aktiivinen kerrallaan, joten yksi tulosneuroni kuvaa yhtä luokkaa), niin järjestelmän 15

kokonaismuistikapasiteetti on tulosneuronien lukumäärä. Mikäli syöte on uuteen luokkaan kuuluva, mutta yhtään vapaata neuronia ei ole niin syöte hylätään. Tämä on välttämätöntä jotta jo opittu tieto ei häviä. ART-malleissa on lisäksi niille ominainen vigilance-arvo. Tämä arvo kuvaa sitä, kuinka spesifejä luokat ovat. Esimerkiksi ART-verkko, joka tunnistaa esineitä kuvista voi luokitella auton ja moottoripyörän molemmat kulkuvälineiksi tai se voi luokitella ne omiin luokkiinsa (auto moottoripyörä). Näistä ensimmäinen on huomattavasti geneerisempi muisto, ja näin sen vigilance-arvo on pienempi. (Postma ja Hudson 1995) 16

5 Yhteenveto Koneoppiminen on arkipäivää. Se on monipuolinen työkalu, kun tarvitaan järjestelmä joka kykenee luokittelemaan syötetietoja joko ihmisen avustuksella tai ilman. Tässä tutkielmassa on esitelty ohjaamattoman ja ohjatun oppimisen muutamia yleisimpiä menetelmiä tarkastellen niiden toimintaa ja vahvuuksia. Ohjatun oppimisen osalta käytiin läpi muutama yleisemmin käytössä oleva menetelmä. Nämä olivat verrattain yksinkertaisia menetelmiä rajoittunein ominaisuuksin. Tutkimuksessa kävi ilmi, että ohjatun oppimisen menetelmät ovat erinomaisia selkeisiin tehtäviin ja ongelmiin. Esimerkkinä käytetty roskapostifiltteri on erinomainen sovelluskohde ohjatulle oppimiselle. Ohjamaattomasta oppimisesta käsiteltiin muutamia klusterointimenetelmiä, itseorganisoituvia karttoja ja ART-malleja. Näistä kaikki ovat yleisessä käytössä. Klusterointialgorimeista käsiteltiin vain kaksi, mutta niitä löytyy huomattavasti enemmän. Neuroverkkoa ei kokonaisuutena käsitelty selitystä lukuunottamatta, mutta sen kaksi eri implementaatiota käytiin läpi. Ohjaamattoman oppimisen menetelmä ovat todella monipuolisia ja tehokkaita työkaluja monimutkaisiin luokittelutehtäviin. Näistä menetelmistä etenkin ART:llä, ja sen muunnoksilla, on hyvin ihmismäinen oppimisprosessi ja käsittelykyky. Kuten aikaisemmin mainittiinkin on ART kehitetty selittämään matemaattisesti ihmisten oppimista. Tätä tutkielmaa voisi laajentaa huomattavasti, ja tarkoituksena onkin laajentaa se pro gradu - tutkielmaksi, jossa tarkoituksena on tutkia/selvittää koneoppimisen soveltamista tietoturvallisuuteen. Erityiseti anomaliteettien havaitsemiseen; esimerkiksi aiemmin tuntemattomien uhkien havaitseminen, joka voidaan tehdä vain normaalista poikkeavan käytöksen havaitsemisella. 17

Lähteet Bhatia, Nitin, ja Vandana. 2010. Survey of nearest neighbor techniques. International Journal of Computer Science and Information Security 8 (2): 302 305. Charniak, Eugene. 1991. Bayesian networks without tears. AI magazine 12 (4): 50. Cortes, Corinna, ja Vladimir Vapnik. 1995. Support-vector networks. Machine Learning 20 (3): 273 297. Geronimo, David, Antonio M Lopez, Angel Domingo Sappa ja Thorsten Graf. 2010. Survey of pedestrian detection for advanced driver assistance systems. IEEE Transactions on Pattern Analysis and Machine Intelligence 32 (7): 1239 1258. Grossberg, S. 2013. Adaptive resonance theory. Scholarpedia 8 (5): 1569. Haykin, Simon. 1994. Neural networks: a comprehensive foundation. Prentice Hall PTR. Kapitanova, Krasimira, ja Sang H Son. 2012. Machine Learning Basics. Teoksessa Intelligent Sensor Networks: The Integration of Sensor Networks, Signal Processing and Machine Learning, 3 29. CRC Press. Kotsiantis, Sotiris B, ID Zaharakis ja PE Pintelas. 2007. Supervised machine learning: A review of classification techniques. Teoksessa Emerging Artificial Intelligence Applications in Computer Engineering, 3 24. IOS Press. Postma, Eric O, ja Patrick TW Hudson. 1995. Adaptive resonance theory. Teoksessa Artificial Neural Networks, 101 117. Springer. Sutton, Richard S., ja Andrew G. Barto. 1998. Introduction to Reinforcement Learning. 1st. MIT Press. Witten, Ian H, ja Eibe Frank. 2005. Data Mining: Practical machine learning tools and techniques. Morgan Kaufmann. Zhu, Xiaojin. 2006. Semi-supervised learning literature survey. Technical report TR1530. Computer Science, University of Wisconsin-Madison. 18