Koneoppiminen mobiililaitteissa

Koneoppimisen ala on viime vuosina kasvanut, ja sen käyttö myös mobiilisovelluksissa on lisääntynyt. Koneoppimisen perustana on koneen opettaminen tietyn tehtävän suorittamiseen, kuten tulevan syötteen luokitteluun. Opetettua koneoppimisen algoritmia kutsutaan koneoppimisen malliksi (model). Malleja voidaan opettaa esimerkiksi kategorisoimaan sen kuvasta tunnistamia esineitä, kasvoja ja eleitä. Koneoppimista voidaan myös käyttää esimerkiksi tekstin tunnistamiseen tai luonnollisen kielen sovelluksiin eli puheentunnistukseen ja sen tuottamiseen.

Monet koneoppimisen mallit ovat laskennallisesti raskaita prosesseja, joita suoritetaan pilvipalveluina. Esimerkiksi koneoppimisen mobiilisovellus voi lähettää käyttäjän älypuhelimesta dataa verkon yli palvelimille analysoitavaksi eli koneoppimisen mallille pääteltäväksi. Nykyään kuitenkin myös mobiililaitteet ovat riittävän tehokkaita laitteella tapahtuvalle päättelylle. Laitteella tapahtuvassa päättelyssä tietoa käsitellään laitteella, eikä data poistu käyttäjän puhelimesta.

Laitteella tapahtuvassa päättelyssä hyvinä puolina on siis verkosta tulevan viiveen poistuminen sekä tietosuojan ja turvallisuuden parantuminen. Koneoppimista voidaan käyttää myös ilman internetyhteyttä. Laitteella tapahtuva päättely sopii varsinkin reaaliaikaisiin sovelluksiin kuten kameran videokuvasta esineiden ja kasvojen tunnistamiseen. Se ei kuitenkaan ole ongelmatonta, ja sovelluksen suorituskyky riippuu laitteen tehosta. Tämä myös kuluttaa laitteen virtaa, ja  koneoppimisen lisääminen sovellukseen voi suurentaa sen kokoa. (Prins & Hu 2020; Ailisto ym. 2018, 17–19.) 

Nopeasti alkuun: ML Kit ja TensorFlow

ML Kit on Googlen kehittämä ohjelmistokehityspaketti laitteella tapahtuvan koneoppimisen mobiilisovelluksille. Paketti tuo Googlen omat koneoppimisen mallit kaikille hyödynnettäviksi ja ohjelmistorajapinnan niiden käyttämiseen. Eli sovelluskehittäjän ei tarvitse huolehtia oman mallin opettamisesta tai sen optimoinnista mobiililaitteelle. Kaikki Kit:n sisältämät mallit sisältävät tuen Android- ja iOS-laitteille. ML Kit tarjoaa malleja yleisille koneoppimisen käyttökohteille.

Visuaalinen API sisältää esimerkiksi viivakoodin skannauksen, kasvojen, kuvan sekä tekstin tunnistamisen. Luonnollisen kielen API:lla voidaan tunnistaa kieliä ja kääntää tekstiä sekä tuottaa älykkäitä vastauksia tekstipohjaisiin keskusteluihin. ML Kit:a voi käyttää myös itse opetetun TensorFlow Lite-mallin kanssa. (Android Developers. 2020.)

LAB-Ammattikorkeakoulun ITKO-hankkeelle kehitettiin opinnäytetyönä Android-mobiilisovellus ML Kit:a käyttäen. TensorFlow Lite koneoppimisen malli opetettiin TensorFlow Model Maker-kirjastolla tunnistamaan kameran kuvasta ITKO:n IoT-laitteita. Sovelluksella haluttiin tunnistaa neljän eri kategorian laitteita. Sovelluksessa käytettiin itse opetettua mallia yhdessä ML Kit:n objektin tunnistamisen API:n kanssa. Muita sovellukseen toteutettuja toimintoja ML Kit API:en avulla olivat tekstin tunnistaminen ja QR-koodin skannaaminen.

ML Kit osoittautui melko helpoksi tavaksi lisätä koneoppimista sovellukseen ja oman mallin käyttäminen API:n kanssa oli myös sujuvaa. Tekstin tunnistaminen oli testattavista API:sta raskain. Itse opetettu TensorFlow Lite -malli onnistuu luokittelemaan esineitä, mutta vaatii vielä lisää opettamista tarkempien tulosten saavuttamiseksi. Jatkokehitysmahdollisuuksia sovellukselle tuovat esimerkiksi muiden ML Kit API:en hyödyntäminen, kuten havaitun tekstin kääntäminen toiselle kielelle. Oma malli voidaan myös opettaa tunnistamaan uusia kategorioita ja tuoda se sovellukseen helposti. (Jääskeläinen 2021.)

Kuva 1. Sovellus tunnistaa ITKO:n laitteen kameran kuvasta (Kuva: Matti Welin)

Kirjoittajat

Jonna Jääskeläinen on valmistumassa insinööriksi LAB-Ammattikorkeakoulun tieto- ja viestintätekniikan koulutusvastuusta.

Matti Welin toimii yliopettajana LAB-ammattikorkeakoulussa tieto- ja viestintätekniikan koulutusvastuussa ja on ITKO-projektissa mukana asiantuntijana ja toimi oppinäytetyön ohjaajana. 

Lähteet

Ailisto, H. & Heikkilä, E. & Helaakoski, H. & Neuvonen, A. & Seppälä, T. 2018. Tekoälyn kokonaiskuva ja osaamiskartoitus. Valtioneuvoston kanslia. [Viitattu: 22.4.2021]. Saatavissa: https://julkaisut.valtioneuvosto.fi/bitstream/handle/10024/160925/46-2018-Tekoalyn%20kokonaiskuva.pdf

Android Developers. 2020. Build smarter apps with machine learning. [Viitattu 22.4.2021] Saatavissa: https://developer.android.com/ml

Jääskeläinen, J. 2021. Koneoppiminen mobiililaitteilla. [Viitattu 5.5.2021] Saatavissa: http://urn.fi/URN:NBN:fi:amk-202105057254

Prins, C. & Hu, S. 2020. Android Developers Blog. On-device machine learning solutions with ML Kit, now even easier to use. [Viitattu 22.4.2021] Saatavissa: https://android-developers.googleblog.com/2020/06/mlkit-on-device-machine-learning-solutions.html

Linkit

Google Developers. Machine learning for mobile developers. [Viitattu: 4.5.2021]. Saatavissa: https://developers.google.com/ml-kit

TensorFlow. Deploy machine learning models on mobile and IoT devices. [Viitattu: 4.5.2021]. Saatavissa: https://www.tensorflow.org/lite