<img src="https://track.adform.net/Serving/TrackPoint/?pm=268420" width="1" height="1" alt="">

Sådan bliver du klar til machine learning

22. maj 2019 Skrevet af: Oliver Reinholdt Del med en ven     

Du er måske ikke klar over det. Men tidspunktet, hvor man som virksomhed begynder at overveje, hvordan og om man skal gå i gang med et projekt, der involverer machine learning og AI, er i sandhed en skelsættende periode. Det er her, hvor de første spadestik til en af de mest innovative og forretningsforbedrende initiativer - eller en kæmpe fiasko - bliver taget.

Det er derfor ikke så mærkeligt, at man som virksomhed vil forsøge at minimere risikoen for, at det går galt. Men hvordan gør du så det? Hvis du ikke allerede har erfaring med at drive og implementere machine learning-projekter i din virksomhed, kan det virke fristende at pege på en løsning og leverandør, som lover at stå for en end-to-end løsning af ens machine learning-idé. Alt, du skal gøre, er at have data i det nødvendige format, og så klarer den valgte løsning alt det besværlige med at vælge den rigtige model, tune den og give resultater tilbage, som er præcise og let forståelige. Derudover går det desuden hurtigere end at have personer til at gøre det manuelt. De personer, du sætter på opgaven, behøver ikke engang kunne programmere eller kende noget til de mekanismer, der ligger til grund for machine learning. Men er det så simpelt? Er automatisk machine learning et ægte vidundermiddel?  

Automatisk eller manuel machine learning?
Automatisk machine learning – eller autoML – er blevet populært inden for de seneste år. Det er ikke så svært at forstå hvorfor. De bedste af løsningerne på markedet tester ens data på så bred en vifte af modeller, at det ville kræve nærmest urimeligt lang tid at sætte en person til at foretage sig det samme manuelt. Det kan derfor godt lyde, som det det rigtige at gøre; tage ens budget til et machine learning-pilotprojekt, allokere en god del til licenser til en stærk AutoML-løsning og så spare en rådgiver eller intern Data Scientist væk.

Det er dog ikke nødvendigvis det rigtige at gøre. Faktisk vil vi oftest fraråde denne løsning. Men hvad gør du så? For at forstå det, vil vi kigge lidt nærmere på, hvad et machine learning-projekt altid indeholder, og hvornår AutoML faktisk godt kan give mening, og hvornår man måske skal overveje alternativer.

Et almindeligt machine learning-projekt indeholder som regel altid:

  • Data-præ-processering/ETL (Extract, transform & Load)
  • Feature-Engineering og udvælgelse af de rigtige features
  • Udvælgelse af algoritme
  • Tuning af hyper-parametre
  • Træning af model
  • Bruge model på nye cases/prediction

Ovenstående er som regel et minimum selv til et pilotprojekt, og de første tre skridt tager som regel 80% af tiden, hvis man kommer med et konservativt estimat. Er projektet større end en pilot, vil det som regel også indeholde en opgave i at få den trænede model sat i produktion, holde modellen opdateret, så den bliver klogere, samt overvåge hvornår modellen trænger til netop at blive opdateret, når den begynder at klare sig dårligere over tid.

Shit in, shit out 
Uanset om du har tænkt dig at køre med en automatiseret proces eller bruger en mere manuel tilgang, er her nogle overvejelser, du skal gøre dig:

  • Hvad er den potentielle forretningsværdi med projektet?
  • Hvilket problem forsøger du at løse/minimere i praksis?
  • Har du egentlig behov for machine learning for at opnå dette?

Når du har tænkt lidt over dette og er kommet frem til, at machine learning er den eneste måde at opnå det ønskede resultat, er det tid til det første skridt, nemlig at få fat i data og strukturere det på en meningsfuld måde. Igen, uanset om det er en automatiseret eller manuel proces, vil dette ikke være noget AutoML kan overtage - uanset hvor meget du bliver lovet, at det er til at bruge for ikke-tekniske brugere. Hvis du propper dårlig datakvalitet i maskinen, får du dårlig datakvalitet ud. Derfor må du overveje følgende:

  • Har vi eller kan vi fremskaffe de nødvendige data?
    • Skal vi købe data, og hvad koster det?
    • Skal der manuelt arbejde til for at markere dataene korrekt?
  • Hvor ligger dataene?
  • Hvordan sammenkobler vi flere nødvendige kilder?

Hvis I allerede har et velfungerende data warehouse, kender du formentlig til denne type opgaver, og der er mange ligheder. Specielt hvor lang tid det kan tage at fremskaffe data, hvis de befinder sig i forskellige systemer på nuværende tidspunkt. Hvad der dog er ret unikt, er måden at tænke, hvordan data skal struktureres og klargøres for gode resultater. Her kan en AutoML-løsning stadig ikke hjælpe.

