30.11.2016 / Juha Kostamo

Analytiikan kehittäminen on kuin tutkimusmatka – aina ei tiedä minkä ääreltä itsensä löytää. Mikä on kuitenkin varmaa on se, että jos ei ikinä lähde matkaan niin ei päädy minnekään.

Monissa yrityksissä on viime vuosina laitettu raportointia, BI:tä, kuntoon. Tiedetään miten hyvin tai huonosti meillä meni eilen, viime viikolla, viime kuussa. Sekin on ihan arvokasta tietoa ja onhan siinä samalla tehty organisaation datapääomalle määräaikaishuolto.

Aika monen toimiston nurkkahuoneessa nautitaan Suomen luonnon tarjoamasta hämärästä hetkestä ja pohditaan, että mitähän ihmettä sille kaikelle yrityksen toiminnasta kerätylle datalle tekisikään. Kaverit klubilla puhuivat jostain ennustavasta analytiikasta ja Machine Learningista…miten päästä alkuun ja uuden oppimisen äärelle järkevällä riskillä.

Louhialla ja muissakin fiksuissa konsulttitaloissa käytetään CRISP-DM metodologiaa (IBM:n aikanaan kehittämä), jonka avulla tehdään ketteriä ja pieniriskisiä analytiikkaprojekteja. Sen avulla on nopeasti selvitettävissä onko valitussa ongelmassa liiketoimintapotentiaalia. Työskentelytapa on iteratiivinen.

CRISP-DM vaiheistus on kuvattu seuraavassa:

  1. Ongelman identifiointi
  2. Datan ymmärtäminen
  3. Datan valmistelu
  4. Mallinnusvaihe
  5. Tulkinnat ja analyysit
  6. Tuotantoon vienti tai palautus aiempiin vaiheisiin

Kaikki lähtee ratkaistavan liiketoimintaongelman tunnistamisesta ja kuvaamisesta. Ongelmien tunnistaminen on yleensä suhteellisen helppoa, kuvaaminen jo hieman haastavampaa. Apuna voi käyttää esim. Ishikawa- diagrammia.

Osana kuvaamista tunnistetaan myös ko. ongelman ratkaisemisen hyötypotentiaali. Samalla on hyvä myös tutkailla löytyykö aihealueelta dataa menemättä vielä yksityiskohtiin. Yhtenä löydöksenä voi olla myös se, että meillä on ongelma, jonka ratkaiseminen toisi merkittävää liiketoimintahyötyä, mutta meillä ei ole dataa. Action: ryhdytään keräämään dataa ja palataan asiaan esim. vuoden kuluttua.

Kun on saatu ymmärrys ratkaistavasta ongelmasta, sen laajuudesta ja hyötypotentiaalista ja ollaan tunnistettu aihealueeseen suurella todennäköisyydellä liittyvät datat, on aika avata konepelti ja kääriä hihat. Datan kanssa puuhaaminen on aikaa vievää ja välillä tuskallistakin hommaa – kerätään, kuvaillaan, tutkaillaan, verifioidaan, valitaan, putsataan ja yhdistellään muiden datojen kanssa. Tämän vaiheen tärkeyttä ei voi aliarvioida – ilman dataa ei synny analyysiä, ilman analyysiä ei synny uusia havaintoja ja niiden mahdollistamia hyötyjä. Tämä vaihe saattaa vaatia pizzaa ja energiajuomia.

Mallinnusvaiheessa datatieteilijä tekee taikojaan: valitsee soveltuvat mallinnustekniikat, rakentaa ja testaa malleja, pistää parametrit oikeaan asentoon. Tässä vaiheessa datatieteilijää ei saa häiritä ja samassa toimistossa työskenteleviä suositellaan riisumaan kengät pois ja laittamaan pörrösukat jalkaan melun minimoimiseksi.

Kun mallinnus on tehty, on aika siirtyä tekemään tulkintoja ja analyysejä sekä verrata mallin antamia tuloksia suhteessa projektin alussa asetettuihin tavoitteisiin. Hyvässä lykyssä voidaan todeta, että mallit antavat järkevän tuntuisia tuloksia. Jossain tapauksissa joudutaan palaamaan nöyrästi joko mallinnuksen pariin tai selvittämään datassa mahdollisia olevia puutteita. Hyvässä lykyssä siirrytään miettimään miten kehitetyt mallit ja data saadaan tuottamaan liiketoimintahyötyä eli ryhdytään ensin suunnittelemaan ja sitten toteuttamaan tuotantoon siirtoa.

Kun jotain viedään tuotantoon, täytyy suunnitella kuinka asioita seurataan, ylläpidetään, kehitetään ja kenen kanssa.  Mallien antamia tuloksia voidaan vaikkapa upottaa suoraan yrityksen liiketoimintaprosesseihin taikka visualisoida joko omassa sovelluksessa taikka yrityksen käyttämässä BI- sovelluksessa – modernit BI- välineet eivät hyljeksi esim. R- koodia. Ja nyt sitten tekemään parempia päätöksiä ja liiketoimintaa.

Mitenkä tämmöinen tutkailu sitten kannattaa ostaa? Paloittain ja hallittuina kokonaisuuksina. Jos joku sanoo muuta, tämä joku ei suurella todennäköisyydellä tiedä mistä puhuu.

Analytiikkahankkeille on tyypillistä se, että kun tämän lampun saa syttymään, se palaa kirkkaasti ja pitkään (uusia business case- aihioita tunnistetaan eri puolilla organisaatiota). Kyseessä on oppimismatka ja kun tästä Graalin maljasta pääsee ottamaan hörpyt, niin sitä tekee sitten kyllä mieli lisää.

