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.
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.)
Kirjoittajat
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