Hva er en algoritme?

Algoritmer er oppskriftene datamaskiner følger. Dette er i seg selv verken komplisert eller skummelt. En algoritme kan se ut som dette:

  • Kjør det som kommer på de neste linjene hundre ganger
    • Hent et kattebilde fra nettet
    • Post bildet på Twitter

Bak hver av disse kommandoene ligger det mer detaljerte algoritmer som for eksempel vet hvordan man snakker med Twitter. Detaljene kan være vanskelig å forstå, men algoritmer som konsept er veldig enkelt, og dette er i utgangspunktet noe programmereren som lager algoritmen har full kontroll over. Det er bare å sette sammen byggeklosser. Det finnes en matematisk og akademisk side av algoritmer som er vanskelig å forstå, men for de aller fleste programmerere, er dette noe man overlater til andre å tenke gjennom og pakke inn i gjenbrukbare klosser.

Når man utvikler algoritmer, kan man jobbe på et høyt eller lavt nivå. Et høyt nivå kan være å lage algoritmen som snakker med Twitter. Et lavt nivå kan være å lage algoritmen som kopierer kattebildet fra et sted til et annet sted i minnet på datamaskinen. Men uansett hvilket nivå du befinner deg på, gjør du bruk av byggeklosser som andre har laget og som du selv ikke forstår innholdet av.

Dette er viktig å huske på når du tenker på algoritmer. De gjør bruk av forenklinger, abstraksjoner. Forenklingene kan være gode eller dårlige. Eller som statistikeren George Box sa om modeller: Alle modeller er feil, men spørsmålet er hvor feil de kan bli før de ikke lenger er nyttige. På samme måte, alle algoritmer bygger på forenklinger, men spørsmålet er hvor enkle de kan bli før de ikke lenger er nyttige.

Si for eksempel at noen påstår de har laget en algoritme som kan se hvilket kjønn du har. Det høres imponerende ut. Tenk, en algoritme som forstår kjønn! Den må være avansert. Men antagelig har man bare plukket et par ferdige forenklinger og koblet dem sammen. En maskinlæringsalgoritme, et datasett hvor mennesker har klassifisert bilder som menn eller kvinner, og forestillingen om at kjønn er noe binært og klart definert. Det har ikke noe å si hvor mange tusen linjer kode utviklerne har skrevet. Forenklingene den bygger på medfører at resultatet blir ubrukelig - iallfall til det uttalte formålet.

Algoritmer er bare byggeklosser som er satt sammen, og er derfor enkelt. Algoritmer har samtidig en kaosfaktor over seg som kommer av at de lever i spennet mellom det tvetydige menneskelige og det absolutte digitale. Alt det som er åpent for tolkning og misforståelser når mennesker snakker med hverandre må reduseres til noe objektivt for at datamaskiner skal kunne forholde seg til det.

Dette er vanskelig, men ikke direkte skummelt.

I dagligtalen har algoritmer derimot fått en mørkere betydning. Når vi i dag snakker om “algoritmer”, er det gjerne med henvisning til en bestemt type algoritmer. Disse har tre egenskaper: De er uforståelige, de som lager dem har ikke full kontroll over dem, og tvert i mot har algoritmene mye makt over deler av livene våre. Om du for eksempel er en aktiv Facebook-bruker, blir ditt bilde av verden styrt av algoritmer som ingen forstår, heller ikke de som har skapt dem.

Også slike algoritmer består av forenklinger som er koblet sammen. Det skumle ligger i at hele systemet av forenklinger utgjør en helhet som er umulig å forstå, slik at man ikke kan forholde seg kritisk til forenklingene. Dette er ofte med hensikt. Det er lettere å lage et system som gir et eller annet svar, uten at vi vet hvorfor, enn et system hvor vi kan forstå hvor svarene kommer fra. Det er mer lønnsomt å skjule forenklingene enn å snakke om dem.

Ta eksemplet med algoritmen som gjenkjenner kjønn. Selskapet som utviklet den, har ingen interesse av å gi allmenheten tilgang til datasettene de bruker. Da kunne jo noen finne et bilde som har blitt klassifisert feil. Det er også mye lettere å lage en maskinlæringsalgoritme som gir ett av tre klare svar, “mann”, “kvinne” eller “vet ikke”, enn å lage en algoritme som kan begrunne på en forståelig måte hvorfor den kom fram til denne konklusjonen. Hvis selskapet var så opptatt av å være etterrettelige at de la innsats i dette, ville de nok også være for etterrettelige til å lage en slik algoritme. Sannsynligvis er hele forretningsmodellen deres bullshit.

Eller ta selskaper som Uber, hvor “algoritmen” bestemmer over arbeidshverdagen din. Algoritmen er designet for å være uforståelig for de den bestemmer over. Det er det som gir den makt. Den er ikke uforståelig fordi den er smart, den er uforståelig for å skjule den egentlige hensikten med den.

De uforståelige, mektige algoritmene er altså ikke nødvendigvis særlig smarte. En smart algoritme ville kanskje vært mer forståelig og mer under utviklernes kontroll. Det er bare at utviklerne ofte ikke har interesse av å lage en slik algoritme.