Skip to main content

29 Tekniikkaa

29Tekniikka logo

Koneoppimisen kehityspalvelut yrityksille

Machine learning on työkalu jolla opetetaan kone tekemään päätöksiä datan perusteella. Ei sääntöjen perusteella joita joku on kirjoittanut vaan mallien perusteella jotka on opetettu esimerkeistä.
Tämä ero on tärkeä. Perinteinen ohjelmisto tekee sen mitä sille on käsketty. Machine learning -järjestelmä tekee sen mitä se on oppinut. Se ei aina osaa selittää miksi se teki niin kuin teki. Se vain tekee.
Rakennamme näitä järjestelmiä. Tässä tekstissä kerromme mitä se tarkoittaa, millaisiin ongelmiin se sopii ja milloin se ei sovi.

Milloin machine learning kannattaa

➢ Kaikki ongelmat eivät ole machine learning -ongelmia. Tämä on ensimmäinen asia joka pitää selvittää.
➢ Machine learning kannattaa silloin kun sääntöjä on liikaa. Jos sinulla on sata sääntöä ja ne kaikki pitää päivittää joka kuukausi, se on merkki siitä että säännöt eivät enää riitä. Malli voi oppia ne säännöt datasta ja päivittyä automaattisesti.
➢ Machine learning kannattaa silloin kun sääntöjä ei voi kirjoittaa. Jos sinun pitäisi määritellä mikä on “epänormaali” tai “samankaltainen” tai “kiireellinen”, se on vaikeaa sanoilla. Mutta jos sinulla on esimerkkejä siitä miltä ne näyttävät, malli voi oppia ne.
➢ Machine learning kannattaa silloin kun dataa on paljon. Malli tarvitsee esimerkkejä. Jos sinulla on tuhat riviä, se ei riitä. Jos sinulla on sata tuhatta riviä, se alkaa riittää. Jos sinulla on miljoona riviä, se on hyvä.
➢ Machine learning kannattaa silloin kun virheet eivät ole katastrofaalisia. Malli erehtyy. Jos yksikin virhe on liian kallis, mallia ei kannata käyttää. Silloin tarvitaan ihminen.

Milloin machine learning ei kannata

Tämä on yhtä tärkeää kuin edellinen.

Machine learning ei kannata jos ongelma on yksinkertainen. Jos voit ratkaista sen if-lauseella, käytä if-lausetta. Se on nopeampi, halvempi ja luotettavampi. Olemme kieltäytyneet projekteista joissa asiakas halusi mallin mutta olisi tarvinnut säännön.

Machine learning ei kannata jos dataa ei ole. Malli ei opi tyhjästä. Se tarvitsee esimerkkejä. Jos dataa ei ole eikä sitä voi kerätä, projektia ei kannata aloittaa.

Machine learning ei kannata jos data on huonoa. Roskaa sisään, roskaa ulos. Jos datassa on virheitä tai puutteita, malli oppii ne virheet. Datan siivoaminen on yleensä suurin yksittäinen työvaihe ja se pitää tehdä ennen kuin mitään muuta tehdään.

Machine learning ei kannata jos kukaan ei ylläpidä sitä. Malli vanhenee. Maailma muuttuu. Se mikä toimi vuosi sitten ei toimi enää. Järjestelmää pitää seurata ja päivittää jatkuvasti.

Millaisia ongelmia ratkaisemme

Machine learningiä käytetään nykyään monenlaisiin asioihin. Tässä on ne joita teemme eniten.

Ennustaminen

Ennustaminen on machine learningin perinteinen käyttökohde. Malli katsoo mennyttä dataa ja arvioi mitä tulee tapahtumaan.

Asiakaspoistuman ennustaminen on toinen. Malli tunnistaa ne asiakkaat jotka ovat vaarassa lähteä. Se ei kerro miksi he lähtevät mutta se kertoo keihin kannattaa keskittyä.

Hinnan ennustaminen on neljäs. Jos markkina liikkuu, mallia voi käyttää apuna. Se ei korvaa ihmisen harkintaa mutta se antaa toisen mielipiteen.

Kysynnän ennustaminen on tyypillinen esimerkki. Jos sinulla on myyntihistoriaa ja tiedät mitkä asiat siihen vaikuttavat, voit ennustaa mitä tulet myymään. Tämä auttaa varastonhallinnassa, henkilöstösuunnittelussa ja hankinnoissa.