Minkälaisia mysteerejä Louhia on sitten jo asiakkaidensa kanssa ratkaissut? No onhan noita ja eri toimialoilta.

  • Asiakaspoistuman ennustaminen (vakuutus-, -tele ja energiasektori
  • Kysynnän ennustaminen (terveydenhuolto, tukkuliikkeet)
  • Tuotteiden hintaoptimointi (teollisuus)
  • Vikaantuminen ennakointi (elektroniikkateollisuus)
  • Maaperän kosteusarvojen estimointi (teollisuus)
  • Asiakassegmentointi (vähittäiskauppa, telesektori)
  • Tilauskannan realisoitumisen ennustaminen (terveydenhuolto)
  • Liikenteen viivästymisalgoritmin kehittäminen (top secret)
  • Mainonnan optimointialgoritmi (vähittäis- ja tukkukauppa)
  • IoT-ennusteratkaisu raskaan liikenteen lähtöajankohtiin
  • Avoimen datan hyödyntäminen
  • Tarjousten läpimenon optimointikone (teollisuus)

Lampun sytytyspalveluun voi tutustua tarkemmin osoitteessa  http://www.louhia.fi/palvelut/analytiikkamysteerit/.


19.11.2016 / Ville Niemijärvi

Yleensä ensimmäinen asia mitä digitalisaatio monille yrityksille tarkoittaa tai mitä se haluaa edistyneen analytiikan tai data sciencen avulla saavuttaa, on omien sisäisten prosessien tehostaminen.

Tämä tarkoittaa kulujen vähentämistä tai myynnin lisäämistä.

Keinoina käytetään esimerkiksi:

  • markkinoinnin tehokkaampi kohdentaminen
  • varastoarvon optimointi, ennustamalla kysyntää
  • tuotantoprosesseissa vikaantumisen ennakointi
  • hinnoittelun optimointi
  • asiakaspoistuman ennakointi (churn)

Nämä vain muutamina esimerkkeinä.

Seuraavaksi, muutamat aidosti asiakkaan edusta kiinnostuneet yritykset, lähtevät parantamaan asiakaspalvelua, asiakaskokemusta.

Esimerkkinä vaikka  relevantti, asiakaskokemusta parantava viestintä, esimerkiksi ohjaamalla asiakasta ostoprosessissa (case Finnchat on hyvä esimerkki vaikka ei analytiikkaa sisälläkään)

Kolmantena digitalisaation arvoketjussa on kehittää tietoon ja analytiikkaan pohjautuvia uusia palveluja ja tuotteita.

different-ways-to-make-use-of-data-science-louhia-analytics

Usein nämä kolme tietenkin liittyvät toisiinsa. Kun sisäisiä prosesseja kehitetään, esimerkiksi varastoarvoa optimoidaan, tarkoittaa se parempaa palvelutasoa asiakkaalle (ei tarvitse myydä ei-oota).

Uskallan kuitenkin väittää, että 90% suomalaisista yrityksiä on ensisijaisesti kiinnostuneita parantamaan omia sisäisiä prosesseja. Hakemaan pieniä parannuksia kannattavuuteen.

Ja hyvä näin. Tämä on yleensä se helpoin tapa edetä.

Itselle mielenkiintoisempia ja kunnianhimoisempia hankkeita ovat kuitenkin olleet ne missä olemme rakentaneet ihan uutta liiketoimintaa, ihan uusia tuotteita. Tällöin tavoitteena on luoda kokonaan uutta, ehkä pelastaa koko yritys toimialaa uhkaavalta tuholta.

Keinot ovat tarjolla mutta tahtotila puuttuu

Keinot parantaa sisäistä tehokkuutta, parantaa asiakaskokemusta tai luoda uutta liiketoimintaa ovat olleet jo vuosikymmenet.

Data science -osaamisen karttumisen kautta ja uusien pilvipohjaisten, helposti käytettävien työvälineiden avulla, tämä on vain entistä helpompaa.

Mutta se, että asiat on mahdollista tehdä, ei tarkoita että mitään tapahtuu koska valitettavasti monesti yrityksistä puuttuu tahtotila. Väitän, että:

Useimmissa yrityksissä asiakkaan etu ei vain kiinnosta.

Kerron seuraavassa kahdessa blogikirjoituksessa miten itse olen kokenut tämän käytännössä.

Esimerkkinä käytän S-Marketin tuoretuotteiden optimointia sekä Oral Hammaslääkäreiden asiakaspalvelua.

Pysy kuulolla ja siihen asti: pidä asiakkaat tyytyväisenä!


(Musiikkina hiljattain edesmenneen Leonard Cohenin yksi suosikkikappaleista, joka kertoo mistä konsultoinnissa on kyse).


9.11.2016 / Mika Laukkanen

Trumpista presidentti, toipuvatko osakkeet?

Trumpista julistettiin aamulla presidentti ja osakemarkkinat “syöksyivät”. Nyt kello on 14:50 on indeksit näyttävät lähes palanneen lähes ennalleen. Eli ainakin tämä (väliaikainen?) toipuminen oli ripeämpää kuin itse artikkelissa, jossa pureudutaan finanssikriisin 2008 jälkeiseen toipumiseen…

Osakeindeksien hajauttaminen, osa 2 – kriisistä toipuminen

 


14.06.2016 / Ville Niemijärvi

Järjestämme tulevana perjantaina 17.6.2016 klo 8.30-10.00 yhdessä Keski-Suomen Kauppakamarin ja Powen Oy:n kanssa tiedolla johtamisen aamukahvit Jyväskylässä.

Powen kertoo yritysten arjen analytiikasta ja business intelligencestä, minä taas kerron kokemuksia ennakoivasta analytiikasta (machine learning, data science).

Tilaisuus on maksuton ja tarjolla on aamupala. Tervetuloa!

Ilmoittaudu mukaan tästä: http://www.kskauppakamari.fi/koulutus/hajota-hallitse-data

 


16.05.2016 / Lasse Liukkonen

Viime kirjoituksessa käytiin läpi IBM Watson analytics-palvelun käyttökokemuksia ja oleellisia toiminnallisuuksia. Kuten kirjoituksessa tuli luvattua, on seuraavaksi luvassa kurkistus “kilpailevaan” Microsoftin Azure ML-palveluun. Heti kättelyssä voisi kuitenkin mainita, että oikeastaan palvelut painivat eri sarjassa: Watson analytics painottuu tutkivaan aineiston analysointiin ja Azure ML puolestaan prediktiiviseen. Kirjoituksen kannalta oleellisinta onkin saada käsitys siitä miten nämä käsitteiden erot näkyvät konkreettisesti data-analyysin tekemisessä, löydöksissä ja tuloksissa.

Käydään seuraavaksi läpi Azure ML:n käyttöliittymää ja ominaisuuksia esimerkkiprosessin rakentamisen avulla, samaan tapaan kuin Watsonia tarkasteltaessa. Viime kirjoituksessa Katsaus IBM Watson Analyticsiin “uhkailtiin” Niemijärveä tulevasti taskista, hän kuitenkin joutui kieltäytymään piinapenkistä vedoten työkiireisiin, joten toteutin itse esimerkkiaineiston analysoinnin ja mallintamisen (yksinkertaisella tavalla, ikäänkuin en tuntisi aineistoa entuudestaan).

 

1) a. Miten pääsen käsiksi Azure ML-palveluun:

Käytännössä Azure ML-palvelun käyttäminen vaatii Microsoft-tilin, Azure tilauksen (subscription) ja Azure ML workspace:n luontia. Microsoft on kuitenkin luonut mahdollisuuden tutustua palveluun ilman edellä mainittujen toimenpiteiden suorittamista, Guest-tunnuksilla pystyt testaamaan palvelua 8 tunnin ajan. Jo tässä 8:ssa tunnissa pääsee melko hyvin perille palvelun monipuolisuudesta. Azure ML:ssä on myös runsaasti valmiita esimerkkejä, joista voi olla hyötyä ensimmäisillä kokeilukerroilla. Huomioi kuitenkin, että Guest-tunnuksilla joudut käyttökokemuksen osalta turvautumaan esimerkkiaineistoihin. Esimerkkiaineistot ovat suurilta osin selkeitä, joten aikaa ei liiemmin tuhriudu aineistoa ihmetellessä.

23_Azure

