Seuraava teksti on aihetta käsittelevän kaksiosaisen blogin ensimmäinen osa. Tekstit kuuluvat toiminnallista turvallisuutta käsittelevään blogisarjaamme.
Koneoppiminen (arkikielessä myös ”tekoäly”) nostattaa tunteita, sillä se haastaa käsityksiämme siitä, mikä tietokonejärjestelmille on mahdollista. Viimeksi kuluneiden 15 vuoden aikana koneoppiminen on edistynyt uskomattomin harppauksin, mutta tietyissä sovelluksissa perinteisemmät menetelmät ovat kehittyneet vain vähän tai eivät lainkaan. Koneoppimisen vahvuuksista on hyviä esimerkkejä: tekoäly on mm. onnistunut voittamaan GO-lautapelin maailmanmestarin, ja sen avulla voidaan mm. tehdä deepfake-videoita ja paljon muuta. Myös monille tutut sovellukset, kuten älykaiuttimet ja älypuhelinten kasvojen tunnistus, perustuvat nekin koneoppimiseen.
Koneoppiminen on saamassa yhä enemmän jalansijaa myös teollisuudessa. Esimerkiksi Huld on kehittänyt koneoppimiseen perustuvia menetelmiä, joita käytetään mm. tuotantolinjojen laadunvarmistukseen ja tekstintunnistukseen. Viime aikoina otsikoihin on noussut koneoppimisen käyttö itseohjautuvien kulkuneuvojen ja ilman kuljettajaa liikkuvien autojen ohjausjärjestelmissä. Siksi onkin luonnollista jatkaa tätä ajatussuuntaa: voitaisiinko koneoppimista soveltaa myös turvallisuuskriittisissä järjestelmissä?
Toiminnallista turvallisuutta säätelevien standardien läpikäyminen ei anna asiaan selkeää vastausta. Toiminnallisen turvallisuuden perusstandardi, SFS-EN IEC 61508, on melko yksiselitteinen. Sen mukaan eheystasolla 2 ja sitä ylempänä keinoälyä (joksi sitä standardissa kutsutaan) ”ei suositella” – mikä käytännössä tarkoittaa, että sen käyttö on kielletty. Lääketieteen puolella asiaan suhtaudutaan hieman vapaammin. Yhdysvaltain elintarvike- ja lääkevirasto FDA onkin hyväksynyt koneoppimisen käytön lääketieteellisissä sovelluksissa. Ei kuitenkaan tule nuolaista ennen kuin tipahtaa, sillä ensimmäisten kokeilujen jälkeen kehitys on ollut varsin vaatimatonta. Ajoneuvopuolella yleisimmin lainattu standardi on ISO 21448 ”Road vehicles — Safety of the intended functionality” (tunnetaan myös lyhenteellä SOTIF), joka käsittelee ajoneuvojen pitkälle automatisoitujen toimintojen turvallisuutta. Siinä turvallisuutta lähestytään käytön ja sen tuomien rajoitusten kautta. SOTIF ei siis suoraan kiellä koneoppimisen käyttöä. Sen sijaan standardissa korostetaan, että turvallisuutta ei voida saavuttaa ennen kuin vaarallisten käyttötapojen mahdollisuudet on tunnistettu.
Miksi toiminnallisen turvallisuuden standardeissa sitten suhtaudutaan koneoppimiseen niin nihkeästi? Asian ymmärtämiseksi on ensin palautettava mieliin muutama useimmille koneoppimismenetelmille yhteinen perusasia. Käsitetasolla useimmat koneoppimismenetelmät pyrkivät muodostamaan tuntemattoman funktion f(x). Ohjatussa oppimisessa tämä funktio f(x) muodostetaan opetusaineiston avulla. Toisin sanoen tiedämme mikä on x:n ja f(x):n välinen suhde. Mitä enemmän opetusaineistoa on käytettävissä, sitä parempi ohjatun oppimisen avulla saatu funktio fL(x) yleensä on.
Blogisarjani toisessa osassa käsittelen tarkemmin ongelmia, joita syntyy, jos ohjelmistojen eheys pyritään turvaamaan perinteisin menetelmin koneoppimista soveltavissa turvallisuuskriittisissä järjestelmissä.
Teksti: Timo Latvala