Huoltotarpeen ennustaminen on kolmas. Teollisuudessa laitteet hajoavat joskus ennustettavasti. Malli voi kertoa milloin huolto kannattaa tehdä ennen kuin laite hajoaa.

Luokittelu

➢ Luokittelu tarkoittaa sitä että laitetaan asioita eri kategorioihin. Malli katsoo esimerkkejä ja oppii mikä kuuluu mihinkin.
➢ Tekstin luokittelu on yleinen. Sähköpostit pitää laittaa oikeisiin kansioihin. Asiakaspalautteet pitää jakaa aiheittain. Dokumentit pitää arkistoida oikein. Nämä ovat asioita joita ihmiset tekevät hitaasti ja joissa tulee virheitä.
➢ Kuvien luokittelu on toinen. Tuotteet pitää laittaa oikeisiin kategorioihin. Kuvat pitää tarkistaa ennen julkaisua. Laadunvalvonnassa pitää tunnistaa virheelliset kappaleet.
➢ Poikkeamien tunnistus on kolmas. Joukosta pitää löytää ne jotka eivät kuulu sinne. Tämä on yleistä esimerkiksi petosten tunnistuksessa ja tietoturvassa.

Suosittelu

Suosittelujärjestelmät ovat nykyään kaikkialla. Ne katsovat mitä sinä olet tehnyt ja ehdottavat mitä voisit tehdä seuraavaksi.
Verkkokaupassa tämä tarkoittaa tuotesuosituksia. Suoratoistopalveluissa tämä tarkoittaa sisältösuosituksia. Uutissovelluksissa tämä tarkoittaa juttusuosituksia.
Suosittelujärjestelmän rakentaminen on teknisesti mielenkiintoista mutta siinä on myös eettinen puoli. Jos suositukset ohjaavat ihmisten käyttäytymistä, pitää miettiä mihin suuntaan niitä ohjataan. Tämä ei ole tekninen kysymys vaan liiketoiminnallinen ja eettinen.

Segmentointi

➢ Segmentointi tarkoittaa sitä että jaetaan asiakkaat tai käyttäjät ryhmiin sen perusteella mitä he tekevät tai keitä he ovat.
➢ Tämä on hyödyllistä markkinoinnissa. Eri ryhmille kannattaa lähettää erilaisia viestejä. Tämä on hyödyllistä tuotekehityksessä. Eri ryhmillä on erilaisia tarpeita.
➢ Perinteisesti segmentointi on tehty käsin. On päätetty että nämä ovat nuoria kaupunkilaisia ja nämä ovat keski-ikäisiä maaseudulla asuvia. Machine learningillä segmentit voivat muodostua itsestään datan perusteella. Ne eivät välttämättä ole sellaisia joita ihminen olisi keksinyt.

Anomalioiden tunnistus

Anomalioiden tunnistus tarkoittaa sitä että löydetään ne asiat jotka eivät kuulu joukkoon.

Teollisuudessa tämä tarkoittaa sitä että tunnistetaan laitteet jotka käyttäytyvät oudosti. Rahoituksessa tämä tarkoittaa sitä että tunnistetaan epäilyttävät tapahtumat. Terveydenhuollossa tämä tarkoittaa sitä että tunnistetaan poikkeavat mittausarvot.

Anomalioiden tunnistus on vaikeaa koska anomaliat ovat harvinaisia. Jos niitä on yksi tuhannesta, mallin pitää oppia tunnistamaan se yksi ilman että se oppii tunnistamaan vääriä hälytyksiä. Tämä on tasapainoilua.

Miten rakennamme nämä järjestelmät

Machine learning -projekti etenee eri tavalla kuin tavallinen ohjelmistoprojekti. Tässä on vaiheet.

Datan kartoitus

Ensin katsotaan mitä dataa on olemassa. Missä se on, missä muodossa se on, kuinka paljon sitä on, kuinka vanhaa se on.
Tämä vaihe on usein yllättävä. Asiakas luulee että dataa on paljon mutta sitä onkin vähän. Tai asiakas luulee että data on yhdessä paikassa mutta se onkin kymmenessä eri järjestelmässä eri muodoissa.
Kartoituksen perusteella tehdään päätös siitä kannattaako jatkaa. Jos dataa ei ole tarpeeksi, kerromme sen heti.

Datan valmistelu