1) b. Azure ML-ympäristön luonti:

  • Microsoft-tilin luominen: https://signup.live.com/
  • Lyhyt opastus Azure ML-pavelun käyttöönotosta: https://azure.microsoft.com/en-us/trial/get-started-machine-learning/

Seuraavassa palvelun hinnoittelu, joka koostuu mahdollisesta workspace:n maksusta ja Azure ML:n käytöstä. Yrityskäytössä hinnat eivät todellakaan päätä huimaa…

2_Azure

 

Azure ML-palvelun käyttöönotto ei ole ydinfysiikkaa vaikka aluksi voi kuullostaa monivaiheiselta. Luomasi tilit ja tunnukset ovat likipitäen heti käytössäsi, joten pääset nopeasti käsiksi itse palveluun antiin.

 

2) Palveluun kirjautuminen ja palvelun komponentit

Sitten itse asiaan. Azure ML-palveluun voit kirjautua osoitteessa https://studio.azureml.net/. Kun olet kirjautunut palveluun sinulle pitäisi avautua seuraavan kaltainen näkymä:

24_Azure

 

Welcome-näkymässä on Watson analyticsin tapaan selkeästi ilmaistu palvelun oleellisimmat kokonaisuudet:

Experiment – Tallentamasi prosessiketjut (mallinnus, datan muokkaus, jne…)

Web services – Tallentamasi web service-prosessit (mahdollisuus kutsua esimerkiksi mallinnusprosessiketjua rajapinnan kautta)

Datasets – Tallentamasi aineistot (tai valmiina olevat esimerkkidatat)

Trained models – Tallentamasi ennustemallit

Settings – Workspacen tiedot ja tila

(Projects – Mahdollista kasata projektikohtaiset komponentit yhdeksi kokonaisuudeksi.)

 

3) Luodaan ensimmäinen prosessiketju (experiment), jossa esimerkkiaineistoa aluksi analysoidaan ja lopuksi muodostetaan ennustemalli

+ New kohdasta voit luoda tyhjän prosessiketjun: New -> Experiment -> Blank Experiment

25_Azure

26_Azure

 

Toisin kuin Watsonissa, Azure ML:ssä täytyy käyttäjän itse rakentaa ETL-prosessia muistuttava prosessiketju, jossa eri operaatioita (operaattoreita) linkitetään toisiinsa loogisessa järjestyksessä. Prosessiketjun luonti tyhjästä on kohtalaisen helppoa, jopa ensimmäisellä käyttökerralla. Drag & Drop- käyttöliittymä tekee prosessiketjun luonnista nopeaa ja mielekästä.

Muodostetaan seuraavaksi mallinnuksen prosessiketju palapalalta ja samalla tarkastellaan eri operaattoreiden käyttöä ja ominaisuuksia. Lopullisena tavoitteena on siis luoda malli esimerkkiaineistomme pohjalta, jonka ”ennustetarkkuus” päihittää Watson analyticsin luoman mallin. Lisäksi pyrimme saamaan selville mitkä tekijät (sarakkeet) vaikuttavat poistumaan (kiinnostuksen kohde aineistossa) vahvimmin. Ennustetarkkuus on laitettu lainausmerkkeihin siitä syystä, että Watsonissa ei niinkään laskettu ennustetarkkuutta vaan mallin sopivuutta aineistoon (näin ainakin voisi olettaa tuloksista päätellen).

 

a) Lähdeaineiston lukeminen:

Import Data – operaattorilla pystyt lukemaan aineistosi suoraan Azure:n data storage-lähteistä, esim. Azuren tietokannasta tai blobista (bulkkilevytilaa pilvessä). Kun Import Data-operaattori on hiirellä aktivoitu ilmestyy käyttöliittymän oikeaan reunaan valintalistoja ja muita säädettäviä parametreja. Tässä Properties-osanäkymässä määritellään tarkemmin operaattorin hienosäätöä koskevat parametrit. Säädettävien parametrien määrä vaihtelee operaattorikohtaisesti. Quick-help kohdan linkistä saat tarkempaa tietoa operaattorin käytöstä ja parametrien merkityksestä.

Import Data-operaattorin osalta valitaan esimerkissä lähteeksi Azure DB, jonka jälkeen täytetään tarvittavat tiedot: osoite, käyttäjä, salasana, SQL-kysely…

Jos kuitenkin haluat ladata palveluun lähdeaineistosi lokaalista lähteestä valitse + New -> Datasets -> from local files. Tämä lienee paras (ja ainoa) vaihtoehto ensimmäisellä käyttökerralla, varsinkin, jos muita Azure-palveluita ei ole käytössäsi.

27_Azure

 

b) Jakaumien tarkastelu, visualisoinnit

Azure ML:n omilla komponenteilla ja visualisoinnilla saa todella pintapuolisen raapaisun sarakkeiden/muuttujien jakaumista ja aineiston laadusta verrattuna Watsoniin. Azure ML:n aineiston analysointiominaisuudet eivät ole parhaat mahdolliset, huomattavasti heikommat kuin Watsonissa. Pelkästään ennustemallinnuksen kannalta lähestyttäessä kaikki oleelliset tiedot löytyvät sarakekohtaisesta metadata-näkymästä ja pienestä graafista.

28_Azure

20_Azure

 

Herää kysymys: Jos minulla on paljon sarakkeita, tarvitseeko minun yksitellen aktivoida ne Visualize-näkymässä saadakseni tarvittavat metatiedot koko aineistosta? Ei onneksi! Operaattori-valikosta löytyy Summarize Data-operaattori, jonka avulla saat hieman kattavammat metatiedot aineistostasi yhdessä näkymässä.

 

c) Sarakkeiden metadatan muokkaaminen

Kuten Watsonissa, täytyy myöskin Azure ML:ssä pitää jonkinlaista huolta sarakkeiden rooleista ja tyypeistä, ettei esimerkiksi identifioiva sarake pääse livahtamaan mukaan ei toivotussa merkityksessä. Edellä mainittuja sarakekohtaisia ominaisuuksia pystyt vaihtamaan Edit Metadata-operaattorilla.

29_Azure

 

d) Turhien sarakkeiden redusointi

Analyysin kannalta turhien sarakkeiden pois siivoaminen onnistuu Project Columns-operaattorilla. Huomioi, että esimerkkiprosessissa on poistettu sarakkeet, jotka korreloivat vahvasti keskenään, tästä syystä kuvassa näkyy myös operaattori Compute Linear Correlation, jonka avulla aineistosta lasketaan (numeerisien) sarakkeiden väliset korrelaatiokertoimet. Metadatan asettaminen vaste-muuttujan kannalta ei välttämättä ole oleellinen heti alussa, sillä mallinnusmenetelmissä tulee valita erikseen se sarake, jota halutaan ennustaa.

30_Azure

 

e) Aineiston jakaminen testi- ja opetusaineistoksi

