tiistai 5. toukokuuta 2020

Tekoäly tunnistaa kuvia osa 1: Microsoft Office

Miten ihmeessä tekoäly osaa tunnistaa valokuvien sisältöä? Mistä tekoäly voi tietää, että valokuvassa on koira, kissa, talo tai auto?

Ei se varsinaisesti tiedäkään. Näyttämällä tekoälyn algoritmille miljoonia kuvia ja kertomalla, mitä niissä on, saadaan eri hahmoista luotua matemaattinen malli, johon tekoäly sitten vertaa annettua kuvaa ja tekee valistuneita arvauksia. Parhaimmillaan tulokset ovat hämmästyttäviä, pahimmillaan huvittavia.

Tunnistus perustuu etukäteen määriteltyihin avainsanoihin. Algoritmi ei osaa itse kuvailla, mitä se näkee, vaan se poimii valmiista luokituksista parhaiten vastaavat.

Microsoft Office -pakettiin on kaikessa hiljaisuudessa tullut tekoälyominaisuuksia. Esimerkiksi Powerpoint kirjoittaa kuvaan vaihtoehtokuvauksen, joka sisältää kuvasta tunnistettuja elementtejä. Kadulla vastaan tulleesta koirasta ottamaani kuvaan Powerpoint lisäsi seuraavia määritteitä (tämän blogikirjoituksen kuvissa avainsanat on selvyyden vuoksi upotettu kuvan päälle):
"Koira, sisä, katsominen, eläin"
Koira, katsominen ja eläin menevät aivan oikein, mutta kuva on otettu talvella ulkona. Taustan valkoinen ei ole seinä vaan lunta.

Aina tunnistus ei mene putkeen. Virheet kertovat tekoälyn käyttämästä logiikasta. Esimerkiksi Helsingin Sanomien uutiskuva parin viikon takaa tuottaa yllättävän tuloksen:
"Nainen, pöytä, ruoka, pata"
Kuvassa on ilmeisesti öljysäiliöitä, jotka tekoäly on tulkinnut pöydällä oleviksi padoiksi. Sen vielä ymmärtää, mutta mistä tekoäly on keksinyt, että kuvassa olisi nainen? Ilmeisesti tekoäly on koulutettu kuvilla, joissa nainen laittaa ruokaa. Koneoppimisen tuloksena nainen yhdistetään patoihin ja pöytään, mikä on kuvaava esimerkki tekoälyn vääristymisestä yksipuolisen aineiston perusteella.

Mutta palataan niihin koirakuviin, sillä tämä on kiinnostava aihe, jossa riittää loputtomasti kokeiltavaa. Mistä tekoäly tunnistaa koiran? Muokkasin peruskuvasta erilaisia versioita ja kokeilin Officen tulkintaa niistä.

Pelkät silmät riittävät.
Kuonosta koira tunnetaan.
Puoli päätä riittää.
Samoin pelkkä kirsu.
Jos kuvassa on useita koiria, tekoäly tunnistaa sen vain koirana eikä Office osaa kertoa, että kuvassa on kolme koiraa:

Edelleen koira. 
Lisätään toinen eläin:
"Kissa, eläin, koira, katsominen"
Tunnistus onnistuu, vaikka kuvaan lisätään 80 % kohinaa, joskin nyt koira näyttää istuvan.
"Koira, istuminen, katsominen, ruskea"
Sitten muutama kiinnostava versio.
Koiran eri osat muodostavat yhdessä koiran.
Algoritmin kannalta on sama, näyttääkö koira elävältä vai onko siinä ainoastaan koiran eri osat. Sen mielestä kuva on identtinen lähtökuvan kanssa, vaikka ihminen näkee heti mikä on pielessä.

Kun kuvaa sotketaan ja väännetään lisää, algoritmi alkaa antaa kiinnostavia tuloksia:

"Koira, katsominen, sisä, pistäminen"
Kirsun peittäminen saa algoritmin näkemään pistämistä - onpa outoa. Mutta kun silmätkin peitetään, tekoälyn mielestä kuvassa onkin kissa.

"Kissa, sisä, istuminen, katsominen"
Silmät ja kirsu ovat siis oleellisia koiran tunnistamiselle. Mutta mistä algoritmi tunnistaa katsomisen, jos silmiä ei edes ole?

"Ruoka"
Paloina käännetyssä kuvassa on tekoälyn mielestä ruokaa. Kiinnostava tulkinta.

"Erilainen, ruoka"
Toinen kääntö saa kuvan näyttämään erilaiselta ja ruualta.

"Koira, katsominen, valokuva, eläin"
4x4 ruudukosta tunnistaa yhä koiran. Jostain syystä algoritmi näkee myös valokuvan.

"Sisä, katsominen, valkoinen, lehmä"
Yhä pienemmät palat saavat algoritmin näkemään valkoisen lehmän. Kieltämättä koiran turkki tuo pieninä paloina mieleen lehmän.

"Sisä, katsominen, valokuva, lehmä"
Vielä yksi esimerkki:

"Objekti, sisä, erilainen, mies"
Mistä ihmeestä algoritmi keksii tähän kuvaan miehen??

Muut testiaineiston koirakuvat Officen tekoäly tunnisti ongelmitta, mutta yhteen tuli väärä eläin:
Tämä pikkukoira näyttää tekoälyn mielestä karhulta.
Kuvantunnistusta käytetään myös Googlen ja Applen valokuvapalveluissa. Niistä lisää seuraavassa kirjoituksessa.

Ei kommentteja:

Lähetä kommentti