Suorituskyky tekoälyn pullonkaulana:
Olen tästä täysin eri mieltä. Mainitsemasi esimerkit (reititys, logistiikka yms) ovat luonteeltaan melko yksinkertaisia ja hyvin rajattuja ongelmia.
Mainitsin nuo kyseiset osa-alueet esimerkkeinä sovellusalueista, joilla tekoälykkäitä algoritmeja pusketaan voimakkaasti eteenpäin. Niitä yhdistää tosiaan se, että ne ovat rajattuja ongelma-alueita, mutta toisaalta myös se, että ne sijoittuvat teollisuuteen.
Meillä on saatavilla ihmisenkaltaista "tekoälyä" suhteellisen huokeaan hintaan. Tästä syystä teollisuus on kaikkein kiinnostunein rahoittamaan ja soveltamaan tekoälyn alueelta algoritmeja sellaisille alueille, joilla ihminen ei ole vahvimmillaan (ja joilla kulloisellakin tekniikan kehitysasteella on olemassa mahdollisuuksia päihittää ihminen kustannustehokkaasti). Näiden syiden takia oma käsitykseni on se, että ensimmäiset oikeasti älykkäät järjestelmät poikkeavat ajatusmaailmaltaan ihmisestä niin paljon, ettemme edes käsitä niiden olevan älykkäitä ainakaan kovin nopeasti.
Mainitut sovellusalueet eivät kuitenkaan liity käsitykseeni siitä, että tekoälyn pullonkaulana on mielestäni enemmän raudan suorituskyky kuin tietoteoreettinen osaaminen. Totuus lienee oikeasti jossain puolessa välissä, mutta koetan selventää omaa näkemystäni.
Mutta vain hyvin pieni osa voidaan suoraan palauttaa tälläiseen muotoon. Tekoälytutkimus on viimeiset vuodet keskittynyt rakenteeltaan huomattavasti vaikeampiin ja monimutkaisempiin ongelmiin, joissa ei ole olemassa yhtä selkeää lähestymistapaa.
Näen tekoälyn saralla tehtävän tietoteoreettisen työn työnä ihmisen oman käsityskyvyn laajentamiseksi. Se mahdollistaa algoritmisten ratkaisujen löytämisen uusiin ongelmiin, tai esimerkiksi tutun algoritmin soveltamisen uudelle ongelma-alueelle. Itse olen kuitenkin kiinnostuneempi menetelmistä, jotka löytävät ratkaisuja, joita ihmisen ei tarvitse ymmärtää. Näistä esimerkkeinä neuroverkot ja geneettinen haku.
Pikainen selvitys kyseisistä tekniikoista niille, joille ne eivät ole tuttuja. Neuroverkkojen inspiraatio on todellakin biologisessa hermostossa, mutta omasta mielestäni sen tärkein ominaisuus on se, että se on opetettavissa suhteellisen yksinkertaisilla algoritmeilla. Kovasti yksinkertaistettuna homma toimii niin, että tietokone itse säätelee verkon painokertoimia löytääkseen ongelmaan ratkaisun, eikä ihmisen tarvitse ymmärtää lainakaan sitä, kuinka verkko ongelman ratkaisee. Geneettinen haku on puolestaan hakualgoritmien variaatio sellaisiin tilanteisiin, joissa hakupuu räjähtää käsiin. Syventymättä liikaa yksityiskohtiin, geneettinen haku toimii trial-and-error -periaatteella, se hakee iteratiivisesti ratkaisua tuottamalla variaatioita.
Totta on tietysti se, että tietoteoreettinen työ ongelma-alueen parissa tehostaa geneettisen haun toimintaa, kun populaatio voidaan tuunata paremmin kenttään soveltuvaksi. Totta on myös se, että sattuneesta syystä geneettistä hakua on vaikea soveltaa hakualgoritmien perinteisiin ongelma-alueisiin. Sekin on totta, että geneettinen haku on varsin raskas operaatio lähinnä validoinnin puolella (s.o. tarvitaan simulaatio tuotettujen variaatioiden evaluoimiseksi). Mutta hyvin karkeasti yksinkertaistettuna geneettisen haun teho on kiinni ainoastaan siitä, kuinka suurta populaatiota se voi pyörittää ja kuinka nopeasti, ja rinnakkaistuvana algoritmina uskon sen pystyvän hyödyntämään prosessoritehon kasvua hyvällä hyötysuhteella (lähes lineaarisesti). Kun tähän yhdistetään se, ettei ihmisen tarvitse ymmärtää miten tai miksi löydetty ratkaisu toimii, pidän sitä hyvinkin lupaavana kanditaattina oikeasti älykkäiden koneiden pohjaratkaisuna.
Neuroverkko on hiukan toisenlainen kapine. Neuroverkko itsessään on periaatteessa vain omanlaisensa prosessointiarkkitehtuuri, laskentamalli. Mutta toisin kuin esimerkiksi nykykoneidemme käyttämä RASP-malli, neuroverkko on ohjelmoitavissa huomattavan paljon yksinkertaisemmilla algoritmeilla - ja itse asiassa, neuroverkko on laskentamalli, jonka ohjelmoiminen käsin on äärimmäisen haasteellista.
Viime vuosien editys tällä saralla on tapahtunut ns. deep learning tekniikoiden kautta, joiden myötä neuroverkot ovat myös kokeneet renesanssin. Menemättä liikaa yksityiskohtiin, perusideana on rakentaa monitasoinen neuroverkko siten, että verkon alin taso oppii tunnistamaan yksinkertaisia muotoja (esim. viivoja) ja värejä. Sitten nämä yksinkertaiset kuviot syötetään verkon seuraavalle tasolle, joka muodostaa niitä yhdistelemällä hiukan monimutkaisempia kuvioita (ympyrät, neliöt jne).
Korjaa jos olen väärässä, mutta neuroverkon soveltamisessa perinteinen ongelma on ollut se, että verkon topologian valinta (neuronien määrä, kerrosten määrä, ...) on ollut enemmän tai vähemmän intuitiolla hatusta vedetty tai erilaisia vaihtoehtoja kokeilemalla valittu. Yksinkertaistettuna, verkko ei saa olla ongelmalle sen enempää liian pieni kuin liian suurikaan. Tämähän ei ole suoranaisesti verkon itsensä ongelma, vaan käytetyn opetusmekanismin ongelma.
Neuroverkon sovellettavuutta dominoi opetusalgoritmi, tai pikemminkin opetusmekanismi (eli mitä erilaisia tapoja opettamiseen - verkon konstruoimiseen ja painokertointen säätöön sekä opetusaineiston käsittelyyn - sovelletaan). Toisaalta, uskon, että mikä tahansa laskentamalli (myös RASP) on algoritmisesti ohjelmoitavissa, mutta mallista riippuen tämä "opetusalgoritmi" on kevyempi tai raskaampi, nopeampi tai hitaampi. Konetehon kasvun uskon tuovan järkevästi sovellettavaksi sellaisia neuroverkon ja niiden opetuksen malleja, jotka ovat tunnottomampia verkon topologialle ja/tai pystyvät säätämään topologiaa opetuksen yhteydessä. Tämän seurauksena ihmisen tarvitsee itse tuntea ongelmakenttää yhä vähemmän, eli kone ratkoo ongelmia itsenäisemmin.
Toivottavasti olen kyennyt ymmärrettävästi selittämään sen, miksi pidän raudan suorituskykyä ensisijaisena tekijänä tekoälyn kehittymiselle. Jonkinlaisena tiivistyksenä ehkä se, että mitä enemmän laskentatehoa on käytettävissä, sitä vähemmän ihmisen tarvitsee tuntea ongelmakenttää. Ongelmakentän tuntemus on arvokasta sinänsä, mutta jos haluamme älykkäitä koneita, tärkeämpää on se, että kone tuntee ongelmakentän kuin että ihminen tuntee sen. Kuten heti alussa totesin, totuus lienee se, että molempia lopulta tarvitaan.
Yksi merkittävimmistä tutkimuskohteista, jossa on tapahtunut myös selkeää edistystä, on konenäkö.
Hahmontunnistus onkin se sovellusalue, jossa ihminen on perinteisesti pyyhkinyt koneella lattiaa. Ihmisen hahmontunnistuskyky on sen verran tehokas, että ihmisistä kasattu "supertietokone" on käyttökelpoinen työkalu datan käsittelyyn:
http://www.galaxyzoo.org/
Konenäköä voisi pitää jonkinlaisen ensimmäisenä edellytyksenä robotiikan yleistymiselle, koska jos robotti ei pysty havainnoimaan ja tunnistamaan ympärillä olevaan maailmaa, niin ei se voi oikein tehdä mitään muutakaan.
Olen täysin samaa mieltä. Hahmontunnistuksen ja motorisen ohjauksen kehitys tuo robotiikan lähemmäksi ihmisten arkea, ja sitä kautta suuremmat massat tietoiseksi asiasta. Meitä tavallisia pulliaisia hämää se, että tekoälyn kehitys on tapahtunut pääsääntöisesti "kulisseissa", tavallaan näkymättömissä. Siksi monet ajattelevat, ettei kyseisellä alueella ole tapahtunut mitään 30 vuoteen, mutta se on mielestäni virheellinen käsitys.
Matka sillä saralla on varmasti pitkä. Pelkästään meillä ihmisillä on takanamme noin 2 miljoonan vuoden kehityskaari, ja arkikäyttöön tarkoitettujen koneiden (esimerkiksi vaikkapa itseohjautuvien autojen) pitäisi sopeutua elämään siinä todellisuudessa missä mekin. Tavallaan joudumme rakentamaan itsemme: esimerkiksi itseohjautuvan auton täytyy ymmärtää huomattavan paljon ihmistä voidakseen toimia odottamattomissa tilanteissa. Tästä syystä tekoälyn kehitys on varmasti helpompaa sellaisissa ympäristöissä ja aihealueilla, joissa ihmisen läsnäolo ei aiheuta ylimääräistä painolastia.