Split Data-operaattorilla pystyt jakamaan aineiston kahteen osaan haluamallasi tavalla (mahdollisuuksia: koon, osuuksien, ehtojen… mukaan). Split Data-operaattori toimii myös yleisesti rivitason redusointi operaattorina. Monimutkaisempi rivitason redusointi voidaan toteuttaa esimerkiksi Regular Expression-option avulla (https://en.wikipedia.org/wiki/Regular_expression).

31_Azure

 

f) Mallien vertailu ja parametrien optimointi

Mallin muodostaminen ja vertaileminen on tehty todella helpoksi. Myöskään mallin hyperparametrien optimointi ei ole yhtään sen haasteellisempaa. Esimerkin prosessiketjussa käytetään hyperparametrin optimoinnissa random sweep vaihtoehtoa, joka voi olla hyödyllinen varsinkin silloin, kun tietämys mallinnusmenetelmien hyperparametrien merkityksistä on vähäistä. Random sweep ei välttämättä päädy “optimaaliseen ratkaisuun”, mutta antaa yleensä huomattavasti default-arvoisia hyperparametrisäätöjä paremmat tulokset.

 

g) Merkitsevien sarakkeiden haarukointi (Permutoimalla)

Poistumaan vaikuttavia tekijöitä (sarakkeita) voidaan selvittää mallispesifisesti Permutation Feature importance-operaattorin avulla. Huomioitavaa tässä tapauksessa on se, että merkitsevyysmittarin arvot ovat mallisidonnaisia, eli jos vaihdat mallinnusmenetelmää on odotettavissa, että merkitsevyydet voivat vaihdella (oleellista ei välttämättä ole niinkään itse lukuarvo vaan eri sarakkeiden merkitsevyyslukujen suhteelliset erot).

33_Azure

35_Azure

 

 

h) Tulosten tarkastelu

Esimerkkiaineiston tapauksessa mallinnusmenetelmä 1 antoi selkeästi paremman tarkkuuden kuin menetelmä 2, joten lopullinen mallin ennustetarkkuus laskettiin käyttäen mallinnusmenetelmä 1:stä (Boosted decision tree). Päihitimme Watsonin “ennustetarkkuudessa”, mutta hävisimme kyllä mallin tulkinnassa selkeästi (valittu mallinnusmenetelmä ei niitä tulkinnallisempia, ensemble-method).

34_Azure

 

36_Azure

Oleellinen ero Watsoniin on siinä, että Azure ML:llä voimme todella ennustaa uutta vasteen suhteen tuntematonta aineistoa, saamme siis ulos asiakaskohtaiset ennusteet. Toki Watson avulla voisimme päätöspuun säännöstön implementoida esimerkiksi Exceliin tai raportointityövälineeseen.

 

Yhteenvetoa (ja vertailua IBM Watson analyticsiin):

1) Azure ML on selkeästi prediktiiviseen analytiikkaan ja aineistojen yhdistämiseen ja muokkaukseen suunnattu palvelu, kuten edellä muodostettu esimerkkiprosessi antanee ymmärtää. Käyttäjän tulee siis tuntea vähintäänkin perusperiaatteet ennustamisesta/aineiston mallintamisesta, sekä mallinnusmenetelmistä ennen palvelun käyttöä ennustamistarkoituksessa.

2) Mikäli yritykselläsi on joku tai joitakin Azuren storage-palveluita on Azure ML järki ratkaisu ennustavan analytiikan työvälineeksi.

3) Azure ML:n omilla operaattoreilla pääsee melko pitkälle mallintamisessa ja tarvittaessa voi turvautua myöskin R:n apuun palvelun sisällä (esimerkiksi aikasarja-analyysi)

4) Azure ML ei ole paras mahdollinen väline aineistojen visualisointiin ja tutkimiseen (jos et ole sinut R-ohjelman ja sen visualisointi-pakettien kanssa)

5) Azure ML oppimiskynnys on hyvin matala ja käyttöliittymä on enemmän tai vähemmän identtinen esimerkiksi Rapidminerin, SSPS Modellerin kanssa, oppimiskynnys on siis hyvin matala

6) Prosessiketjun suorittaminen (ajoaika) kestää välillä turhankin kauan, vaikka tehtäisiin vain yksinkertaisia toimenpiteitä (usein tyypillistä pilvipalveluille). Tämä seikka voi hieman nakertaa alkuvaiheessa, on siis ihan järkevää suunnittella vähintäänkin mielikuvaharjoitteena alustava prosessiketjun kulku ennen toteuttamista.

7) Web servicen rakentamista ei käyty läpi tässä kirjoituksessa, mutta se on pakko nostaa esille tässä yhteenvedossa erittäin positiviisena asiana. Web servicen julkaisu on erittäin helppo toteuttaa Azure ML:ssä, tarvitsee käytännössä asettaa prosessiketjun aineistolähde web servicen inputuksi ja tulostaulu outputiksi. Lisäksi annetaan skriptin pätkät, joilla voidaan web serviceä kutsua esimerkiksi R:llä tai Pythonilla.

 

IBM Watson Analytics                                                Azure ML

37_Azure_Watson

 

Lyhyesti voisi siis tiivistää, että Watson on business-käyttäjän työväline (ei data-analyytikko) ja Azure ML data-analyytikon. Itse käyttäisin molempia, analyysin alkuvaiheessa Watson, lopullisen ratkaisun implementointi ja hienosäätö Azure ML:ssä!

 

 


5.05.2016 / Lasse Liukkonen

Näin Vapun jälkeisissä simoissa ja munkkipöhnässä ajattelin kirjoittaa uudehkosta analytiikan pilvipalvelusta, Watson Analyticsistä. Miksi? Sana Watson on kantautunut näkö- ja kuuloaisteihini hyvin rytinällä viime kuukausien aikana: Koulutuksissa, Linkedin:ssä, vapputivolissa, nakkikioskin jonossa, referenssitarinoissa, lähes kaikkialla.

Tässä kirjoituksessa ei syvennytä palvelun infrastruktuuriin tai luetella kattavaa listaa kaikista nyansseista vaan kerrotaan rehdisti mikä oli näppituntuma ensimmäisen käyttökerran jälkeen, mikä ihastutti, mikä mätti, mitä jäi avoimeksi.

Analytics Watsonista on saatavilla 3 eri versiota: Free edition, Plus ja Professional. Karkeat erot eri versioiden välillä löytyvät täältä, https://www.ibm.com/marketplace/cloud/watson-analytics/purchase/us/en-us#product-header-top. Testasin palvelua Free editionilla, sillä lähteenä testissä oli csv-tiedosto, jonka koko ei päätä huimannut (~5000 riviä, 25 saraketta). Testiaineistoni ominaispiirteet ja mallintamisen ongelmakohdat tunsin entuudestaan, joten mielenkiintoista oli nähdä se, että onko Watsonilla data-analyytikon aivot. Seuraavat tarkastelut ja huomiot koskevat luokittelu-aineiston/ongelman mallintamista (esimerkkiaineiston mielenkiinnon kohteena 2-luokkainen vaste).

 

1) Tutustuminen Watson Analyticsiin esittelyvideon avulla

