billede mangler

Er machine Learning nonsens?

Machine learning, kunstig intelligens, billedgenkendelse etc. Der flyver en masse ord rundt i branchen, og mange virksomheder prøve at tjene penge på at sælge den ene machine learning løsning efter den anden til deres kunder. Nogle med stor succes, andre med mindre succes. Med succes menes ikke at IT-virksomheden tjener penge, men at kunden får noget ud af den solgte løsning.

For SOAK A/S er machine learning at hjælpe vores kunder med at understøtte deres beslutninger via anbefalinger fra et IT-system. Ja, det lyder ikke så smart som det andre sælger, men lad os prøve at se på hvad vi mener. Vi tager udgangspunkt i Microsoft Azure Machine Learning Studio. ML studio er et værktøj (der findes en gratis og betalte versioner), der bruges til Machine Learning.

Et lille eksempel

Vi driver en virksomhed der har til formål at vurdere om fly der skal lette vil blive forsinkede eller ej. Vi har ca. 2,7 mio. registreringer om flyafgange, og vi ønsker at bruge dem til at vurdere fremtidige flyafgange.

Når man har dette dataset, så er næste skridt at man laver et eksperiment og det mest simple og brugbare man kan lave ser ud som følgende:

I ML Studio har man derefter mulighed for at trykke RUN, og så kører modellen, og nu har jeg trænet ML studio på samme måde som jeg ville have trænet et menneske til at gætte. Forskellen er i høj grad at IT-systemet ser objektivt på dataene hvor et menneske kan forholde sig til subjektive og objektive facts. IT systemet kan processere store data mængder og finde sammenhænge, mennesket kan finde Mærkelige men brugbare sammenhænge.

Et projekt er som minimum bygget op af ovenstående 6 steps (men kan have mange flere)

  1. Flight Delay Data. dette er vores 2,7 mio. rækker af data med forskellige attributter, f.eks. afgangslufthavn, tid på dagen etc.
  2. Split data. Når man laver en model, så skal man bruge nogle af dataene til at træne modellen og andre data til at teste om modellen er brugbar. Har man f.eks. 100 rækker data, så kan man bruge de 70 rækker til at træne modellen og de 30 til at teste om modellen virker.
  3. Two-Class logistic regression. Dette er den matematiske model som bruges til at finde sammenhænge, og sammen med data udgør den matematiske model træningen.
  4. Train Model. Her fortæller man blot hvilket felt den matematiske model skal gætte på et resultat af, på baggrund af de data man sender ind i modellen. I vores tilfælde er det feltet der viser om et fly er forsinket mere end 15 minutter eller ej. vi har 2,7 mio. registreringer af flyafgange hvor vi ved om de er forsinket mere end 15 minutter eller mere.
  5. Score Model. Her kan vi se hvor godt modellen rammer plet på de data vi ikke har trænet modellen med, men som vi har gemt til at teste modellen med.
  6. Evaluate model. Her kan vi få en statistisk vurdering af kvaliteten af vores model.

Ad 5, så ser resultatet ud som følgende.

Kolonnen markeret med 1 er de faktiske data og kolonnen markeret med 2 er det som vores model har gættet på. Som man kan se (og eksemplificeret med 3), så rammer de fleste plet, men i den linje der er markeret med 4, rammer modellen forkert.

Men det første visuelle indtryk viser at modellen er rimelig god til at gætte om et fly er mere end 15 minutter eller ej.

For at få en statisk vurdering skal man se på Evaluate model, som ser ud som følgende:

Der er mange informationer, men hvis an ser på 1+2 = Her rammer modellen rigtigt og 3+4 rammer modellen forkert. Dette ser særdeles fornuftigt ud, og nu er det en smal sag at lave en webservice, hvor vi fra vores ERP-system, eller andre systemer (f.eks. excel), kan sende fremtidige flyafgange ind, og så gætte på om flyet er forsinket mere end 15 minutter.

Smart og tal lyver jo aldrig. Eller gør de?

Der er mange fordele ved machine Learning, men man skal også kende begrænsningerne. Disruptiv adfærd er svær at forudsige, og derfor skal en kontinuerlig træning af modellen finde sted. Derudover, og det er nok den vigtigste pointe, så kræver en god model at man har stort kendskab til det man arbejder med, for ellers kan det være svært at definere hvilke parametre modellen skal basere sig på.

Tilbage til det indledende spørgsmål: Er Machine Learning Nonsens? Absolut ikke, men ligesom alt andet skal det bruges med omtanke, og man skal kende de faldgruber som der er.