➢ Tämä on se vaihe johon menee eniten aikaa. Yleensä 60-80 prosenttia koko projektista.
➢ Data pitää siivota. Siinä on puuttuvia arvoja, virheellisiä arvoja ja päällekkäisyyksiä. Data pitää yhdistää eri lähteistä. Data pitää muuntaa sellaiseen muotoon että mallit voivat käyttää sitä.
➢ Tämä työ ei ole näkyvää eikä sitä ole kiva tehdä. Mutta ilman sitä mikään muu ei toimi.

Ominaisuuksien suunnittelu

Ominaisuudet ovat niitä asioita joita malli käyttää päätösten tekemiseen. Jos ennustetaan asiakaspoistumaa, ominaisuuksia voivat olla esimerkiksi kuinka kauan asiakas on ollut, kuinka paljon hän on ostanut ja milloin hän viimeksi osti.

Ominaisuuksien suunnittelu on enemmän taidetta kuin tiedettä. Se vaatii ymmärrystä siitä mitä ollaan tekemässä. Pelkkä tekninen osaaminen ei riitä.

Tämä on se vaihe jossa kokemus ratkaisee eniten.

Mallin valinta ja koulutus

Vasta tässä vaiheessa valitaan malli. Ei aiemmin.
Mallivaihtoehtoja on kymmeniä. Jokaisella on hyvät ja huonot puolensa. Jotkut toimivat hyvin pienellä datalla. Jotkut tarvitsevat paljon dataa. Jotkut ovat nopeita mutta epätarkkoja. Jotkut ovat tarkkoja mutta hitaita.
Kokeilemme yleensä useampaa mallia ja vertaamme tuloksia. Se mikä toimii parhaiten riippuu täysin siitä mitä ollaan tekemässä.
Koulutus tarkoittaa sitä että malli opetetaan datalla. Se on laskennallisesti raskasta mutta se on yleensä nopea vaihe verrattuna datan valmisteluun.

Arviointi

➢ Mallia pitää arvioida. Ei riitä että se toimii koulutusdatalla. Sen pitää toimia datalla jota se ei ole nähnyt.
➢ Tämä on se kohta jossa monet projektit epäonnistuvat. Malli näyttää loistavalta koulutusdatalla mutta huonolta oikealla datalla. Tämä tarkoittaa että malli on oppinut ulkoa sen sijaan että se olisi oppinut yleistämään.
➢ Arvioinnissa pitää myös miettiä sitä mitä virheet maksavat. Joskus väärä positiivinen on pahempi kuin väärä negatiivinen. Joskus toisin päin. Tämä pitää selvittää ennen kuin mallia voi arvioida oikein.

Tuotantoon vienti

Malli pitää saada tuotantoon. Se pitää integroida olemassa oleviin järjestelmiin. Sen pitää vastata nopeasti. Sen pitää toimia myös silloin kun data ei ole täydellistä.

Tämä vaihe on usein aliarvostettu. Mallin kouluttaminen on mielenkiintoista. Sen vieminen tuotantoon on tylsää mutta pakollista.

Seuranta

➢ Kun malli on tuotannossa, sitä pitää seurata. Ennustaako se oikein. Kuinka nopeasti se vastaa. Kuinka paljon se maksaa.
➢ Jos malli alkaa tuottaa huonompia tuloksia, se pitää kouluttaa uudelleen. Tämä on jatkuva prosessi. Malli ei ole koskaan valmis.

Mitä tämä maksaa

Machine learning -projekti maksaa enemmän kuin tavallinen ohjelmistoprojekti. Tämä johtuu siitä että siinä on enemmän epävarmuutta ja enemmän työtä jota ei voi suunnitella etukäteen.

Tuotantoversio maksaa kymmeniä tuhansia. Se riippuu siitä kuinka monimutkainen järjestelmä on ja kuinka moneen paikkaan se pitää integroida.

Emme anna tarkkoja hintoja tässä koska ne riippuvat liikaa yksityiskohdista. Annamme aina tarjouksen ennen kuin työ alkaa.

Prototyyppi maksaa yleensä muutaman tuhannen euron. Se kertoo toimiiko idea.

Jatkuva ylläpito maksaa kuukausittain. Malli pitää kouluttaa uudelleen säännöllisesti. Järjestelmää pitää seurata. Tämä on kustannus joka pitää budjetoida alusta asti.