Ennen palvelun hands-on-testaamista katsoin youtubesta esittelyvideon, jotta varmistuin siitä, että minun todella kannattaa tutustua palveluun. Olin melko vakuuttunut ”myyntivideon” annista, joten seuraavaksi menin ja loin tilin (IBM-id) osoitteessa http://www.ibm.com/analytics/watson-analytics/us-en/. Tilin luominen oli suoraviivaista ja pian olin jo kirjautumassa palveluun. Sivuhuomiona mainittakoon, että sähköpostiini ei ole tullut yhtään spämmiä tilin luomisen johdosta, pisteet siitä IBM:lle.

 

2) Welcome to Watson Analytics – eli Mitä Watsonilla voi tehdä?

Palveluun kirjautuessa avautuu selkeä Welcome-näkymä, josta näkee pääpiirteittäin mitä eri asiakokonaisuuksia Watson Analyticistä löytyy:

(+) Add – Lataa aineistosi tai jokin Watsonin esimerkkiaineistoista tarkasteltavaksi (tai sovella jotain seuraavista komponenteista jo ladattuun aineistoon)

Explore – Tutki aineiston rakennetta: Aineiston laatu, metatiedot, jakaumat, korrelaatiot, aggregoidut jakaumat, …

Predict – Muodosta automaattisesti ennustemalli aineiston pohjalta: Ennustemalli, tulkinnat, merkittävät tekijät, korrelaatiiviset suhteet, …

Assemble – Rakenna oma raporttinäkymä löydöksistäsi (ei käsitellä kirjoituksessa)

Social Media – Hae sosiaalisen median generoimaa tietoa (Twitter) hakusanojen avulla vrt. Google Trends

Refine – Muokkaa palveluun lähettämääsi aineistoa

1_Watson

Lähtökohtaisesti näytti siltä, että Watson Analyticssä on kaikki mitä tarvitsen, kuinka sitten Watson onnistui toteuttamaan fantasiani aineiston tarkastelun ja mallintamisen suhteen? Seuraavassa askel askeleelta testisession eteneminen:

 

3) Refine – Latasin aineistoni palveluun, halusin kuitenkin tehdä pieniä muokkauksia ennen aineiston syvällisempää analysointia ja mallintamista

Watsonissa pystyi helposti luomaan rivi- ja saraketason filtteröintejä aineistoon, sekä luomaan uusia laskennallisia sarakkeita. Esimerkkinä loin 4 uutta saraketta, jotka olivat laskennallisia jo olemassa olevista sarakkeista (jakolasku). Lähdeaineiston muokkaus oli visuaalista ja helppoa, mutta melko rajallista vaativampiin muokkauksiin.

2_Watson3_Watson

6_Watson

 

Pystyykö Refine-komponentilla yhdistelemään aineistoja? Entä aggregoimaan raaka-aineistoa mallinnettavaan muotoon? Pystyykö määrittelemään sarakkeiden tyypit, ts. pystyykö numeerisilla arvoilla täytetyn sarakkeen luokiteltuna? Pienen tutkimisen jälkeen en ainakaan itse löytänyt vastauksia palvelun sisältä.

Pyri siis muokkaamaan mallinnettava aineistosi oikeaan formaattiin ennen Watsoniin lataamista. Kevyet rivi- ja saraketason laskennat voit hoitaa kuitenkin palvelun sisällä, kunhan aineisto on valmiiksi oikeassa formaatissa.

 

4) Explore – Ennen aineiston mallintamista halusin saada ennakkokäsityksen aineiston laadusta ja jakaumista

Explore-komponentissa sai tarkasteltua aineistoa helposti ja nopeasti eri näkökulmista. Explore-ominaisuuteen oli selkeästi panostettu Watsonissa, aineiston pyörittelyä saattoi kutsua jopa taivaalliseksi!. Niin sulavaa ja helppoa, R:ssä samojen tarkasteluiden tekemisessä olisi mennyt useita tunteja, mitä Watsonissa pystyi tekemään muutamissa minuutissa. Fantastico!

Lataa aineistosi Watsoniin tarkastelua varten, elä turhaan pyri laittamaan aineistoasi tiptop kuntoon yhdeltä istumalta Excelissä (tai millä ohjelmalla aineistoa ikinä muokkaatkin). Anna Watsonin kertoa missä kunnossa aineistosi on!

11_Watson

 

5) Predict – Kun oli päästy sinuiksi aineiston kanssa oli aika muodostaa ennustemalli

Ennen mallintamista aineistoon pystyi määrittelemään sarakkeiden roolit, ts. pystyi rajaamaan mitä sarakkeita mallin luomisessa tuli käyttää hyväksi ja mitkä piti jättää huomiotta (esimerkiksi identifioivat sarakkeet). Nopean sarakkeiden roolituksen jälkeen alkoi Watsonin aivot raksuttamaan. Mitä Watson teki ja mihin johtopäätöksiin päädyttiin?

13_Watson

 

14_Watson

 

15_Watson

 

Mallinnusmenetelmä

Mallinnusmenetelmäksi Watson valitsi päätöspuun, tarkemmin ilmaistuna CHAID Decision tree (Chi-squared Automatic Interaction Detection). Watson automaattisesti diskretisoi jatkuvat sarakkeet luokkiin ja muodosti luokitellun aineiston avulla päätöspuun. Entä jos aineistossani olisi ollut enemmän sarakkeita tai vastaavasti rivejä merkittävästi vähemmän, olisiko Watson hylännyt menetelmän ja esittänyt muun mallinnusmenetelmän tulokset? (tilanteet, joissa CHAID ”ajautuu” ongelmiin diskretisoinnista johtuen). Tiedän, että Watson kykenee muodostamaan myös logistisen regression (sisältäen muuttujien diskretisoinnin), ehkä siihen olisi päädytty mainitussa tilanteessa.

16_Watson

 

20_Watson

 

Mallin ennustetarkkuus

Mitä tarkalleen tarkoittaa Predictive strength? Tarkasteltavan aineiston osalta mittari näyttää 90.3%, onko kyseessä suoraan oikein ennustettujen osuus kaikista havaintoriveistä? Kyllä vain. Tämän osalta olisi suotavaa, että valittavana olisi useampia eri mittareita mallin tarkkuuden tarkastelemiseen. Mallin tarkkuus 90.3% kuullostaa melko hyvältä, Watson kuitenkin ilmoittaa, että mallin ”ennustevoima” on heikko. Selkeästi jotain muitakin tarkkuuden mittareita on käytössä, mutta ne pysyvät taustalla. Watsonissa on huomioitu se seikka, että vaste-sarakkeen jakauma voi olla hyvinkin vino, kuten esimerkkiaineistossa (asiakaspoistuma). Tästä johtuen on mahdollista tarkastella mallinnustuloksia myös eri näkökulmista.

28_Watson

 

27_Watson

 

Merkittävät selittävät tekijät ja mallin tulkinta

