Kemikaaliannoksen optimointidemo toteutettiin koneoppimiseen perustuvana sovelluksena, jonka tavoitteena oli tukea vedenkäsittelyprosessin ohjausta ennustamalla optimaaliset prosessiarvot vaihtelevissa olosuhteissa. Demo hyödynsi valvomosta saatavaa historiadataa ja muodosti sen perusteella suosituksen PIX-kemikaalin annokselle sekä prosessin alku-pH:lle siten, että flotaatiossa saavutettiin mahdollisimman tasainen vedenlaatu. Sovellus suunniteltiin päätöksenteon tueksi eikä se korvannut operaattoria, vaan tarjosi laskennallisen ja historiadataan perustuvan lähtökohdan annostuksen ja pH-säädön valintaan.
Toteutus rakentui kahden päävaiheen varaan. Ensin data eheytettiin siten, että koneoppimismallille jäi käyttöön vain luotettavaa ja prosessin normaalikäyntiä kuvaavaa aineistoa. Tässä vaiheessa poistettiin epärealistisia arvoja ja rajattiin aineisto tilanteisiin, joissa prosessi oli ollut käynnissä normaalisti. Tämän jälkeen rakennettiin ennustemallit, joiden avulla voitiin tuottaa suosituksia eri prosessiolosuhteisiin. Mallit toteutettiin LightGBM-menetelmällä ja ne jaettiin virtaama- ja lämpötilaluokkiin, jotta ne huomioivat prosessin käyttäytymisen vaihtelun eri kuormitus- ja lämpötilatiloissa.
Demon käyttö jakautui kahteen pääskenaarioon. Ensimmäisessä sovellus tuotti yksittäisen prosessihetken perusteella suositellun alku-pH:n ja PIX-annoksen reaaliaikaisen ohjauksen tueksi. Toisessa tarkasteltiin historiadataa, verrattiin mallin suosittelemia arvoja aiemmin käytettyihin annoksiin ja muodostettiin tiivistetty näkymä tyypillisistä optimiarvoista eri olosuhdeluokissa. Näin demo palveli sekä operatiivista päätöksentekoa, että kehitys- ja analytiikkatarpeita.
1 DATA JA PROSESSIN YMMÄRTÄMINEN
Koneoppimissovellusten rakentamisessa mallien kehitys ei tyypillisesti alkanut algoritmien valinnalla, vaan kohdeprosessin ja käytettävän datan ymmärtämisellä. Mallin suorituskyky riippui ensisijaisesti siitä, kuinka hyvin prosessin käyttäytyminen oli hahmotettu ennen mallinnusta. Tässä työssä analysoitiin, miten raakaveden sameus, virtaama ja lämpötila vaihtelivat ajassa ja millä tavoin nämä vaihtelut heijastuivat kemikaaliannostukseen sekä flotaatiossa saavutettuun vedenlaatuun. Tavoitteena oli muodostaa kokonaiskuva prosessin toiminnasta eri olosuhteissa ja tunnistaa ne muuttujat, joilla oli todellista merkitystä optimoinnin kannalta.
Historiadataa tutkittiin systemaattisesti visualisointien avulla. Aikasarjakuvien avulla tarkasteltiin mittausten kehitystä pitkällä aikavälillä ja arvioitiin esimerkiksi vuodenaikojen, kuormitustilanteiden ja poikkeavien jaksojen vaikutuksia. Hajontakuvien ja jakaumien avulla selvitettiin muuttujien välisiä riippuvuuksia sekä tyypillisiä arvoalueita. Visualisointi toimi keskeisenä työkaluna sekä prosessikäyttäytymisen hahmottamisessa että poikkeavien havaintojen tunnistamisessa ennen varsinaista mallinnusta.
Datan ymmärtämiseen sisältyi myös aikaleimojen ja eri mittauslähteiden yhteensovittaminen. Prosessimittaukset eivät olleet kaikilta osin täydellisesti synkronoituja, ja pienetkin aikasiirtymät saattoivat vaikuttaa siihen, mitä syy–seuraussuhteita malli oppi. Aineiston eheyttä tarkasteltiin huolellisesti ennen mallinnusvaihetta, sillä koneoppimismallit pystyivät oppimaan vain sen, mitä aineistossa oli edustettuna. Huolellinen perehtyminen prosessiin ja dataan vähensi riskiä rakentaa teknisesti toimiva mutta operatiivisesti epäluotettava ratkaisu.
2 DATAN ESIKÄSITTELY
Datan esikäsittely on keskeinen vaihe koneoppimissovellusten rakentamisessa, sillä mallin kyky oppia riippuu suoraan syötetyn aineiston laadusta. Esikäsittelyn tavoitteena on muuntaa raakadata sellaiseen muotoon, että se on rakenteeltaan yhtenäistä, tilastollisesti järkevää ja mallinnukseen soveltuvaa. Käytännössä tämä tarkoittaa puuttuvien arvojen käsittelyä, epärealististen havaintojen poistamista tai korjaamista, mittayksiköiden ja aikarakenteen yhtenäistämistä sekä tarvittaessa muuttujien muuntamista mallin oppimista tukevalla tavalla.
Puuttuvien arvojen käsittely on yksi keskeisimmistä esikäsittelyvaiheista. Yksittäiset satunnaiset puuttuvat havainnot voidaan usein poistaa tai korvata tilastollisin menetelmin, kun taas laajemmat puutteet saattavat edellyttää koko havaintojakson hylkäämistä. Ratkaisu riippuu aineiston rakenteesta ja käyttötarkoituksesta. Lisäksi esikäsittelyssä tarkastellaan mittausvirheitä, nollaarvoja ja poikkeavia havaintoja, jotka voivat vääristää mallin oppimia riippuvuuksia, mikäli niitä ei käsitellä hallitusti.
Aikasidonnaisessa datassa keskeinen osa esikäsittelyä on mittauslähteiden synkronointi ja aikaleimojen eheys. Mikäli eri lähteistä peräisin olevat havainnot eivät vastaa samaa ajankohtaa, malli voi oppia virheellisiä syy–seuraussuhteita. Tämän vuoksi datan yhdistäminen, dublikaattien poistaminen ja havaintojen kohdistaminen yhteiseen aikarakenteeseen ovat olennaisia toimenpiteitä. Lisäksi muuttujien jakaumia voidaan tarkastella ja tarvittaessa muuntaa esim. logaritmimuunnoksella, mikäli jakaumat ovat voimakkaasti vinoja ja heikentävät mallin oppimista.
Tässä demossa esikäsittely toteutettiin näiden yleisten periaatteiden mukaisesti siten, että aineisto rajattiin edustamaan normaalia prosessikäyttäytymistä ja mallille syötettiin vain teknisesti ja operatiivisesti perusteltuja havaintoja. Näin varmistettiin, että mallinnusvaiheessa opitut riippuvuudet perustuivat todellisiin ilmiöihin eikä satunnaisiin tai virheellisiin mittauksiin.
3 MALLINNUS JA VALIDOINTI
Koneoppimissovelluksen mallinnusvaiheessa keskeistä on valita menetelmä, joka vastaa ennustettavan muuttujan luonnetta ja aineiston rakennetta. Jatkuvien suureiden ennustaminen edellyttää regressiomalleja, mutta sopivan algoritmin valinta ei perustu yksinomaan ennustetarkkuuteen, vaan myös mallin kykyyn käsitellä aineiston epälineaarisuutta, muuttujien välisiä vuorovaikutuksia ja kohinaa. Prosessidatan tapauksessa nämä ominaisuudet korostuvat, sillä mittausten väliset riippuvuudet eivät useinkaan ole lineaarisia. Tässä demossa useita menetelmiä tarkasteltiin iteratiivisesti, ja aineiston rakenteen perusteella gradient boosting -pohjainen puumalli osoittautui tarkoituksenmukaiseksi ratkaisuksi.
Mallin suorituskykyyn vaikutti algoritmin lisäksi ratkaisevasti piirteiden suunnittelu eli feature engineering. Raakamuuttujia voitiin muokata tai yhdistellä siten, että ne kuvasivat prosessin käyttäytymistä informatiivisemmin. Prosessikontekstissa tämä tarkoitti esimerkiksi muuttujien välisen vuorovaikutuksen huomioimista mallissa. Samalla mallin hyperparametreja säädettiin, jotta löydettiin tasapaino alisovituksen ja ylisovituksen välillä. Tässä demossa hyperparametrisäätö toteutettiin siten, että malli säilytti hyvän tarkkuuden myös vaihtelevissa olosuhteissa.
Mallien validointi on olennainen osa kehitysprosessia. Suorituskykyä arvioidaan numeerisilla metriikoilla, mutta myös visuaalisella tarkastelulla ja ilmiön asiantuntija-arviolla. Erityisesti on varmistettava, että malli toimii koko arvoalueella eikä vain keskimääräisissä tilanteissa. Prosessisovelluksissa tämä tarkoittaa usein sitä, että mallin käyttäytyminen tarkastellaan myös kuormituksen ja laatuarvojen ääritilanteissa. Tässä demossa mallia hyväksyttäessä painotettiin sekä tilastollista tarkkuutta että operatiivista johdonmukaisuutta, jotta ennusteet olivat käytännössä hyödynnettävissä optimointilogiikassa.
4 SOVELLUSRAKENNE JA AJETTAVUUS
Koneoppimissovelluksissa mallin kehitys ei rajoitu algoritmien rakentamiseen, vaan edellyttää myös hallittua ohjelmistorakennetta, joka mahdollistaa ratkaisun toistettavuuden, laajennettavuuden ja ylläpidettävyyden. Tässä työssä mallien rakentamisen rinnalla kehitettiin sovellusrakenne, jossa datan esikäsittely, mallien koulutus ja ennusteiden tuottaminen erotettiin selkeiksi kokonaisuuksiksi. Ratkaisua ei jätetty yksittäiseksi analyysiskriptiksi, vaan se jäsennettiin modulaariseksi rakenteeksi, jolloin yksittäisiä osia voitiin kehittää ilman, että koko järjestelmä muuttui hallitsemattomaksi. Rakenteellinen selkeys osoittautui erityisen tärkeäksi tilanteessa, jossa malliversioita ja kokeiluja kertyi useita.
Projektissa hyödynnettiin myös kielimalleihin perustuvia tekoälytyökaluja datan käsittelyyn liittyvän koodin suunnitelun ja toteutuksen tukena. Kielimalleja käytettiin esimerkiksi Python-pohjaisten esikäsittelyvaiheiden hahmottamiseen, datan puhdistamiseen liittyvien toimintojen jäsentelyyn sekä analyysi- ja visualisointikoodin luonnosteluun yleisellä tasolla. Varsinaista prosessidataa, luottamuksellista aineistoa tai tunnistettavia tietosisältöjä ei syötetty tekoälytyökaluille, vaan tekoälyn hyödyntäminen rajattiin koodirakenteen, ohjelmointilogiikan ja teknisten toteutustapojen ideointiin. Tekoälyn tuottamaan koodia ei käytetty sellaisenaan, vaan sitä tarkasteltiin, muokattiin ja testattiin projektin vaatimusten mukaisesti ennen käyttöönottoa. Näin kielimallit toimivat kehitystyötä nopeuttavana apuvälineenä, mutta vastuu koodin toimivuudesta, tietosisällön oikeellisuudesta, tietoturvasta ja prosessikontekstiin sopivuudesta säilyi toteuttajalla.
Projektissa hyödynnettiin versionhallintaa, jotta muutokset pysyivät jäljitettävinä ja kehitys eteni hallitusti. Mallit tallennettiin systemaattisesti siten, että eri olosuhdeluokkiin kuuluvat mallit voitiin erottaa toisistaan, mikä helpotti testausta ja jatkokehitystä. Ajoympäristö suunniteltiin tarkoituksenmukaisesti: mallien koulutus ja ennusteiden ajaminen voitiin toteuttaa tavallisessa kehitysympäristössä, koska datamäärä ei edellyttänyt erillistä pilvipohjaista laskentaa. Ratkaisu rakennettiin kuitenkin siten, että ympäristön laajentaminen olisi ollut mahdollista ilman merkittävää uudelleenrakennusta.
5 OPTIMOINTILOGIIKKA
Koneoppimissovelluksissa ennustaminen ja päätöksenteko ovat kaksi erillistä vaihetta. Mallit kuvaavat ilmiön riippuvuuksia ja tuottavat ennusteita, mutta varsinainen optimointi edellyttää erillistä logiikkaa, jossa ennusteita hyödynnetään päätöksenteon tukena. Tässä työssä optimointilogiikka rakennettiin vastaamaan demon keskeistä käyttötapausta, jossa tavoitteena oli tuottaa operatiivisesti hyödynnettävä suositus kemikaaliannokselle ja alku-pH:lle. Malli arvioi eri syötearvojen vaikutusta saavutettavaan vedenlaatuun, ja näistä vaihtoehdoista valittiin yhdistelmä, joka täytti asetetut laaturajat ja lähestyi parhaiten tavoitetasoa. Lähestymistapa perustui hallittuun hakuprosessiin suljetun matemaattisen optimoinnin sijaan.
Ratkaisua suunniteltaessa korostettiin operatiivista realismia teoreettisen optimin sijaan. Mikäli yksiselitteistä optimitilannetta ei löytynyt, valittiin paras hyväksyttävä vaihtoehto määriteltyjen reunaehtojen puitteissa. Näin koneoppimismallin ennustekyky yhdistettiin päätöksentekoa tukevaan logiikkaan siten, että tuloksena olivat johdonmukaiset ja käyttökelpoiset suositukset. Tällä tavalla koneoppiminen toimi osana ohjausratkaisua, ei itsenäisenä optimointialgoritmina.
6 OPIT JA SUOSITUKSET SEURAAVALLE
Projektin aikana keskeisin havainto oli, että onnistunut koneoppimissovellus rakentui ennen kaikkea selkeästä käyttötapauksesta ja laadukkaasta datasta. Mallivalinta tai algoritmin monimutkaisuus ei ratkaissut koko lopputulosta, vaan se, kuinka hyvin prosessi ymmärrettiin ja kuinka systemaattisesti aineisto valmisteltiin ennen mallinnusta. Iteratiivinen kehitys osoittautui välttämättömäksi. Ensimmäiset mallit toimivat lähtökohtana, mutta lopullinen laatu saavutettiin vasta useiden kokeilujen, piirteiden tarkennuksen ja validoinnin kautta. Samalla havaittiin, että “riittävän hyvä” tarkkuus ei ollut yksiselitteinen raja-arvo, vaan tasapaino tilastollisen suorituskyvyn ja operatiivisen uskottavuuden välillä.
Seuraavalle toteuttajalle tärkein suositus on pitää kehitysprosessi vaiheistettuna ja dokumentoituna. Käyttötapauksen tarkka määrittely ohjasi koko toteutusta ja auttoi rajaamaan tekniset ratkaisut tarkoituksenmukaisiksi. Mallien testailu, rakenteen selkeys ja versionhallinta helpottivat kokonaisuuden hallintaa, mutta ratkaisevaa oli kriittinen suhtautuminen mallin tuottamiin tuloksiin. Ennusteita ei tullut tarkastella irrallaan prosessikontekstista, vaan niiden tuli olla sekä tilastollisesti perusteltuja että teknisesti uskottavia. Näin koneoppiminen toimi tehokkaana työkaluna, mutta ei korvannut asiantuntija-arviointia.