Mikä on algoritmi?
Algoritmi. Sana kuulostaa tekniseltä, ehkä vähän pelottavaltakin. Milloin se on viemässä meiltä työt, milloin aiheuttaa addiktiota ja rappeuttaa kriittisen ajattelutaidon. Se liitetään helposti tietokoneisiin, tekoälyyn tai ohjelmointiin: johonkin, mitä ”asiantuntijat” käyttävät. Mutta totuus on, että algoritmit ovat kaikkialla. Ne ohjaavat sähköpostimme, suosittelevat meille videoita ja näyttävät meille uutisia. Usein ne tekevät päätöksiä puolestamme, huomaamattomasti ja nopeasti.
No, mitä se algoritmi tarkoittaa?
Algoritmin voi määritellä yksityiskohtaisena ohjeena tai kuvauksena, jota noudattamalla voidaan ratkaista jokin ongelma tai suorittaa tehtävä. Kyse ei siis ole vain tietokoneiden maailmasta – itse asiassa jokainen meistä käyttää algoritmeja päivittäin.
Oletko koskaan seurannut reseptiä kokatessa? Onneksi olkoon, olet käyttänyt algoritmia!
Käytännössä kun teet kakun reseptin mukaan, noudatat algoritmia:
- Vatkaa munat ja sokeri vaahdoksi
- Lisää jauhot ja leivinjauhe siivilän läpi
- Sekoita varovasti maito ja voisula
- Kaada taikina vuokaan ja paista uunissa
- Koristele kermavaahdolla ja mansikkahillolla
Kyseessä on yksinkertainen algoritmi, jossa on selkeä alku, vaiheet oikeassa järjestyksessä ja algoritmin suorittamalla syntyy ennustettava ja toistettava lopputulos: pehmeä ja kuohkea kakku.
Toisinaan reseptit tarjoavat vaihtoehtoja, joilla lopputulosta voi varioida muuttujien mukaan. Esimerkiksi, jos kakku halutaan tehdä vegaanisena, maito korvataan kauramaidolla ja munat aquafaballa eli kikhernevedellä (kyllä, ihan oikeasti).
Tällöin algoritmi ei ole enää vain suora ohje, vaan se mukautuu olosuhteisiin, raaka-aineisiin ja tilaisuuden luonteeseen – aivan kuten monimutkainen tietokonealgoritmi reagoi syötteeseen ja säätää toimintaansa sen mukaan.