Watson antaa ainakin päätöspuun tapauksessa kaikki tarvittavat yksityiskohdat mallin tulosten tulkitsemisesta, jopa siten, että Watson tulkitsee sinulle valmiiksi kaikki oleellisimmat säännöt ja huomiot mallintamisen yksityiskohdista. Esimerkkiaineiston tapauksessa tulee selkeästi esille mitkä ovat poistumaan eniten vaikuttavat tekijät. Ihailtavan kattava yhteenveto!

 

18_Watson

 

Mitä muuta sain irti Predict-komponentista

  • Predict-näkymässä pystyi tarkastelemaan sarakkeiden välisiä korrelaatioita käden käänteessä, tämä on erittäin hyvä ominaisuus tulkinta vaiheessa, kun ihmetellään, että miksi joku sarake ui malliin mukaan ja toinen ei (syy saattaa löytyä sarakkeiden välisestä korrelaatiosta)
  • 19 saraketta sisältää poikkeavia havaintoja
  • 10 sarakkeella on vino jakauma
  • 2 luokiteltua saraketta on epätasapainoisia
  • Ennustetarkkuudelta parhaaseen malliin valittiin 9 selittävää saraketta

22_Watson

 

Watsonin luoma kokonaisuus mallinnuksen tuloksista on todella kattava, jopa niin kattava, että suurin osa testisession ajasta meni ihmetellessä tuloksia. Tämä on tietysti palvelun tarkoituskin. Kattavuudesta huolimatta minulle jäi joitakin kysymysmerkkejä ilmaan:

Mistä saa esille aineiston poistumatodennäköisyyksineen? Miten Watson otti huomioon ylioppimisen, käyttikö se hyväkseen testi-/opetusaineisto ideologiaa? Tuleeko Watsoniin ominaisuus, jolla luotua mallia voidaan käyttää ennustamiseen vai onko tarkoitus vain selvittää mitkä tekijät vaikuttavat vasteeseen ja millä tavalla?

Kaiken kaikkiaan olen melko vakuuttunut Watsonin kyvyistä mallintamisen suhteen, päädyin itse hyvin samankaltaiseen malliin tehdessäni vertailuanalyysin Rapidminerillä. Vaikuttaa siltä, että Watson analytics on rakennettu Explore-komponentti edellä ja Predict-komponentti tulee kehittymään vielä tulevaisuudessa, jotta päästään todella ennustamaan muodostetulla mallilla. Voin suositella kokeilemaan Watsonin luomaa mallia referenssimallina, vaikka lopullisen mallin tekisitkin jollain muulla välineellä, sillä Watson voi paljastaa jotain, jota et ehkä ole itse huomioinut.

 

5) Yhteenveto:

Watsonin vahvuudet:

Helppokäyttöinen – Matala oppimiskynnys

Visuaalisuus – Näyttävät ja monipuoliset graafit, sekä raportointimahdollisuudet pelkästään hiirtä klikkailemalla

Nopeus – Watson toimii yllättävän stabiilisti ja nopeasti pilvipalveluksi (ainakin testin aikana)

Tulosten tulkinta – Tuloksia tulkitaan valmiiksi käyttäjälle ja tuloksien auki perkaaminen on toteutettu todella kattavaksi

Watsonin heikkoudet:

Datan muokkaus – Vähänkään vaativammat datan muokkaukset eivät onnistu? (esim. datan yhdistäminen)

Itse ennustaminen – Ennustamisessa saadaan selville mitkä tekijät vaikuttavat kiinnostuksen kohteena olevaan sarakkeeseen, mutta muodostetulla mallilla ei ilmeisesti pysty (ainakaan vielä) ennustamaan uuttaa aineistoa (esim. nykyasiakkaita)

Ei räätälöitävissä – Ennustemallin toteuttaminen on tehty liiankin automaattiseksi, ei kauheasti mahdollisuuksia vaikuttaa siihen mitä mallinnuksessa tapahtuu

 

Entä miten Watson Analytics pärjää taistelussa Azure ML:n kanssa? Siitä seuraavassa kirjoituksessa lisää. Laitettiin nimittäin Niemijärvi mallintamaan, jotta palveluiden vertaaminen olisi tasavertaista. Päihittääkö Watson “ei-niin-kokeneen” datakemistin?


15.04.2016 / Lasse Liukkonen

Tässä onkin mennyt jo tovi edellisestä analytiikkaan liittyvästä blogi-postauksesta, joten allekirjoittanut nakitettiin tarinoimaan. Selattuani hetken läppärin aarteita, huomasin, että on tullut tehtyä ristiinmyynnin ennustaja, kutsuttakoon sitä tästä eteenpäin ristiinmyyjättäreksi, jonka tuloksena saadaan riistiinmyynnin odotetut katteet asiakaskohtaisesti kaikille relevanteille ristiinmyytäville tuotteille. Kuullostaa melko hyvältä, en muista nähneeni vastaavaa kapistusta tarjottavan.

Seuraavassa kertaus ristiinmyynnin kysymyksistä kuvan muodossa:

Ristiinmyynti_picture2

 

Oletetaan tästä eteenpäin, että tarkastelemme liiketoimintaa, jossa saatavilla on “kattavat” asiakaskohtaiset taustatiedot ja asiakkaiden ostohistoria tuotemyyntien lisäksi.

Ristiinmyynnin ennusteiden toteutus ostoskorianalyysin avulla ottaa huomioon vain tuotteiden väliset relaatiot. Oletuksena on siis tässä tapauksessa se, että “Maija 20 vee stadist” ja “Pertsa 60 vee pohjanmaalt”  ostavat tuotteen B yhtä todennäköisesti, kun he omistavat jo tuotteen A. Tämä voi olla hyvin kaukana todellisesta tilanteesta ja ostoskorianalyysi tuottaa kieroutuneita tuloksia asiakaskohtaisesti! Hyvää ostoskorianalyysissä on kuitenkin se, että sen tulokset ovat laskettu suoraan datasta, jolloin mallin tuottamaa harhaa ei synny. Yleisellä tasolla ostoskorianalyysin tulokset ovat siis käyttökelpoisia.

Ristiinmyynti_picture4

Ristiinmyynti_picture3

Ristiinmyynnin ennusteiden toteutus luokitteluongelman näkökulmasta ottaa huomioon asiakkaiden taustatiedot, mutta koska asiakaskohtaiset ristiinmyyntiennusteet joudutaan tekemään automaattisesti tuotteittain, saattavat mallien tuottamat tulokset olla hyvin poikkeavia yleisestä tuotteiden välisestä relaatiosta. Mikäli jonkun tuotekombinaation osalta asiakkaan taustatiedot eivät selitä ostopäätöksiä, niin tämä ei haittaa sillä tällöin ostotodennäköisyydet vastaavat ostoskorianalyysin tuottamia tuloksia kyseisen tuotekombinaation osalta.

Ristiinmyynti_picture5

Kuten arvata saattaa, yhdistää raapustami ristiinmyyjätär näiden kahden mallinnustavan tulokset, jolloin ei ehkä kaikkien asiakkaiden osalta saavuteta täysin optimaalisia  ristiinmyyntiennusteita (riippuu asiakkaan taustamuuttujien selitysvoimasta), mutta ei myöskään voida mennä täysin metsään.

