Machine learning, deep learning, AI… Alle snakker om det, men hvad er machine learning, eller maskinlæring, egentlig? Og hvilken værdi giver det? Vi har snakket med en selvstændig AI- og machine learning-ekspert for at finde ud af, hvad der er op og ned i det her komplekse felt. Jonathan Pram Scharff arbejder for tiden på hans eget projekt, som har til formål at reducere det nationale energiforbrug ved brug af den nyeste viden indenfor machine learning. Som machine learning-konsulent kan Jonathan også hyres til at implementere machine learning i andre sektorer.
Det er et af de spørgsmål som oftest stilles ved forretningskonferencer. Typisk bliver det fulgt op med ”AI er det nye elektricitet” og formentlig et McKinsey rapportcitat om, hvordan en stor procentdel af jobs vil blive automatiserede indenfor få år. Foredragsholderen vil derefter kigge alvorligt ud på publikum og sige de frygtlige ord: ”Hvis du ikke handler nu, er det kun et spørgsmål om tid før du selv bliver disrupted!”.
Selvom det sikker er en fantastisk salgstaktik – intet får folk i gang som frygt – så siger min erfaring, at virkeligheden forholder sig ganske anderledes. Ja, Google, Facebook og lignede virksomheder bruger machine learning-løsninger i stor skala. Og ja, en masse jobs vil blive automatiserede, men i virkeligheden bruger de store virksomheder i overraskende lav grad machine learning. I de tilfælde, hvor det faktisk bruges, er det ofte enten utrolig simpelt – læs grænsende til forkert – eller ekstremt komplekst og dårligt fungerende. Så enten har praktikanten lavet noget hurtigt, uden at vide ret meget om det, eller også har organisationen ansat en flok PhD’er, som implementerer det nyeste forskning helt fra bunden.
Begge disse ekstremer har det med ikke at virke særlig godt. Den første af helt åbenlyse grunde og den anden fordi implementering af machine learning-løsninger generelt ikke er en teoretisk øvelse. Det handler derimod om at finde den rigtige data, omformulere problemet, så det passer ind i den standardiserede maskinlæringsværktøjskasse og derfra bruge standard værktøjerne.
Så for at opsummere, ja machine learning kommer helt sikker til at have en stor indflydelse på mange industrier, men, med et par få undtagelser, går udviklingen ikke så hurtigt, som man kunne tro. Selv hvis en startup havde regnet det hele ud i forhold til machine learning-delen, vil en startup typisk ikke havde adgang til al den data som skal bruges for at få machine learning algoritmen til at virke.
Svaret på det vil variere en hel del, alt efter hvem du spørger. Personligt mener jeg, at machine learning er begyndt at skabe en masse værdi, når det handler om automatisering af relativt ”simple” opgaver.
Nøglen til at finde ud af om machine learning kan bruges til at løse en opgave, er at finde ud af om opgaven kan inddeles i mindre klart definerede kasser.
Lad os for eksempel sige, at du vil automatisere beslutningen om, hvorvidt en person kan blive forsikret eller ej. Dette kan laves om til et vel defineret problem ved at sige ”med disse data points, giv da personen 1 hvis han kan forsikres eller 0 hvis ikke”. En sådan problembeskrivelse ville formentlig gøre, at en maskinlæringsløsning ville kunne fungere succesfuldt. Hvis man derimod formulerede problemet som ”med disse data points skriv en forsikringskontrakt” ville det næsten være umuligt at automatisere processen ved brug af machine learning.
Min erfaring siger dog, at ofte kan selv avancerede problemer gøres til veldefinerede problemer, hvis de brydes ned til mindre klart definerede sub-problemer og man går en smule på kompromis. Så i stedet for at skrive ”lav en forsikringskontrakt”, kunne man lave første sub-problem som ”udvælg hvilken af disse 7 kontrakter som passer bedst”. Det næste sub-problem kunne så være at udregne passende numre til særlige prædefinerede steder i den valgte standard kontrakt. På den måde, ved at splitte et komplekst problem op i nogle relativt standardiserede sub-problemer, kan man automatisere store mængder arbejde ved brug af machine learning. Det som er vigtigt at overveje, er om opgaven kan formuleres som veldefinerede forudsigelser. Som ”hvilken af disse 7 mulige standard kontrakter er den rigtige kontrakt?”, ”hvad skal prisen for at forsikre denne specifikke situation være?” osv.
En anden vigtig pointe er ikke at forsøge at automatisere for meget af workflowet. Ofte vil du være i en situation, hvor 70% eller 80% af workflowet kan automatiseres relativt hurtigt og i stedet for at fuldstændig fjerne mennesket fra processen, så stop ved de 70/80%. At få de sidste 20/30% med vil normalt være meget dyrt og ofte også medføre flere fejl.
Okay, forestil dig, at du er retsdommer og overvejer at automatisere dit arbejde. Folk er jo ligeglade med kriminelle alligevel, ikke?
Problemet ved at automatisere processen med at dømme folk er, at der altid er en undtagelse til reglen. Så hvis en udvikler skulle skabe et computerprogram, som automatisk dømte folk, ville det kræve kæmpe mængder af kode at tage højde for alle tænkelige omstændigheder. Udover det ville selv det mindste ændring i lovgivningen gøre programmet mere eller mindre nytteløst.
Men hvad hvis vi i stedet for at få et menneske til at skrive alle reglerne ind i et program, fik en maskine gøre det? Kan vi ikke bare give en computer en masse kriminalsager sammen med deres domme, og lade maskinen regne reglerne ud selv? Det viser sig, at det kan vi faktisk godt og denne proces kaldes oftest machine learning, eller maskinlæring. Så machine learning kan ses som et bundt af algoritmer, som kan lære at kopiere bestemt adfærd. Så i sagen med den automatiserede dommer, ville man samle et stort datasæt af gamle sager og deres tilhørende domme. Algoritmerne ville så, på baggrund af den historiske data, forsøge at sætte et komplekst regelsæt op, som ville gøre det i stand til at kopiere dommene.
Så hvad ville der ske, hvis vi gjorde det i virkeligheden? Det har man faktisk allerede gjort i USA. Det første problem man stødte på, da man brugte en AI-dommer, var at den var racistisk i sine domme. Den adfærd var et resultat af, at sorte, historisk set, havde fået længere domme end hvide. Derfor kopierede AI-dommeren denne adfærd. Så ideen om, at maskinalgoritmer er fri for menneskelige biases, er for det meste forkert. Men lad os sige, at vi er interesserede i at lave en ikke racistisk AI-dommer. Hvordan fjerner vi tendensen til at give sorte længere domme?
Det er i eksempler som dette, at udviklingen af maskinlæring bliver mere en kunst end en videnskab. Løsningen er enten at fjerne de racistiske domme fra datasættet eller give machine learning algoritmen informationer om, at hvornår en dom er racistisk og ikke er.
En løsningen kunne være at prøve at fjerne domme, der er uretfærdige over for sorte. En anden kunne være blot at træne AI-dommeren med det racistiske bias, og så i praksis altid fortælle den at personen som skal for retten er hvid. På den måde vil alle blive dømt som hvis de var hvide.
Lad os sige, at du har samlet dit datasæt af tidligere sager og tilhørende domme, og det viser den adfærd, du vil genskabe. Så er du faktisk klar til at starte din AI-dommer.
De fleste vil direkte vende sig mod det meget omtalte neurale netværk og deep learning teknikerne (neurale netværk er en specifik gren af maskinlæringsalgoritmerne, som på det seneste er blevet re-brandet som deep learning). Men jeg vil argumentere for, at en uerfaren bruger vil være i stand til at få state of the art-resultater ved at bruge en teknik med det utroligt usexede navn: Gradient boosting decision tree.
Uden for machine learning-konkurrencer, har ingen rigtig hørt om gradient boosting decision tree-metoden, men når det kommer til at vinde maskinlæringskonkurrencer, er denne algoritme den historisk mest vindende.
Godt spørgsmål, hvor man fristes til at spørge: ”Hvorfor snakker alle så om det her deep learning? De kan vel ikke alle sammen være idioter?”.
Den simple version af svaret relateres sig til, hvad der kaldes ustruktureret data. Så når du laver dit datasæt af tidligere sager, vil du normalvis lave en struktureret repræsentation af de historiske sager. Det betyder grundlæggende, at du laver en regnearksopsummering af hver case. Dette regneark kan så indeholde variabler, som race, antal tidligere domme, et nummer som indikerer, hvor alvorlige disse forseelser var osv. For hver historisk sag udfylder du så et regneark med de korrekte numre for alle dine variabler. Dermed har du konverteret, hver af de historiske sager til en regnearksopsummering.
Denne strukturerede repræsentation er så givet til en maskinlæringsalgoritme, som lærer de underliggende regler, som forbinder de historiske sager med deres domme.
Problemet er, at det sommetider er utroligt svært at fremstille et regnearksresume af dine data. De mest prominente eksempler er tekst og billeder. Så selvom det er utroligt nemt for mennesker at genkende objekter på billeder, er dette meget svært for maskinlæringsalgoritmerne. Dette er dog før ankomsten af deep learning, som fuldstændig ændrede maskinlæringssystemets evne til at fortolke billeder og tekstdata.
Bemærk, at deep learning også virker godt med struktureret data, men at der for netop struktureret data findes meget lettere anvendelige algoritmer, som har ligeså gode resultater.
Tro det eller lad vær, men det er faktisk overraskende nemt at komme i gang med machine learning. Der er nogle fantastiske kurser om, hvordan man hurtigt opnår state of the art-resultater med machine learning gratis på Course.fast.ai. Kurserne er mest centreret omkring deep learning, men der kommer snart nye til med mere fokus på traditionel maskinlæringsteknikker. Et andet godt sted at starte, er Kaggle.com, hvor brugere af maskinlæring deler deres tilgange til at løse machine learnings-konkurrencer.
Gæsteblog af Jonathan Prom Scharff, AI og deep learnings-ekspert
Kan AI give værdi til din virksomhed? Lad en freelance konsulent hjælpe dig.
Hvis du leder efter en AI-ekspert eller en AI-projektleder, en maskinlæringsingeniør, en automation-udvikler eller en anden slags konsulent, så kontakt os og få et gratis tilbud på en nøje udvalgt profil til dit projekt.
Kontakt Philip Scott Lind
Philip er altid åben for at diskutere dine specifikke behov. Han kan hurtigt give dig et præcist billede af den løsning, vi kan levere for at opfylde dit behov.