Miten algoritmi toimii ja miten sellainen tehdään?
Kuten reseptivertauksesta huomaa, ei algoritmi ole aina monimutkainen matemaattinen kaava tai salaperäistä mystiikkaa huppupäisen koodarin hämärästä luolasta. Usein se on jotain paljon arkisempaa – selkeä toimintamalli, joka kertoo, mitä tehdään missäkin tilanteessa.
Oletko koskaan tehnyt sähköpostiisi suodatussäännön, kuten:
”Jos lähettäjä on uutiskirje@firma.fi, siirrä viesti kansioon Tarjoukset.” Onneksi olkoon, olet laatinut algoritmin!
Sähköpostin suodatussäntö on konkreettinen esimerkki niin sanotusta ”jos…niin” -logiikasta, joka on monien algoritmien perusta:
- Jos ehtolause täyttyy (esim. lähettäjä on tietty osoite, josta tulee vain mainossisältöä),
- niin suoritetaan tietty toimenpide (esim. viesti siirretään tarjoukset-kansioon).
Tällaisia sääntöjä voi luoda monessa ympäristössä: sähköposteissa, taulukkolaskennassa, automaatio-ohjelmissa ja jopa oikeassa elämässä, kuten:
”Jos ulkona sataa, ota sateenvarjo.”
Tietokoneohjelmissa algoritmit voivat olla ketjuja tai verkostoja näistä säännöistä – joskus yksinkertaisia, joskus satojen tai tuhansien ehtojen ja vaiheiden kokonaisuuksia. Silti niiden rakenne noudattaa samaa peruskaavaa:
ehto → toiminto → seuraava askel.
Tämä pätee myös laajempaan ohjelmistomaailmaan:
- Hakukoneen algoritmi: ”Jos haku sisältää nämä sanat ja käyttäjä on Suomesta, näytä nämä tulokset ensin.”
- Sosiaalisen median algoritmi: ”Jos käyttäjä tykkäsi kuvasta ja seurasi julkaisijaa, näytä lisää samanlaista sisältöä.”
- Navigaattori: ”Jos reitillä on ruuhkaa, laske uusi reitti.”
Monimutkaisimmillaan algoritmit voivat vaikuttaa huomaamattomasti käyttäytymiseesi – mutta yksinkertaisimmillaan ne muistuttavat sinua sateenvarjosta tai siirtävät uutiskirjeen oikeaan kansioon.
Miltä algoritmi näyttää koodina?
Arjen algoritmi voisi näyttää esimerkiksi seuraavalta:
if sää == "sataa":
ota_mukaan("sateenvarjo")
else:
ota_mukaan("aurinkolasit")
Tämä on algoritmi puhtaimmillaan: tarkista ehto, tee päätös, toimi sen mukaan.
Vaikka tietokoneen sisällä olisi miljoonia rivejä koodia, perusperiaate pysyy samana.
Miten algoritmi voi oppia?
Kaikki algoritmit eivät enää perustu ihmisen kirjoittamiin ”jos…niin” -sääntöihin. Kun dataa on paljon ja tilanteet muuttuvat jatkuvasti, tarvitaan algoritmeja, jotka pystyvät oppimaan itse. Tätä kutsutaan koneoppimiseksi (machine learning).
Kuvitellaan tilanne: haluat sähköpostiohjelman automaattisesti tunnistavan roskapostin. Voisit tietenkin kirjoittaa sääntöjä itse:
”Jos viesti sisältää sanan ’ilmainen’ tai yli kolme huutomerkkiä, siirrä roskapostikansioon.”
Mutta mitä jos roskapostin tyyli muuttuu jatkuvasti? Entä jos jokin normaali uutiskirje näyttääkin roskapostilta, mutta ei ole sitä?
Koneoppiva algoritmi ei tarvitse sääntöjä – se oppii ne itse datasta.
Sille annetaan suuri määrä esimerkkejä:
- Tämä viesti on roskapostia
- Tämä viesti ei ole roskapostia
Algoritmi etsii näistä viesteistä kuvioita: sanoja, rakenteita, lähetysaikoja, lähettäjiä, muotoiluja. Sen jälkeen se pystyy tekemään ennustuksia uusista viesteistä, joita se ei ole aiemmin nähnyt.
Esimerkiksi:
”Tämä uusi viesti muistuttaa aiempia roskaposteja 87 % todennäköisyydellä.”
Tällaista algoritmia ei ole ohjelmoitu tekemään päätöksiä tietyin ehdoin – sen sijaan se on opetettu tekemään päätöksiä aiemman kokemuksen perusteella.
Tässä on iso ero:
- Sääntöpohjainen algoritmi noudattaa tarkasti sille annettuja ehtoja.
- Koneoppiva algoritmi säätää omaa toimintaansa sen mukaan, mitä se on oppinut aiemmasta datasta.
Myös tekoälyt, kuten ChatGPT, perustuvat koneoppivaan algoritmiin. Niitä ei ole ohjelmoitu valmiilla säännöillä kertomaan vastauksia tietyistä aiheista, vaan ne ovat oppineet valtavasta määrästä tekstiä – kirjoja, verkkosivuja, keskusteluja – ja muodostavat vastauksensa sen perusteella, mitä ovat aiemmin nähneet.
Ne eivät siis muista yksittäisiä faktoja samalla tavalla kuin ihminen, vaan päättelevät todennäköisyyksiä: mikä sana, lause tai vastaus voisi tulla seuraavaksi pohjautuen saatavilla olevaan dataan.
Voiko algoritmi huijata?
Koneoppivat algoritmit, kuten tekoälyt, näyttävät älykkäiltä, koska ne pystyvät oppimaan suurista tietomassoista ilman valmiiksi annettuja sääntöjä. Niillä on kuitenkin yksi suuri heikkous: ne oppivat vain siitä datasta, jota niille annetaa. Jos tuo data on vinoutunutta tai epätasa-arvoista, myös algoritmin oppimat mallit voivat olla harhaisia (bias).
Teknologia: Lue lisää
Kuvitellaan, että opetat algoritmin tunnistamaan kasvoja valokuvista. Jos opetusaineistossa on lähinnä vaaleaihoisia ihmisiä, algoritmi oppii tunnistamaan heidät hyvin, mutta ei tunnista tummaihoisia kasvoja yhtä tarkasti. Se ei tee tätä tahallaan, se vain heijastaa datan vinoutumaa.
Samaa voi tapahtua monilla alueilla:
- Työhakemusten seulonnassa: jos historiallisessa datassa miehiä on valittu enemmän insinööritehtäviin, algoritmi voi oppia suosimaan miehiä.
- Luottopäätöksissä: jos data painottaa menneitä luottotietoja alueittain, se voi syrjiä tiettyjä väestöryhmiä.
- Terveydenhuollossa: jos lääketieteelliset mallit on rakennettu datasta, jossa naisten oireita ei ole kuvattu yhtä kattavasti, diagnoosit voivat jäädä epätarkoiksi erityisesti naisten osalta
Bias ei synny siksi, että algoritmi ”ajattelee väärin”, vaan siksi, että se peilaa maailmaa sellaisena kuin se näkyy sille syötetyssä datassa, mutta ei pysty tarkistamaan faktoja tai hakemaan tietoa mistään muualta.
Tavallisen käyttäjän kannattaa kysyä muutama yksinkertainen kysymys, kun käyttää tekoälyä tai näkee sen tekemän päätöksen:
- Mistä tämä tieto on peräisin?
- Perustuuko tämä vain menneisiin tapoihin tai valintoihin?
- Voiko olla, että jotkut ihmiset tai näkökulmat puuttuvat kokonaan?
Tämä ei tarkoita, että tekoäly olisi huono tai vaarallinen. Se tarkoittaa vain, että meidän kaikkien kannattaa käyttää sitä vähän samaan tapaan kuin käytämme karttaa. Kartta voi auttaa meitä löytämään perille, mutta välillä on hyvä vilkaista ympärilleen ja tarkistaa, onko se oikeassa.
Miksi algoritmeista kannattaa välittää?
Algoritmit ohjaavat nykyään monia arkipäiväisiä asioita – mitä reseptejä näet verkkosivulla, mitä mainoksia sinulle näytetään, mitä uutisia sinulle ehdotetaan ja millaisia ihmisiä kohtaat digitaalisessa maailmassa. Useimmat algoritmit ovat yksinkertaisia sääntöjä, mutta yhä useammin ne perustuvat koneoppimiseen, jolloin niiden toiminta ei enää perustu valmiiksi kirjoitettuihin ohjeisiin, vaan valtaviin määriin olemassaolevaa dataa.
Siksi algoritmeista kannattaa olla kiinnostunut, ei pelkästään teknisenä ilmiönä, vaan myös ihmisiä ja yhteiskuntaa muokkaavana voimana. Algoritmit voivat tehdä arjesta sujuvampaa ja tarjota meille juuri oikeita asioita oikeaan aikaan. Mutta ne voivat myös jättää huomiotta, sulkea ulos ja vahvistaa vanhoja vinoumia, usein huomaamatta ja tarkoituksetta.
Tavallisen käyttäjän ei tarvitse osata koodata, mutta kyky kysyä oikeita kysymyksiä on tärkeämpää kuin koskaan: Mihin tämä perustuu? Kuka on valinnut, mitä näen? Mitä vaihtoehtoja jää piiloon?