Ristiinmyyjätär on toteutettu R-ohjelmalla ja sen osaset ovat pähkinänkuoressa seuraavat:

  1. Suoritetaan ostoskorianalyysi, jonka avulla saamme tuotekohtaiset relaatiot, sekä saamme karsittua tuotekombinaatioita seuraavaa vaihetta varten, joka haukkaa suuren määrän laskenta-aikaa ja muistia
  2. Muodostetaan luokittelumallit jokaiselle kohdan 1. säännöissä (tuloksissa) esiintyville tuotteille ja kahden tuotteen kombinaatioille
  3. Yhdistetään tulokset käyttämällä “optimaalista” painotussuhdetta, joka perustuu mm. edellisen kohdan mallien tarkkuuskriteereihin
  4. Kootaan ristiinmyyntiennusteet yhteen tauluun ja lasketaan odotetut tuote- ja asiakaskohtaiset katteet tuotetietojen avulla (tuotteen hinta-ostohinta, eli kate)

Kohdan 2. mallien lukumäärä räjähtää helposti valtavan suureksi, joten suoritusjärjestys tulee nähdäkseni olla juuri yllä mainittu. Yllä mainitun ristiinmyynnin mallinnustavan implementointi R-koodiksi ei ole aivan ongelmatonta muistinkäytön suhteen. Tulokset tulee laskea osissa ja suuren asiakaskannan tilanteessa tulee 2. kohdan mallinnus toteuttaa useammassa erässä.

Ristiinmyynti_picture6

 

Seuraavassa todiste siitä, että ristiinmyyjätär on totta, eikä pelkkää sanahelinää powerpointissa ja blogissa

Ristiinmyynti_picture

Kuvassa on kahden eri näkökulman kannalta otettu esimerkit myyjättären tuloksista.

Kuvassa A on asiakkaalle 25874 tarjottavat potentiaaliset tuotteet ProductB-sarakkeessa ja tuotteiden odotetut katteet (kate painotettu ostotodennäköisyydellä) sarakkeessa Expected_marginB. Tässä tapauksessa asiakkaalle A voisi tarjota esimerkiksi tuotteita 486, 537, joilla on suurin odotettu kate.

Toisaalta, jos varastossa sattuu olemaan tuotetta 486 liian kanssa, voidaan tulosten avulla filtteröidä joukko asiakkaita kenelle tarjotaan kyseistä tuotetta, ts. kenen asiakkaiden osalta odotettu kate on suurin tuotteen 486 osalta.

Tulostaulut on muodostettu siten, että asiakkaat eivät ennestään omista sarakkeessa ProductB olevia tuotteita, joten tarjottavat tuotteet saadaan molemmissa tapauksissa haettua helposti esimerkiksi sql-kyselyllä.

Kuvia vertaamalla huomaa, että odotetut katteet saattavat asiakaskohtaisesti vaihdella merkittävästi, esim. tuotteen 486 estimoitu odotettu kate asiakkaalle 25874 on 2.17e, kun vastaavasti asiakkaalle 20222 se on 5.78e.

 

 

 


5.02.2016 / Ville Niemijärvi

Pidin viikko sitten Talentum Eventsillä kurssin: Asiakkuuksien johtaminen analytiikan avulla.

Saamani kurssipalaute on alla. Kiitos kaikille osallistujille ja iso kiitos palautteesta. Se vie kurssia oikeasti eteenpäin.

Julkaisen palautteen (kuten myös edellisestä BI-työväline kurssistani) piiskatakseni itseäni parempaa suoritukseen. Kun asettaa itsensä arvioinnin kohteeksi, pyrkii automaattisesti aina parempaan ja parempaan. Toisaalta julkaisemalla nämä helpotan asiakkaiden ostopäätöstä: tällaista täältä saa. Ei yhtään huonompaa mutta ei parempaakaan. Kolmanneksi: tykkään päteä. Niin kuin kaikki.

Mutta siihen palautteeseen.

Keskinkertainen on ajanhukkaa

Kokonaisarvosana oli 4/5.

Joku heikkomielinen voisi tulkita tuon kohtalaiseksi tulokseksi mutta kun tavoitteena on olla Suomen paras kouluttaja, ei tällä tuloksella voi kuin pyyhkiä ahteria ja kääntää pää häpeään.

Joku antoi kolmosen. Hitto kolmosen. Se on kohteliaasti ilmaistuna, että: en ollut tyytyväinen. Olisin voinut käyttää aikana paremminkin. Keskinkertaista.

Kolmonen on yhden vajaa kakkonen, joka on yhtä kuin paska kurssi.

Lunasta selkähieronta

Lupasin kurssin alussa osallistujille: jos tämä ei ole paras analytiikan kurssi missä olette olleet, saatte kaksi tuntia ilmaista konsultointia. Tai ihan mitä tahansa. Hartiahieronnan, auton pesun, hoidan viikonlopun ostokset. Ei tarvitse muuta kuin tehdä reklamaatio.

Ja kolmonen on yhtä kuin reklamaatio. Se ei ole paras kurssi, se on selvä.

Joten se kuka antoi kolmosen, kiitos. Ilmoittaudu minulle (ville.niemijarvi ät www.louhia.fi) ja lunasta korvauksesi.

Ja tässä se palaute

Vastausprosentti oli 83 %, eli viisi kuudesta osallistujasta vastasi palautekyselyyn. Arviointiasteikko on 5-1, jossa 5 on erinomainen ja 1 heikko.

Kouluttaja

Yhteensä
5 4 3 2 1
Ville Niemijärvi, Louhia Consulting Oy 1/20% 3/60% 1/20% 0/0% 0/0% 100%
Yhteensä 1 kpl /20% 3 kpl / 60% 1 kpl / 20% 0 kpl / 0% 0 kpl / 0% 4,00

 

Kirjallinen palaute

  • Villellä oli hyvä ja osallistava ote.
  • Osaava, innostava, mukaansa ottava kouluttaja, joka osallisti myös kuulijat. Jossain määrin aineisto hieman sekavaa, ehkä johtuen siitä että tämä oli ensimmäinen koulutus aiheesta.
  • Hyvää asiaa selkeästi esitettynä
  • Aihe oli kiinnostavaa ja kouluttajan osaaminen ja paneutuminen asiaan erinomaista. Demot, joita käytiin läpi olivat ehkä liiaksi painottuneet tekniseen toteutukseen, kun olisin kaivannut enemmän käytännön esimerkkejä toteutuksista, joissa analytiikkaa on hyödynnetty.

28.01.2016 / Lasse Liukkonen

“Deep learning”- termiin törmää nykyisin monessa yhteydessä, esimerkiksi lukiessaan kagglen kilpailujen tuloksia tai alan kirjoituksia (machine learning). Google Trendsistä tarkastettuna “deep learning” tai tuttavallisemmin syväoppiminen on alettu hypettämään 2012 vuoden lopusta lähtien ja termin viljeleminen internetissä on ollut liki eksponentiaalisessa nousukiidossa. Mistä oikein on kyse?

