Johdatus tekoälyyn 521160p Tieto ja sähkötekniikan tiedekunta Oulun yliopisto Kevät 2018 Olli Silvén ja Tuomas Holmberg Kurssin tarkoitus, luonne ja toteutus (1) tarkoitettu kaikkien alojen 1 2 vsk:n opiskelijoille ei ole matemaattinen, ei edellytä koodaustaitoja, mutta ainakin yhdellä kunkin ryhmän jäsenellä olisi oltava ohjelmoinnin perusteet hallussaan tavoitteena antaa tausta ns. tekoälymenetelmillä ratkeavien ongelmien (haku, regressio, luokittelu ja ryvästys/klusterointi) tunnistamiseen, sekä osin myös ohjatun ja ohjaamattoman oppimisen menetelmien mahdollisuuksien ja rajoitteiden, sekä niiden suorituskyvyn mittaamisen menetelmien ja metriikoiden ymmärtämiseen. Datan ja tietämyksen roolien ymmärtäminen on keskeinen tavoite! kurssin jälkeen osallistuja kykenee arvioimaan tarjolla olevan sovellusdatan antamia mahdollisuuksia menetelmätekniikkoja vasten Kurssi toteutetaan nyt ensimmäisen kerran. Seuraava kerta on syksyllä 2018, jolloin sitä on muokattu nyt saatavien kokemusten pohjalta olennainen oheistavoite: kurssin jälkeen kyetään näkemään ero science fiction sepitteissä ja tekoälyn todellisuudessa = realismin saavuttaneet uskaltavat soveltaa 1
Kurssin tarkoitus, luonne ja toteutus (2) Datan ja tietämyksen rooli äärimmäisen olennainen kurssin keskeinen lähtökohta: tekoälysovellus sovellusriippumattomat algoritmit data ja/tai tietämys Kurssin tarkoitus, luonne ja toteutus (3) Kurssi nojaa luentoihin ja harjoitustöihin ja varmistaa oppimista myös välikuulusteluin; kurssissa ei ole lopputenttiä 6 kpl nopeita välikuulusteluita, 1 h/kerta 5 kpl harjoitustöitä, joiden työmäärä vaihtelee; mukana on myös oman datan keruuta ja soveltamista menetelmien syötteinä harjoitustöissä koodi on valmiina eri vaihtoehtoineen (mahdollisuus myös täysin oman regressio tai luokitteluongelman kanssa toimimiseen) Arvostelupisteiden kerryttäminen (ennakkosuunnitelma) välikokokeista max. 4p kustakin, viisi parasta tulosta otetaan huomioon 5*4p = 20p harjoitustöistä max 4p kustakin max 4*4p =16p; vähintään 4 harjoitustyötä palautettava hyväksytysti kokonaispisteet max 20p+16p =36p; läpäisyraja n. 18p Karkea viikkorytmi maanantaina perusteet, tiistaina algoritmit, torstaina 1h tukisessio ja 1h kevyt välikoe (ensimmäiset kurssin viikolla 2) 2
Ryhmiin organisoituminen 1. Ketkä läsnäolijoista katsovat Pythonin olevan auttavasti hallussaan? saa mainostaakin osaamista! 2. Ketkä ovat muita kuin tieto tai sähköteekkareita? mahdollisuuksien mukaan vältetään puhtaiden teekkariryhmien muodostamista 3. Mitä kukin osallistuja hakee tältä kurssilta? Uteliaisuuden tyydyttämistä? Toteuttajia omalle idealle? Helppoja opintopisteitä? Muuta? Pyritään saamaan ryhmiin eri tavoittein osallistuvia, jos mahdollista 4. Mielellään 4 hengen ja max 4 hengen ryhmät ilmoitetaan sähköpostilla Tuomas.Holmberg@student.oulu.fi viimeistään 16.3.2018 Kurssin tietotekninen infrastruktuuri Noppa: luentomateriaalin jako tapahtuu Nopassa; ilmestyy viikoittain joko ennen luentoja tai/ nopeasti niiden jälkeen päivityksineen Optima: harjoitustyömateriaalit jaetaan ja harjoitustyöselostukset palautetaan Optimassa. Myös palautekyselyt toteutetaan Optimassa. Python tulkki kannattaa asentaa omalle koneelle kokeiluja varten Valmiin virtuaalikoneen tarjoamista OpenCV kirjaston käytön helpottamiseksi selvitetään (tarvitaan ainakin yhdessä harjoitustyössä) Harjoitustöissä käytettävä massadatan jakelusta viestitään erikseen. Samalla ratkaistaan opiskelijoiden oman datan sijoituspaikka olemme edelleen infra siirtymässä TST yliopiston tietohallinto 3
Tekoäly (1) Tekoäly: (toistaiseksi ei biologinen) järjestelmä, joka kykenee älykkyyttä edellyttäviin toimintoihin, mutta koska älykkyyttä on vaikea määritellä, niin tekoälyksi katsotaan laaja kirjo erilaisen kyvykkyyden täyttäviä toteutuksia ns. yleinen tekoäly: ihmismäiseen ajatteluun kykeneminen, mutta ns. suppea tekoäly on johonkin älykkääseen toimintoon pystyvä ratkaisu, jollaisia on jo käytössä, kuten puheentunnistus ja tuottaminen konenäkö viihdesovellukset robotiikka ns. asiantuntijajärjestelmät jne. Koneoppiminen: datasta informaation löytämään oppiva automaatti Kuriositeetti: 1956 Dartmouth Collegessa pidetyssä tutkijoiden kokoontumisessa ennustettiin, että ihmisen älykkyyden saavuttava kone syntyisi yhdessä sukupolvessa http://vvvvw.aaai.org/ojs/index.php/aimagazine/article/download/1904/1802 Tekoäly (2) Määritelmiä ja kommentteja Tekoäly on ihmisen tavoin käyttäytyvä järjestelmä Turingin testi huom: ei anna osviittoja, kuinka tuollainen kehitetään Tekoäly on ihmisen tavoin ajatteleva järjestelmä tarvitaan ymmärrys aivojen toiminnasta, joka vielä ainakin hetken haussa kognitiotieteiden aluetta... Tekoäly on rationaalisesti ajatteleva järjestelmä formaali raudanluja logiikka ratkaisee kaiken huom: enää ei puhuta ihmisestä yhtään mitään! Onkin epälooginen otus... tarvitaanko tähän edes ajattelua, vai pelkkä looginen päättelykone? sääntöpohjaiset asiantuntijajärjestelmät ovat tunnettuja tekoälyn isoja epäonnistumisia annettujen lupausten suhteen Tekoäly on rationaalisesti toimiva järjestelmä optimoidaan tavoitteen saavuttamiseksi tarvitaanko tähänkään ajattelua, vai pelkkä optimointikone? ns. rationaaliset agentit ovat yleisiä tekoälyksi katsottuja optimoivia toteutuksia esim. autonominen ruohonleikkuri, shakkivastustaja, jne. 4
Turingin testi (1) Alan Turingin 1950 esittämä tekoälytesti (artikkelissa Computing machinery and intelligence, jossa kävi läpi kaikki nykyäänkin pinnalla olevat tekoälyyn liittyvät kysymyksen koneiden ajattelusta) mittaa tekoälyn ihmisen kaltaisuutta keskustelun kautta: kone on älykäs, jos sitä ei pysty erottamaan ihmisestä = vaikuttaa ajattelevalta ns. tavallinen Turingin testi tehdään ilman puhetta ja kuvaa ns. totaalisessa Turingin testissä vastapuolena on androidi, erehdyttävästi ihmisenkaltainen robotti chat bot:it vielä kaukana Turingin testin läpäisystä, vaikka puheentunnistuksessa osin häkellyttävänkin hyviä: yli 95% tunnistustarkkuus Artificial Intelligence system Human interrogator Human Turingin testi (2) Alan Turing jo 1950: ennusti, että kone voisi hämätä ihmistä testissä noin viiden minuutin keskustelun verran vuoteen 2000 mennessä esitti kaikki keskeiset argumentit tekoälyä vastaan seuraavien 50 vuoden aikajänteelle esitti tekoälyn mahdollistamiselle tarpeelliset keskeiset ratkaisutarpeet: tietämys päättely luonnollisen kielen ymmärtäminen oppiminen Nämä ovat edelleenkin keskeisiä! Vapaaehtoista luettavaa tehdyistä Turingin testeistä https://www.tandfonline.com/doi/full/10.1080/095281 3X.2015.1055826 5
Entä tekoälyn tietoisuus? Milloin tekoäly ajattelee ja tulee tietoiseksi itsestään: supertekoäly? Tarjolla paljon kognitiotutkijoiden uhkakuvia, joilla päästään ainakin julkisuuteen mitä supertekoäly tekee, kun ymmärtää ihmiskunnan vajavaisuuden? mutta vaatii valtavan askeleen verrattuna nykyisiin toteutuksiin, jotka kykenevät suorittamaan vain niille määrättyjä tehtäviä: kyse ei ole pelkästään koneoppimisesta, vaan myös tiedon esitystavoista tällä hetkellä tekoäly ei ymmärrä fyysisen todellisuuden kohteiden merkitystä, tai ole kykenevä oppimaan niitä kuin suppeassa määrin tunnistetaan kohteita, mutta ei tajuta niiden tarkoitusta tämä kuitenkin riittää lukuisiin ihmiskuntaa hyödyttäviin sovelluksiin iso haaste kuitenkin mm. 3 D maailman ymmärtäminen, jolla olisi valtava käytännön sovellusmerkitys Mitkä ovat olleet kompastuskiviä? 1. alunperin tekoälyä kehitettiin sääntö ja logiikkapohjaisesti, millä on kuitenkin merkittäviä rajoitteita kehys (frame) ongelma: epäolennaisten seikkojen poissuljenta ongelmanratkaisusta; esim IntelliCorp:in KEE (Knowledge Engineering Environment) panosti paljon tähän 1980 luvulla 2. Järjestelmät eivät oppineet itse, vaan niihin jouduttiin kaatamaan valmiiksi jäsennetty tietämys rakentaminen ja ylläpito vaativat suuria ihmispanostuksia 3. ongelmanratkaisuun ei kyetty kunnolla liittämään epävarmuuksien huomioon ottamista 4. Tutkimusstrategiani oli ratkaista ensin leluongelmia, joista oletettiin päästävän reaalimaailman haasteisiin. Mutta ratkaisumallit eivät skaalautuneetkaan... Nykyisin koneoppiminen katsotaan tekoälyn synonyymiksi sovelletaan tosimaailman ongelmiin, mutta lähinnä tunnistamisiin saattaa olla jälleen kerran välivaihe tekoälyn kehittyksessä esitystapojen merkitystä ei voine edelleenkään väheksyä 6
Esimerkki 1970 luvun alun tekoälystä SHDRLU 1970 valmistunut palikkamaailmassa toimiva luonnollista kieltä ymmärtävä tietokoneohjelma (kehittäjä Terry Winograd, MIT) Lähde: https://hci.stanford.edu/winograd/shrdlu/ Tekoälyn hype kierre Tekoälyn kohdalla on nähty syklisesti alan tutkijoiden epärealistia lupauksia, rahoittajien euforiaa, sekä yleisön suuria odotuksia kuin myös pelkoja...vastaavasti kohti totaalista pessimismiä ja alan työurien loppumisia kehitys on kuitenkin jatkuvasti mennyt eteenpäin! alan kasvu puolestaan riippuu (hyöty)sovelluksista Mikä on tälle kurssille osallistuvien arvio nykyisestä tilanteesta? Tunnistatko tekoälyn kun olet sellaisen kanssa tekemisissä? Hypen kärjessä 2010? luku Koneoppiminen? 1990 luku Neuraalilaskenta 1970 80 luvut Sääntöpohjainen päättely 1960 70 luvut Luonnollisen kielen ymmärtäminen 1950 60 luvut Perceptron neuraalilaskennassa Formaali logiikka, GPS 7
Tekoälyn hype kierre (1) eli yliampuvat odotukset Yliampuvat odotukset, hypetys, hype, jne. on tunnettu teknologian kehittymisen rinnakkaisilmiö mm. Internet teknologian kehittymisessä on nähty jo monta hype kierrettä merkittävä vaikuttava tekijä on pikavoittojen hakijoiden ilmestyminen Fakta: hypet tulevat ja menevät, mutta teknologia kehittyy ja sen käyttö leviää teknologioiden merkitystä yliarvioidaan lyhyellä ajanjaksolla, mutta aliarvioidaan pidemmällä (ns. Amaran laki) Gartnerin hype käyrä (lähde Wikipedia) Vapaaehtoista luettavaa mm. https://www.gartner.com/smarterwithgartner/top trends inthe gartner hype cycle for emerging technologies 2017/ Tekoälyn hype kierre (2) Nykyinen tekoälybuumi pohjautuu liki kokonaan yhteen menetelmäteknologiaan (syvät konvolutionaaliset neuroverkot ja niillä toteutettu koneoppiminen) samankaltainen suuri innostusvaihe on nähty useasti aikaisemminkin ensimmäinen tietenkin heti ohjelmoitavien tietokoneiden synnyttyä Seuraava innostus oli 1950 luvun lopussa Frank Rosenblattin keksittyä ensimmäisen ratkaisun, jolla kyettiin opettamaan ns. binäärinen luokittelija perceptron: nykyisten keinotekoisten neuroverkkojen edeltäjä Rosenblatt julisti, että tietokoneet kohta kävelevät, puhuvat, näkevät ja kirjoittavat ja ovat vieläpä tietoisia itsestään! hieman myöhemmin todettiin perceptronissa merkittäviä rajoitteita n. 1970 neuroverkkolaskenta jäi vuosiksi marginaaliin mutta myöhemmin havaittiin, että huomatut rajoitteet koskivatkin vain ns. yksikerroksisia perceptron verkkoja ns. monikerros perceptronit ovat merkittävästi tehokkaampia, mutta niilläkin todettiin rajoitteensa jne nyt neuraalilaskenta jälleen valtavirtaa 8
Perceptron Rosenblatt:in Perceptron nykyisen neuraalilaskennan isovanhempi, 1958 x x x x x syötteet yhdistelevät muunneltavat mielivaltaiset painokertoimet Boolen funktiot kynnystys Sivuhuomautus: tärkeimmät Boolen funktiot AND(w,x,y,z) = 1 jos kaikki syötteet 1, muutoin 0 OR(w,x,y,z) = 1, jos jokin syötteistä on 1, muutoin 0 XOR(w,x,y,z) = 1, jos yksi syötteistä on 1, muutoin 0 Rosenblattin artikkeli 1960 luvun alusta (pääsy yliopiston verkossa) http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4066017 P B P B Rajoite: oppii vain lineaarisia diskriminantteja Monikerros perceptron Monikerros perceptronissa jokainen perceptron on kytketty seuraavan kerroksen jokaiseen perceptroniin syötekerros piilokerrokset lähtökerros Oppii epälineaarisia diskriminantteja Monikerros perceptron ja konvolutionaaliset neuroverkot ovat arkkitehtuureja molempien kanssa voi käyttää ns. syväoppimista P P B B 9
Tekoälyn hype kierre (3) USA:ssa investoitiin merkittävästi konekääntämisen tutkimukseen 1950 1960 luvuilla motiivina mm. tiedustelupalvelun tarpeet ratkaisut perustuivat mm. kieliopilliseen analyysiin ja läpimurto näytti jatkuvasti olevan seuraavan kulman takana ongelmien eräs ilmentymä: käännettynä edestakaisin venäjän kielelle: the spirit is willing but the flesh is weak "the vodka is good but the meat is rotten. 1966 rahoittava taho totesi, että konekääntäminen näyttää kalliimmalta kuin ihmisten tekemä rahoitus loppui Tällä hetkellä jokainen tuntee ilmaisen Googlen kääntäjän ja ehkä myös Yahoon Babelfishin (nimetty Douglas Adamsin teoksen Linnunradan käsikirja liftareille pohjalta) konekääntäjä kielioppialgoritmit sanasto Tekoälyn hype kierre (4) Ensimmäinen sääntöpohjainen asiantuntijajärjestelmä XCON syntyi 1978 tietokoneiden konfigurointia varten suuri menestys > valtava innostus hirmuinen hype kohta jokainen isompi yritys kehitti käyttöönsä asiantuntijajärjestelmiä Kehitysalustoja ja Lisp tietokoneita puolestaan julkaisi suuri joukko muita yrityksiä, joista liki kaikki meni konkkaan ennen 1990 luvun alkua, kun ilmaiset sovelluskehittimet (erityisesti CLIPS, http://www.clipsrules.net/) paranivat ja normaalit työasemat pieksivät nopeudessa Lisp tietokoneet 1990 luvun alussa sääntöpohjaiset asiantuntijajärjestelmät todettiin tietämyskannoiltaan vaikeiksi ja kalliiksi ylläpitää tekoäly menetti maineensa aina 2010 luvun alkuun asti asiantuntijajärjestelmä päättelyialgoritmit sääntökanta Lisp elää yhä, mm. Clojurena Sääntöpohjaisuuskin elää hyvin, eräässä mielessä mm. ns. satunnaismetsäoppimisessa 10
Tekoälyn hype kierre (5) 2010 luvulla syväoppivien konvolutionaalisten neuroverkkojen avulla saatiin merkittävästi aiempia parempi tuloksia monella sovellusalueella puheentunnistus > 95% konekääntäminen >90% konenäkö > 90% tietyin edellytyksin lääketieteen automatisoitu diagnostiikka alkoi lähestymään uskottavuutta Syväoppimista käytetään melkeinpä jokaiseen kohteeseen syväoppivaan verkkoon voidaan työntää suuria määriä dataa valmiilla työkaluilla lukiolaishommaa! Kiva juttu!!! mutta syvä oppivaan verkkoon on työnnettävä suuria määriä data! sovellusspesifisten sääntöjen tuonti ei onnistu, jokainen tapaus on opetettava Syväoppiva järjestelmä Tästäkin hype kierroksesta tulee jäämään sovellettavia menetelmiä! opetusalgoritmit data Vapaaehtoista luettavaa https://www.sciencedirect.com/science/article/pii/s026288561630066x Tekoälyn soveltaminen Sovelluksen rakentajalle kaikki menetelmätekniikka on luvallista! olennaista on, että loppukäyttäjän tarpeet täytetään ratkaisuun voidaan vapaasti poimia menetelmät vuosikymmenten takaa, jos sellaiset ratkaisevat ongelman menetelmien rajoitteet ehkä ymmärretään nyt paremmin kuin hypen ollessa aikoinaan huipussaan 11
Tekoälyn sovelluksia (1) Puheentunnistus on jo arkipäivää monenlaisessa tuotantokäytössä Tunnetuimmat puheavustajat (chat botit): Alexa (Amazon), Allo (Google), Cortana (Windows), Siri (Apple) Esimerkki: sana Alexa käynnistää keskustelun lähetyksen Amazonin pilveen analysoitavaksi ja vastaus lähetetään takaisin alunperin Echo kaiuttimen kautta tarjottu palvelu, toimii mm. Amazonin verkkokaupan liittymänä vastaavia laitetuotteita Apple HomePod, Google Home Miksi tällaisia ei syntynyt EU:ssa? Kuvaavaa lienee esimerkki MHP:n saaga (Media Home Platform): liikaa alustamyyntiä, liian vähän palveluhyötyä loppukäyttäjille [Oulussa toimii puheentunnistukseen on erikoistunut Code Q] Tekoälyn sovelluksia (2) Konenäkö: suurin ns. syväoppimisen sovelluskohde Esimerkkejä: Ihmisen emootioiden tunnistus kasvojen ilmeistä ja muista fysiologisista signaaleista, kuten sydämen sykkeestä ja hengitystaajuudesta, ja ns. mikroilmeet tunnistaen [monia kaupallistuksia tulossa Oulussa] Teollisuuden visuaaliset laaduntarkastusjärjestelmät, sahoilla, paperi ja terästehtailla, elintarviketeollisuudessa, jne. [Oulussa mm. Mekitec, Sapotech, SR Instruments, FocalSpec, jne] 12
Tekoälyn sovelluksia (3) Konenäkö: paljon viihdesovelluksia Esimerkkejä: Reaaliaikainen selfie beautification on mobiililaitteissa tärkeä toiminto monissa kaukoidän maissa: poistetaan rypyt, näpyt, muokataan ilmettä, jne. [Oulussa Visidon] Videosisällön hakujärjestelmät: voidaan hakea esim. kaikki elokuvat ja kohdat joissa Cary Grant ja Audrey Hepburn ovat autossa. Mukana puheentunnistus, kuvissa olevat esineet ja ihmisten tunnetilat analysoidaan [Oulussa Valossa Labs] Konenäkö: palvelualan sovelluksia Esimerkkejä: asuntojen ja muiden tilojen 3 D pohjakuvien automaattinen luominen kuvamateriaalista. [Oulussa CubiCasa] Tekoälyn sovelluksia (4) Tien reunaviivan kuluneisuuden mittaus videomateriaalista automaattisesti oppien [Oulussa Tietomekka] J. Pulkkinen, diplomityö, 2016 13
Tekoälyn sovelluksia (5) Konenäkö: lääketieteen kuva analyysit Lukuisia sovelluksia silmänpohjakuvien analyysi keuhkokuvien tulkinta haluttujen MRI leikkeiden renderöinti Erittäin haasteellisia ongelmia, joissa ihmisen on monesti vaikea kuvailla, mikä erottaa terveen ja epäilyttävän tapauksen toisistaan Koneoppimisellekin vaikea sovellusalue [Oulussa Neagen, Optomed, jne.] Tekoälyn sovelluksia (6) Autonomiset ajoneuvot Pitkälti 2 D ja 3 D konenäön, satelliittinavigoinnin, sekä muun anturitiedon analyysin ja koneoppimisen sovellus Suomen olosuhteisiin vietynä mahdollisesti vaatii myös tieanturointia massiivinen IoT sovellus Kaupunkisovelluksena pakettien viimeisten kilometrien toimittaminen kuvassa virolaisen Starship:n autonominen kuljetusrobotti 14
Tekoälyn sovelluksia (7) Monet kielisovellukset ovat jo käytössä ja lisää on tulossa Kielen reaaliaikainen tulkkaus Googlen Pixel Buds kielen kääntävät nappikuulokkeet; käytetään Google Pixel 2 puhelimen kanssa, 40 kieltä Googlen käännöstoiminnon avulla kääntää sanoja, mutta ei ymmärrä kontekstia, mikä monesti on olennainen tekijä Uutisten tuottaminen ohjelmistorobotilla On ollut valtavirtaa jo kymmenkunta vuotta, mutta Suomessa vasta hetken (Helsingin Sanomat, YLE: urheilu uutiset); säätiedotuksia tosin käännetty automaattisesti jo pitkään USA:ssa urheilutoimittaja automatisoitiin jo 2009, nykyisin myös pörssi ja liikennetiedotteet tuotetaan pääosin automaattisesti [Yrityksiä: Narrative Sciences, Automated Insights] Kaupan sovellukset Tekoälyn sovelluksia (8) Amazon Go vähittäismyymälä: normaali kauppa, paitsi Just Walk Out seuraa asiakkaan toimintaa konenäöllä ja muilla antureilla, lähettää laskun jälkikäteen Kehitysidea Oulusta: nollaenergialla toimivat digitaaliset hintalaput ja ostoskori /kärryanturit tunnistavat tuotteiden käsittelyn ja valinnat tuotteen käsittely ja valitsematta jättö on hyvin tärkeää tietoa verkkokauppa antaa joskus tarjouksen tuollaisesta tuotteesta maksamiseen siirryttäessä; miksei myös kivijalkamyymälä voisi käyttää vastaavia kokeita? käsittelyn tunnistaminen on oppimisongelma: moni anturi havaitsee saman käsittelyn 15
Urheiluanalytiikka Tekoälyn sovelluksia (9) Joukkuepelejä ei enää kohta tarvitse katsoa, sillä niiden analytiikka on automatisoitumassa konenäön ja muiden antureiden yhteiskäyttö tehostaa valmentajan työtä mahdollistaa reaaliaikaisen automatisoidun selostuksen [Oulussa AISpotter] Tekoälyn sovelluksia (10) Internet of Things (IoT) ja hajautettu koneoppiminen Little data anturit Big data analyysi IoT node GW IoT node distant cloud for computing and storage Nyt: datakeskus orientoituneet toteutukset IoT node IoT node IoT nodes for sensing Tulevaisuudessa: hajautettu analytiikka hajautetut hakukoneet, jotka kyttäävät muuttuvaa dataa 16
Data, tietämyksen esittäminen ja algoritmit Tekoälyn fokus on siirtynyt varsinaisten ongelmien ratkaisualgoritmeista oppimisalgoritmeihin. Siirtymän merkittävä tausta on ollut suurten datamassojen käsittelyn helpottuminen tietokoneiden keskus ja massamuistikapasiteettien ja laskentatehojen kasvaessa. Tämä kehitys jatkuu yhä. Tiedon esitystavoilla on edelleenkin erittäin ratkaiseva rooli mm. varsin alkutekijöissään, kuinka esim. kuvien massasyöttäminen syviin neuroverkkoihin johtaisi näkymien 3 D tulkintoihin Esitystavat (1) Solving a problem simply means representing it so as to make the solution transparent, Herbert A. Simon, The Sciences of the Artificial, 1968 Fysikaalinen tietämys Käyttäytymismalli Simulaatio Mittaustulos anturilta Piirre esitys Tilastollinen malli Luokka [14 55 11 67 88] Tuplaoksa 17
Esitystavat (2) Käsi ilmaisimen esitys Mitenkähän nämä oikeasti toimivat neuraalilaskennassa ja aivoissa? Entä esim. puheentunnistuksessa, jne. Esitystapojen oppiminen ohjattu oppiminen: mm. konvolutionaaliset neuroverkot, mutta myös monikerros perceptron ja dictionary learning ohjaamaton oppiminen: mm. ns autoenkooderit, mutta myös klusteroinnit, PCA, ICA, LLE, t SNE Värihistogrammi Color histogram 60 40 20 0 red green blue 0 20 40 60 80 100 120 Esitystavat (3) Miten esittää kuvat tietokoneelle, esim. käsinkirjoitetut numerot tunnistusta varten? Esimerkki 1: 28x28 pikselin harmaasävykuva, tasojen dynamiikka 0 255 784 elementtiä pitkä piirrevektori [230 232 225...15 18 17...220 204...] Esimerkki 2: 28x28 pikselin binäärikuva, tasojen dynamiikka 0 1 784 elementtiä pitkä piirrevektori [1 1 1...0 0 0... 1 1...] Esimerkki 3: graafi, jossa solmut liittyviä erikoispisteitä (nurkat, haaraumat, päättymiset) syntaktinen piirrevektori [solmu A, kärki, solmu B, nurkka, matka 12, solmu B, nurkka, solmu C, haara, matka 10, jne.] 18
Esitystavat (4) Piirteet ovat datasta laskennallisesti erotettua informaatiota puheesta esim spektrogrammeja kuvista esimerkiksi tekstuuri ja värihistogrammeja, reuna ja nurkkatietoa iso osa hahmontunnistustutkimuksesta, oli kohteena finanssidata, kuvat tai mikä tahansa muu tiedon lähde, on ollut piirteiden suunnittelua ja keksimistä koneoppimisen seurauksena piirteitä opitaan Ohjattu piirteiden oppiminen Ohjaamaton piirteiden oppiminen L1 256x256 L2 128x128 L3 64x64 L4 32x32 F5 Konvolutionaalinen neuroverkko F6 kompressoitu data enkoodaus dekoodaus Autoenkooderi Algoritmit, data ja tietämyksen esittäminen (1) Tarkastellaan seuraavaa kriittistä ongelmaa: paimenen on vietävä joen yli lammas, susi ja kaali, mutta veneeseen mahtuu vain yksi niistä kerrallaan. syö lampaan, jos ne jätetään kahdestaan. taas syö kaalin, jos se jää sen kanssa. ei syö kaalta. Miten paimenen olisi meneteltävä? Lähdetään liikkeelle ongelmaan liittyvästä datasta Tiedetään, että seuraavat tilanteet ovat kaikki teoriassa mahdollisia (kummallakin rannalla) 19
Algoritmit, data ja tietämyksen esittäminen (2) Ongelmamme kaikki tilanteet eivät kuitenkaan ole sallittuja. Merkitsemme alle sekä sallitut että kielletyt tilanteet selvyyden vuoksi eri väreillä. Esitystilaa säästääkseemme toteamme, että samat tilat ovat sallittuja ja kiellettyjä molemmilla rannoilla toteamme myös, ettemme ole tässä tietämyksessä kytkeneet eri rantojen tilanteita yhteen eli olemme jättäneet tuollaiset seikat mahdolliselle konepäättelylle Algoritmit, data ja tietämyksen esittäminen (3) Nyt toteamme, että olemme esittäneet tilanteet ihmiselle sopivassa muodossa, mutta meidän kannattaa muuttaa aikaansaannoksemme tilaesitykseksi, jossa kukin positio on varattu erikseen paimenelle, lampaalle, kaalille ja sudelle, tässä järjestyksessä. 20
Algoritmit, data ja tietämyksen esittäminen (4) Nyt toteamme kunkin position jo kertovan paimenen, lampaan, suden ja kaalin olemassaolon tilassa, joten pystymme esittämään tilat esimerkiksi neljän bitin binäärisanoina olisimme voineet valita myös jonkin muun esitystavan tämän nimenomaisen esimerkin kohdalla olisimme toki voineet pysytellä myös alfanumeerisessa tilaesityksessä 1 1 1 1 0 1 1 1 1 0 1 0 Hallussamme on nyt ongelman tila avaruuden tilat (kummallekin rannalle), mutta ei vielä kuvattuna tilasiirtymiä, eikä ongelman ratkaisevaa algoritmia entä jos tiloissa olisi molemmat rannat? sovellusriippumaton algoritmi tietämys Algoritmit, data ja tietämyksen esittäminen (5) Kuvaamme mahdolliset tilojen väliset siirtymät esitämme venematkat (molemmat suunnat mahdollisia) 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 Käsissämme on nyt tietämys: mahdolliset tilat, sekä sallitut että kielletyt, sekä mahdolliset menetelmät siirtyä tilasta toiseen. Aavistelemme jo, että on olemassa algoritmeja, jotka kykenevät ratkaisemaan vastaavalla tavalla mallinnettuun tietämykseen perustuvia ongelmia sovellusriippumaton algoritmi tietämys 21
Tila A Tila B Tila C Tila D Tila E Tila F Tila G Tila H Algoritmit, data ja tietämyksen esittäminen (6) Ongelman tila avaruus voidaan esittää seuraavastikin (molemmat rannat otettu huomioon) joki Vasen ranta Oikea ranta Tässä tapauksessa ihminen on joutunut pohtimaan asiaa hieman pidemmälle jos tiedetään, mikä on sallittua ja mikä kiellettyä, miksei tuota tietoa sisällytettäisi esitystapaankin aiemman esimerkin tavoin? Algoritmit, data ja tietämyksen esittäminen (7) Yleinen ongelmanratkaisija (General Problem Solver, GPS) on ensimmäisiä tekoälyksi katsottuja toteutuksia (Simon, Shaw, and Newell 1959) tarkoitettu ongelmien ratkaisemiseen päättelyalgoritmilla alunperin todella vaikuttava ohjelmistoluomus, jota varten luotiin jopa uusi ohjelmointikieli (Information Processing Language, IPL) ongelmien kuvaus: tyyliin alkutila, lopputila, ennakkoehdot ja operaattoreiden aiheuttamat poistot ja lisäykset ennakkoehtoihin Ongelmat toimii oikein hyvin teoriassa, mutta käytännössä vain leluongelmille, kuten paimen, lammas, susi ja kaali kombinatorinen räjähdys ongelmana, mistä johtuen sovelluskohtaiset heuristiikat tarpeen menetetään yleiskäyttöisyys 22
Algoritmit, data ja tietämyksen esittäminen (8) Ongelman kuvaaminen yleiselle ongelmanratkaisijalle (tässä äärimmäisen typistetysti, jokainen tila ja ehto olisi kuvattava erikseen) 1. Kuvataan tavoite: [paimen, lammas, susi, kaali, oikealla rannalla], [ei mitään oikealla rannalla] 2. Kuvataan kaikki ennakkoehdot: [paimen, lammas, susi, kaali, vasemmalla rannalla] ja kielletyt tilat [lammas, susi, vasemmalla rannalla], [lammas, kaali oikealla rannalla] jne. 3. kuvataan menetelmät ( operaattorit ) joilla ennakkoehdot muutetaan uusiksi ennakkoehdoiksi veneeseen [paimen, lammas] oikea ranta jne. 4. kuvataan jokaisen operaattorin käytöstä seuraavat muutokset, esim [poisto: [paimen, lammas, susi, kaali vasemmalla rannalla] [susi ja kaali vasemmalla rannalla] lisäys: [paimen, lammas, oikealla rannalla] Algoritmit, data ja tietämyksen esittäminen (8) Ensimmäinen varsinainen hyödyllinen ns. asiantuntijajärjestelmä: Dendral (Feigenbaum, Buchanan, Lederberg 1965) tarkoitettu orgaanisten molekyylien rakenteiden selvittämiseen massaspektrometrian tuloksista generoi ja testaa periaate: tuotetaan hypoteeseja molekyylin rakenteesta ja verrataan tulosta mittausdataan takana havainto, että asiantuntijat käyttivät heuristisia sääntöjä eliminoimaan vaihtoehtoja nämä vietiin tietokoneohjelmaksi Suuri innostus: yleiskäyttöisten ongelmanratkaisualgoritmien sijaan tutkimuksen suunta sovellusongelmien ratkaisuun niihin liittyvän tietämyksen pohjalta (tietämystekniikka, knowledge engineering) syntyi joukko muita asiantuntijajärjestelmiä (Mycin lääketieteen diagnostiikkaan, Macsyma matematiikkaan, Xcon tietokoneiden konfigurointiin... jne) ionien massa varaus suhde spektri 23
Algoritmit, data ja tietämyksen esittäminen (9) Tietämyksen keruu asiantuntijajärjestelmille on edelleenkin käynnissä 1980 luvulla todettiin tarvittavan valtava määrä tiedon symbolista mallinnusta pienien ongelmien ratkaisut eivät skaalautuneet arkipäivään karkeat laskelmat indikoivat arkipäivän sääntöjen keruun vaativan n. 1000 3000 henkilötyövuotta vrt. atomipommin kehityksen Manhattan projekti ehkä n. 200 000 htv(?) vrt. Dartmouth Collegen kokous 1956 arvioi tekoälyn kaikkien isojen ongelmien ratkeavan parissa kuukaudessa... CYC hanke (http://www.cyc.com/) on ollut käynnissä vuodesta 1984 lähtien tavoitteena mahdollistaa ihmisenkaltainen päättely jopa uusissa tilanteissa, mikä usein on johtanut tekoälyn epäonnistumiseen kasassa yli miljoona arkielämän sääntöä, jotka tähän mennessä ovat olleet pohjana useille spesifisille sovelluksille on erittäin toisenlainen ratkaisu kuin nykyinen valtavirta! mutta on vastausfokusoitunut, ei oppimiskyselijä Vapaaehtoista luettavaa http://www.cyc.com/wpcontent/uploads/2015/06/cyctointel.pdf Algoritmit, data ja tietämyksen esittäminen (10) Esitystavoilla ja algoritmeilla on yhdessä erittäin iso teknologinen potentiaali Esimerkki MPEG 4 object profile vuonna 1999 standardoitu videon ja äänen koodausmenetelmien joukko; käytössä mm. useissa teräväpiirtotelevisiolähetteissä 1990 luvun alussa oletettiin tekoälyn/hahmontunnistuksen mahdollistavan tehokkaan kuvantulkinnan ihan kohta, joten standardiin otettiin esitystapana mukaan ns. sprite enkoodaus Idea: mallinnetaan liikkuvia kohteita ja välitetään niihin liittyvät muutokset taustakuvatasosta erillään erittäin tehokas videokoodaus sprite enkoodaus törmäsi toteutusongelmiin muut video enkoodaustekniikat kehittyneet nopeasti käyttö pääasiassa jälkituotantovaiheissa, joissa vihreän taustan päällä esiintyneet näyttelijät lisätään haluttuun tietokonegrafiikalla syntetisoittuun videoon 24
Esitystavat (5) Erilaisia esitystapoja ääretön määrä! kannattaako ihmisen hakea niistä kuhunkin tarkoitukseen parhaita? missä kulkevat oppimisautomaation rajat? kaikkea ei kannata/voi opettaa automaattisesti! Ihmistä tarvitaan Oletus jos sääntöpohjaisten järjestelmien halutaan ratkaisevan arkipäivän ongelmia antureiden kautta saadun tiedon perusteella ja aktuaattoreiden avulla, niin hahmontunnistusteknologian on kyettävä tuottamaan korkean tason tietoa semanttinenkin tieto (merkitykset) on tarpeen muutoin vaikkapa CYC:n arkielämän sääntöjärjestelmiä ei kyetä hyödyntämään Tietämys ja oppiminen Tekoälyjärjestelmiä on säännöllisesti rakennettu nollatietämyksen tasosta lähtien hyväksytty hidas oppiminen, koska järjestelmät alussa tietävät olemattomasti oletettu, että kunhan ihminen antaa pohjatietämyksen ja alustavat algoritmit, niin jossain vaiheessa päästään järjestelmiin, jotka oppivat itse itseoppiminen voisi sitten tapahtua havaintojen, kysymysten, aktuaattoreiden käytön ja miksei Internetin tiedon pohjalta mikä on tällaisten skenaarioiden nykytila? Vastaus ratkaisu on aivan kulman takana on kuultu useasti ennenkin Mutta mitä tutkijat ovat oppineet? 1. Data/tieto/tietämys on keskeisessä roolissa 2. Ei ole tunnistettu yhtä kaikkiin tarkoituksiin sopivaa esitystapaa. Esim. CYC:n tietämyksen esitystapa voi ehkä olla vain pohja muuntamiselle toisenlaiseksi 3. Tekoälyjärjestelmien arkkitehtuurit tulevat ja menevät, mutta jäävät sovellusten pohjiksi niihin liittyvän hypen haihduttua 1. ihmisen kaltainen tekoäly saattaa edelleenkin olla 50 vuoden päässä, sillä arkielämän tietämyksen hyödyntämisessä ollaan yhä kaukana tarvitusta 25