Forstå automatisk machine learning
Når man har struktureret sine data på den måde, der giver mening for et machine learning projekt, er det tid til at AutoML endelig kan få lov til at skinne! Gode autoML-løsninger, såsom DataRobot, kan med et enkelt klik træne tusindvis af modeller, justere input data til andre skalaer (f.eks. standardisere features) og give et flot overblik over, hvordan forskellige typer af modeller klarer sig i forhold til hinanden. I de fleste tilfælde vil de modeller, som en AutoML-løsning producerer, klare sig rigtig fint og komme med forudsigelser, der passer rigtig fint i den virkelige verden. Så er alt vel godt?

Tja, måske. I mange tilfælde vil de modeller, der produceres, være svære at forklare en forretningsbruger. Det vil dog med de bedste af værktøjerne være muligt at få et overblik over de vigtigste features, men de justeringer, som laves af input-features, kan være meget bizarre, f.eks. ”Om en kunde falder fra, afhænger af logaritmen til den standardiserede middelværdi af antal års anciennitet som kunde”. Man ved godt, der er tale om, hvor længe en kunde har været en kunde i ens forretning, men hvad betyder alt det andet?

Derudover kan der også være problemer med, hvor hurtig modellen er. En kompliceret Ensemble-model (en machine learning-model, som er en samling af mange modeller) er ikke nødvendigvis optimeret mod at skulle kunne lave forudsigelser i realtid eller forudsigelser på kort tid.

Sidst, men meget vigtigt, er også vedligehold af en sådan model. Hvis du vil gentræne din model med nye data, vil det oftest kræve, at du kører de nye data gennem din AutoML-løsning igen. Det er dog ingen garanti for, at din løsning kommer frem til tilnærmelsesvis samme model igen, og der er ikke mange løsninger, der har indbygget automatisk udvælgelse af din model. Det vil der gøre med en manuel proces, hvor man gentræner en bestemt model med ens hyperparametre og datatransformationer som ens tidligere model, bare på ny data. Dertil hører også, hvordan du sætter din model i produktion.

Sæt machine learning i produktion
Hvad mener vi med produktion? Jo, produktion er den del af machine learning-projektet, der sikrer at:

  • Modeller overvåges. Herunder hvordan nye modeller klarer sig, hvordan en enkelt model bliver dårligere med tiden, og hvornår den når en vis grænse, så den skal gentrænes.
  • Forudsigelser overvåges. Altså, hvis en model forudsiger, at kunde X forlader virksomheden, sker dette så rent faktisk, som vi havde forudsagt, eller tog vi fejl? Dette kan give en indikation af hvilke type af fejl vi laver og er et godt hint til fremtidig model- og featuretuning.
  • Stabilt flow af ny data til forudsigelse og udstilling i ens BI-løsning, hvis det er formålet. Ellers få modellen til at køre stabilt i det miljø den skal bo.
  • Få ovenstående sat i et feedback-loop, så når visse grænseværdier nås for performance eller en vis mængde af forudsigelser efter tid viser sig at være fejlagtige, at så gentrænes modellen automatisk og produktionssættes, hvis den er bedre end tidligere modeller.

AutoML & de rette kompetencer
Så kan man slet ikke bruge AutoML? Jo da, sagtens! Men et machine learning-projekt er dømt til at fejle, hvis man ikke tænker 360 grader rundt om projektet og husker de ”kedelige” opgaver, som vi har gennemgået i dette blogindlæg.

AutoML, og alle machine learning-projekter, er først værdifulde, når man kan bruge de indsigter, der skabes, til at træffe bedre beslutninger for ens forretning. Dette er uagtet om beslutningerne træffes manuelt på baggrund af ens machine learning-projekt, eller om ”AI” autonomt træffer beslutninger ud fra den trænede model. Det er først her, der skabes målbar forretnings-impact.

AutoML-løsninger er et suverænt værktøj for enhver Data Scientist, der gerne vil have en pejling om hvilke retninger, hun eller han skal forsøge at gå i til næste machine learning-projekt. Det kan skære udviklingstiden markant ned at få en viden omkring hvilke type modeller som performer, hvilke features der er vigtige, og hvilke transformationer der skal udføres af disse. En dygtig Data Scientist kan arbejde med de ideer og skabe en model, der klarer sig lige så godt, eller bedre, samtidig med den bliver mere forståelig for en forretningsbruger.

Så længe AutoML ikke ses som et vidundermiddel, der kan løse alt, men i stedet sættes i spil af dygtige medarbejdere og en gennemarbejdet tilgang til ens machine learning-projekt, så er det et fantastisk værktøj, som kan hjælpe til at skabe endnu mere værdi af ens projekter.

Inspari kan vi hjælpe dig med at komme 360 grader rundt om dit første eller næste machine learning-projekt, så du kan finde ud af, om manuel machine learning eller AutoML er det bedste match til netop din udfordring.