Syväoppimisen voi ymmärtää monella tapaa. Joillekin se voi merkitä ainoastaan perinteisien mallinnusmenetelmien soveltamista, askeleena raportoinnista kohti ennustavaa analytiikka. Omasta näkökulmasta ajateltuna kyseessä on joukko mallinnusmenetelmiä normaalia kompleksisempien datastruktuurien tai ilmiöiden mallintamiseen/ennustamiseen. Tekisi mieli sanoa, että syväoppiminen on suurilta osin erityyppisten neuroverkkojen (convolution, radial basis, recurrent, stochastic,…) tuunaamista ja optimoimista erilaisiin tavallista haastavampiin mallinnusongelmiin. Tälläisiä ongelmia ovat esimerkiksi käsialan (kirjainten ja numeroiden) ja puheen tunnistaminen, genetiikan mallinnusongelmat. Kyseiset mallinnusongelmat voivat olla tyypiltään supervised- tai unsupervised (mitä nämä ovat suomeksi? itseoppiva ja ei-itseoppiva?).

Vahvasti kuitenkin näyttää siltä, että myös ns. tukivektorikoneen (SVM) käyttöä voidaan pitää syväoppimisena, tämä on hyvin ymmärrettävää, sillä todellisuudessa suurin osa kyseisen menetelmän soveltajista ei oikeastaan tiedä yhtään mitään siitä, mitä mallinnuksen aikana tapahtuu matemaattisesti, enkä voi myöskään suosittele kaikkia ottamaan selvää asiasta, ainakaan kovin syvällisesti. Perusperiaatteen tunteminen yksinkertaisessa tapauksessa on tietysti suotavaa. Lisäksi todettakoon, että tukivektorikone ja neuroverkko eivät itseasiassa pohjimmiltaan eroa kovinkaan suuresti toisistaan, joten on perusteltua lisätä tukivektorikoneet samaan kategoriaan, kun rajoitetaan tarkastelu supervised-tyyppisiin syväoppimisen menetelmiin.

“Tavanomaisiin” mallinnusongelmiin (supervised & verrattain selkeä datan rakenne) käytettävissä neuroverkoissa on tavallisesti yksi, tai maksimissaan kaksi tasoa (hidden layers). Syväoppimisessa käytettävien neuroverkkojen tasojen määrä voi olla huomattavasti suurempi, joka mahdollistaa kompleksisemman datan rakenteen mallintamisen. Itseasiassa syväoppimiseen luokiteltavien neuroverkkotyyppien rakenne ja estimointimenetelmät mahdollistavat sen, että laskennan takana ei tarvita välttämättä yhtä paljon rautaa kuin saman mallinnusongelman ratkaisemisessa tavanomaisella neuroverkolla. Tästä syystä tasojen lisääminen ei välttämättä muodostu laskennallisesti mahdottomaksi.

Tein kenttäkokeita syväoppimiseen lukeutuvilla neuroverkoilla luokitteluongelmille, joihin business-maailmassa törmää usein ja vertasin tuloksia perinteisempien menetelmien (satunnainen metsä, boostattu päätöspuu) tuloksiin, tässä joitakin huomioita:

a. Neuroverkon parametrien optimointi (~15-20 parametria, mm. tasojen lkm, regularisointiparametrit, aktivointifunktioit.) muistutti läheisesti tietokoneen tweekkaamista, ts. laskenta-ajan mahdottomuus vs. luokittelutarkkuus. Joidenkin parametrien merkityksestä itse neuroverkon estimointiprosessissa ei itselläni ollut mitään hajua (laiskuus iski, en jaksanut selvittää ja/tai ymmärtää kaikkien syvällistä merkitystä!). Onneksi käyttämäni ohjelma kertoi arvioidun jäljellä olevan laskenta-ajan suhteellisen osuuden, joten joidenkin parametrikombinaatioiden osalta oli peli vihellettävä poikki hyvissä ajoin!

b. Satunnainen metsä ja boostattu päätöspuu suoriutuivat mallinnusongelmista yhtä hyvin kuin neuroverkko, pienemmällä määrällä parametrien säätöä. Neuroverkon laskenta-ajan käytin taustamuuttujien muunnoksien muodostamiseen ja muuttujien valintaan. Neuroverkkoihin syötin taustamuuttujat sellaisenaan.

c. Neuroverkon parametrien optimointi suoritettiin intensitiivisenä rinnakkaislaskentana, joten koneen käyttäminen laskenta-aikana oli liki mahdotonta. Tästä tuli mieleen tunnettu slogan “jää aikaa muuhunkin”. Ilman rinnakkaislaskentaa olisi mallinnukset kestäneet arviolta 3 kertaa kauemmin.

d. Enpä oikeistaan ymmärtänyt mitä neuroverkon opettamisessa tapahtui, täysin blackbox… No tulokset olivat kuitenkin yllättävän hyviä manuaaliseen iteroimisvaivaan nähden, rauta hoiti hommat. Tulokset olivat vahvasti sidoksissa parametrien optimointiin, joten optimointi oli välttämätöntä.

Yhteenvetona voisi todeta, että neuroverkkoa (syväoppimiseen lukeutuva/lukeutuvat) käytettäessä analyytikon manuaalinen iteraatiokierroksiin käytetty aika käytettiin laskenta-aikaan. Satunnaisen metsän ja boostatun päätöspuun parametrien optimointi tuntui varsin tylsältä ja yksinkertaiselta. Fiilis neuroverkon estimoinnin valmistumisesta ja tulosten tupsahtamisesta toi mieleen joulunajan odotuksen ja lahjojen avaamisen: aina ei piinallisen odottelun jälkeen lahja (mallin tarkkuus) ollut mieleinen tai vastaavasti joulupäivänä seuraavan jouluun (estimoinnin valmistuminen) odottaminen tuntui tolkuttoman pitkältä ajalta.

Omien kenttäkokeiden perusteella suurin osa supervised-tyyppisistä yritysmaailman mallinnusongelmista ei välttämättä tarvitse syväoppimisen menetelmien kirjoa, voi kuitenkin joskus olla järkevää jättää yöksi kone jauhamaan neuroverkkojen (ja tukivektorikoneiden) pariin saadakseen jonkin benchmark-tuloksen perinteisimmille, ehkä hieman tulkinnallisemmille menetelmille.

Itse en ole suuri neuroverkko tai tukivektorikone fani/spesialisti, mutta lupasin itselleni jatkossa hyödyntää koesession oppeja ja valmiita syväoppimisen aihioita päivittäisessä mallinnustyössäni enemmän. Syväoppimisen menetelmiin syvällinen perehtyminen ei siis välttämättä ole aivan tarpeen ellei työnkuvaasi kuulu unsupervised-ongelmien ratkominen, joissa tulet ennen pitkään törmäämään hypetettyyn käsitteeseen halusit sitä tai et.