Videre til indhold
logo
  • Services
    • Inspiration og Undervisning
    • Sparring og Workshops
    • Udvikling og Implementering
    • Introduktion til AI og eksempler på brug
      • Computer Vision
      • Machine Learning
      • Natural Language Processing
  • Referencer
  • Nyheder og viden
  • Om os
  • Kontakt
  • Services
    • Inspiration og Undervisning
    • Sparring og Workshops
    • Udvikling og Implementering
    • Introduktion til AI og eksempler på brug
      • Computer Vision
      • Machine Learning
      • Natural Language Processing
  • Referencer
  • Nyheder og viden
  • Om os
  • Kontakt
  • DA
  • EN

Forside > Kom godt i gang med AI > Machine Learning

Hvad er Machine Learning

Machine Learning (ML) er et område af AI dedikeret til at finde mønstre og sammenhænge i data, og bruge disse til at bygge algoritmer der kan forbedres automatisk i takt med ændringer i datastrømmen. Machine Learning algoritmer bruges i en lang række applikationer. Ofte hvor det på grund af kompleksiteten i projektet eller en overvældende mængde data, er vanskeligt at bruge konventionelle algoritmer til at udføre den ønskede opgave.

Hvis du vælger at få lavet en løsning hos os, vil vi bruge en række teknikker og værktøjer inden for datalogi og kunstig intelligens for at sikre den bedst mulige løsning til dine behov. Vores tekniske ekspertise dækker områder som Advanced Analytics, Machine Learning, Natural Language Processing (NLP) og Computer Vision, og vi vil ofte kombinere disse teknikker for at opnå den mest effektive løsning.

Eksempler på brug af Machine Learning

Anbefalinger

En ofte benyttet use case for Machine Learning og AI er ”recommendation systems”, hvor algoritmer kan komme med forskellige forslag baseret på tidligere data. Dette er oftest brugt inden for film, bøger, oplevelser og e-commerce produkter med henblik på mersalg. Men kan også bruges mere internt, eksempelvis ved forslag til behandlinger af patienter baseret på deres symptomer.

Forecasting

Det er ofte brugbart at kunne spå om fremtiden, f.eks. i forbindelse med ressourceplanlægning. Desværre er det ikke helt nemt at forudsige fremtiden, særligt hvis der er flere parametre der påvirker hinanden. I disse situationer kan ML være et godt værktøj til at afdække komplekse sammenhænge og efterfølgende bruge disse i forbindelse med planlægning og ressourceoptimering.

Forecasting kan f.eks. bruges som værktøj i Facility Management, hvor der blandt andet kan skabes samspil mellem ruteplanlægning af serviceopgaver, energiforbrug, personale og andre ressourcer.

Kundesegmentering

Mange e-commerce hjemmesider opbevarer store mængder data omkring kunder, deres adfærd og køb. Disse data kan bruges til at blive klogere på kundesegmenter. Ved at blive klogere på kundesegmentet kan blandt andet markedsføring målrettes netop dette segment.

Opdage unormale hændelser

At finde afvigelser i realtid kan være særdeles relevant i monitorering af tunge processer, hvor det ikke er muligt at spotte afvigelser med almindelig overvågning.

Med tilstrækkelig stor mængde data kan man finde ”det normale” og dermed også finde det der stikker ud, metoden kaldes Abnormality Detection. Det sker uden på forhånd at have defineret hvad der er normalt.

Parameter optimering

I de fleste applikationer fremkommer afhængige parameter / variabler som man ønsker at optimere på.

Dette kan blandt andet være strømforbrug, tid, performance eller kvalitet.

I sådanne applikationer kan der ved hjælp af Machine Learning oprettes agenter til at kontrollere, optimere og holde styr på de parametre som ønskes. Herefter kan applikationen simuleres for at finde den optimale indstilling som gør at en eller flere parameter bliver optimeret.

Proaktivt vedligehold

Med proaktivt vedligehold (predictive maintenance) kan man ved hjælp af datadrevne forudsigelser optimere vedligehold og dermed forlænge produktets levetid, samtidig med at risici for nedbrud minimeres.

Ofte er det forskelligartede datakilder, der bruges til at lave den ønskede forudsigelse. Det kunne f.eks. være ændringer i energiforbrug, omdrejningstal, lyd, udnyttelsesgrad samt input fra forskelligartede sensorer.

Målet er i sidste ende at sørge for vedligehold eller service i rette tid.

Proces automatisering

Machine Learning kan bruges til at automatisere simple processer, som filtrering og sortering af data. Det kan være alt fra dokumenter, mails, anmeldelser samt resultater fra spørgeskemaer.

Skabe overblik og identificere sammenhænge

Det kan være svært at få det første overblik og se sammenhænge i store mængder data. Her kan man bruge ML algoritmer til at gruppere data for at identificere mønstre og sammenhænge, der kan være med til at give større indsigt og overblik.

Teknologien kan f.eks. bruges til automatisk at gruppere store mængder tekst for at finde mønstre, så man har et bedre udgangspunkt for at forstå problemet.

Grupperingen er blot første skridt i opgaven med at forstå et problem og komme med løsningsforslag.

Introduktion til Machine Learning

Machine learning, eller Maskinlæring, er et område af kunstig intelligens, der gør computere i stand til at lære af store mængder data, uden eksplicit menneskelig indgriben.

I dette indlæg dækker vi det grundlæggende i Machine Learning, herunder de tre typiske faser i et projekt: træning, evaluering og tuning af en model.

Vi vil forklare hvert trin, og vil løbende henvise til to tænkte eksempler:

  1. Brug af en lineær regressionsmodel til at forudsige boligpriser i en by.
  2. Brug af en klassifikationsmodel til at bestemme, om en bold er rød eller blå.

Når vi bruger Machine Learning til regression, træner vi en model til at forudsige en numerisk værdi baseret på nogle inputdata. Vi kunne for eksempel bruge en regressionsmodel til at forudsige prisen på et hus baseret på funktioner, såsom alder, størrelse, beliggenhed og afstand fra motorvejen.

Når vi bruger Machine Learning til klassificering, træner vi en model til at forudsige, hvilken kategori et datainput tilhører. For eksempel vil vi have en model, der kan afgøre, om en bold er rød eller blå.

NOTE: At opdele maskinlæringsprocessen i tre trin er en temmelig statisk beskrivelse af maskinlæring. I virkeligheden er skelnen mellem trinene mere udviskede, og vi vil sandsynligvis bevæge os frem og tilbage mellem trinene, og måske også gå helt tilbage til dataindsamlingen og/eller dataforberedelsen. Men for overskuelighedens skyld vil vi i dette indlæg behandle processen som en række begrænsede trin, som vi bevæger os igennem i fortløbende rækkefølge.

De tre typisk faser, kort beskrevet:

1

Træning af model

Det første skridt er træning. Vi starter med at opdele vores forberedte data i to datasæt: Træningsdata (ca. 80%) og testdata (ca. 20%). Vi gør dette for at undgå det, der kaldes overfitting, (en situation, hvor modellen blot ”lærer datasættet udenad”). Derefter træner vi modellens evne til at forudsige, ved løbende at eksponere modellen for datasættet.

2

Evaluering af model

Næste trin er evaluering. Vi giver modellen nogle testdata, som er data den aldrig har set før, og ser hvor godt den forudsiger. Ud fra dette evaluerer vi modellen for at se om den er god. Hvordan vi evaluerer modellen, afhænger af den type model, vi bygger.

3

Tuning af model

Efter at have evalueret modellen vil vi måske se, om vi kan forbedre modellen endnu mere, og det er her tuning kommer ind. Dette kan involvere at gå tilbage til dataindsamlingstrinnet, datarensning, udvikling af features eller ændring af modellen.

Trin 1: Træning af Machine Learning Model

Lad os sige, at vi vil træne en model til at forudsige huspriser, baseret på faktorer som alder, størrelse, afstand til motorvej osv. Målet er så at forsyne modellen med husdataene, så den kan lære de mønstre, der skal til for at lave præcise forudsigelser.

Vi har allerede indsamlet og forberedt de data, vi har brug for. Helt specifikt data, der fanger prisen, størrelsen, alderen og placeringen af ​​1000 huse i en by.

Disse data er opdelt i to datasæt: Træningsdatasættet og testdatasættet. Træningsdataene bruges til at træne modellen, og testdataene bruges til at vurdere, om modellen faktisk er god.

Typisk deler vi dataene 30/70 eller 20/80 afhængigt af størrelsen af vores datasæt, hvor størstedelen går ind i træningsdata og minoriteten i testdata. Overordnet set gælder det, at jo flere data vi har, jo mindre er den del, vi har brug for som testdata.

For vores husprisforudsigelsesmodel betyder det, at vi ville udtage omkring 800 huse til træning og 200 huse til test.

Men hvorfor skal vi opdele dataene i to sæt? Hvorfor kan vi ikke bare bruge de samme data til at evaluere modellen?

Yufeing Guo fra Google forklarer det sådan: “Vi ønsker ikke at bruge de samme data, som modellen blev trænet med til evaluering, da den da bare ville kunne huske spørgsmålene, ligesom du ikke ville bruge spørgsmålene fra dine matematiklektier til matematikeksamen”

I et sådant tilfælde ville modellen være blevet overfitted. Og det skal vi undgå.

datasæt træning og test

Overfitting sker, når machine learning modellen tilpasser sig for meget til data. Modellen betragter datasættet med alle dets kendetegn og særpræg som værende en god model for den virkelighed, som vi forsøger at forstå. Men det er usandsynligt at den virkelige verden har kendetegn præcis som dette datasæt.

Antag, at vores prisforudsigelsesmodel var blevet overfitted. I dette tilfælde ville den være i stand til at forudsige priserne perfekt på huse ud fra vores træningsdata, men hvis vi bad den om at lave prisforudsigelser på huse, den aldrig har set før, ville den sandsynligvis ramme ved siden af.

Generelt kan siges, at hvis modellen forudsiger godt på træningsdata, men dårligt på testdata, er det et tegn på, at modellen er blevet overfitted. Det vi ønsker, er en model, der kan forudsige priserne på huse, den aldrig har set før, ikke kun på huse i træningsdataene.

For at illustrere overfitting, lad os se på et eksempel.

I dette tilfælde forudsiger vi ikke længere huspriser, men bygger i stedet en machine learning model, der kan skelne mellem blå og røde bolde.

Målet med modellen er at adskille de blå og røde bolde. Alle de forskellige bolde bruges til at træne modellen, og de forskellige linjer repræsenterer forskellige versioner af den model.

Nærmere bestemt en underfitted model, en good fitted model og en overfitted model.

Underfitted model

Den grå linie repræsenterer den underfittede model. Som vi kan se, gør den ikke et særlig godt stykke arbejde med at adskille de to farver. Mens næsten alle bolde til venstre er røde, er der en del røde bolde til højre, som den ikke har fået med.

Som sådan er det ikke en særlig god model.

machine learning model

Overfitted model

Den grønne linje repræsenterer den overfittede model. Som vi kan se, snor den sig rundt om boldene og adskiller de røde og blå bolde perfekt. Men det generaliserer ikke godt, da det er usandsynligt, at andre datasæt ville se nøjagtigt sådan ud.

Læg for eksempel mærke til den markerede kugle i figuren. Denne overfittede model vil sandsynligvis kategorisere den markerede bold som værende rød, da den er på den røde side af den grønne streg. Men i virkeligheden er det langt mere sandsynligt, at det er en blå bold, da den er langt inde i det blå boldområde. Her er modellen blevet overfitted til træningsdataene.

Good fit model

Til sidst har vi den sorte polynomielinje. Den passer godt, da modellen for det meste gætter rigtigt, og den ville samtidig generalisere godt nok til også at kunne bruges til andre datasæt. Så hvis vi gav modellen et andet datasæt, og bad den om at adskille boldene efter farve, ville den kunne klare sig ret godt.

machine learning model overfitted

For at undgå overfitting af vores machine learning model opdeler vi som nævnt vores data i et sæt til træning, og et testsæt til evaluering.

Vi vender tilbage til evaluering. Lad os nu undersøge, hvordan selve træningen foregår.

Machine Learning model - træningsprocessen

Det er vigtigt at bemærke, at træningsprocessen kan variere betydeligt mellem forskellige modeller. Derfor er det følgende kun et eksempel på, hvordan man kunne træne en machine learning model.

Til at træne prisforudsigelsesmodellen bruger vi data fra de 800 huse, som vi tog fra til træning.

Modellen tager et af disse huse, og baseret på alder, størrelse og placering forsøger den at forudsige prisen. I begyndelsen vil den sandsynligvis ramme ved siden af, men for hvert forsøg bliver den bedre til at forudsige prisen. Specifikt gør den det ved gradvist at justere modellens vægt og bias.

Tænk på vægtene som en værdi, der fortæller os noget om forholdet mellem den specifikke feature, vi kigger på (fx størrelse) og prisen. Det er en værdi mellem 0-1, der bestemmer, hvor højt vi vurderer en feature i forhold til at forudsige prisen. Hvis vægten er høj, så vurderes en feature højt for at forudsige prisen.

Bias kan opfattes på samme måde, men for alle features (alder, størrelse, placering) i sammenhæng.

Til at begynde med genereres vægte og bias tilfældigt. Og på grund af dette er de første prisforudsigelser sandsynligvis ved siden af. Men da vi kender den faktiske pris på vores hus, kan vi beregne, hvor langt forudsigelsen var ved siden af, hvilket giver os en tabsværdi. Og med denne tabsværdi kan vi gå tilbage og justere modellens vægte og bias.

Og som et resultat af dette, er modellen blevet lidt bedre til at forudsige pris, efterhånden som vægte og bias bliver justeret. Og det gør modellen med alle husene i træningssættet, og løber igennem dem mange mange gange. Hver gang modellen justerer vægte og bias, bliver den en lille smule bedre til at forudsige prisen. Når denne proces er færdig, har vi en trænet machine learning model.

Trin 2. Evaluering af vores model

Når machine learning modellen er trænet, skal vi evaluere den for at afgøre, om den er god. Det er her, de 200 huse, vi tog fra til test, bliver nyttige. Dette er data, som modellen aldrig har set før, og som er beregnet til at være en proxy for data fra den virkelige verden.

Vi lader modellen lave forudsigelser ved hjælp af disse husdata og ser, hvor godt den klarer sig. Da vi kender de faktiske priser og features i data, kan vi se, hvor langt modellen er ved siden af i sin forudsigelse. Ud fra dette kan vi beregne scores, der måler modellens ydeevne.

Der er forskellige mål at vælge imellem, og hvilke vi beslutter os for at bruge, afhænger af den model, vi bygger. Lad os først undersøge, hvordan vi ville evaluere og måle en regressionsmodel.

Evaluering af en regressionsmodel

Der er flere måder at evaluere en regressionsmodels ydeevne på. To af de mest almindelige mål at bruge er: Mean Squared Error og R2-score.

Mean Squared Error

Mean squared error giver os et absolut mål for, hvor meget de forudsagte resultater afveg fra de faktiske resultater. Dette mål bruges sjældent til at vurdere selve modellen, men kan bruges til at sammenligne forskellige regressionsmodeller af de samme data, og vurdere hvilken der er bedst.

R2-score

R2 er en værdi mellem 0 og 1, der måler, hvor meget af variationen af ​​variablen, vi søger at forudsige, kan forklares af modellen. For eksempel fortæller den os, hvor meget af variationen i boligprisen, der kan forklares med variablerne alder, størrelse, afstand til motorvej osv. Jo større den er, jo mere kan vores model forklare. Generelt er R2 det bedre valg til at vurdere, hvor godt modellen forklarer de data, vi søger at modellere, hvorimod Means Squared Error og Mean Absolute Error er bedre til at sammenligne forskellige modeller.

Evaluering af en klassifikationsmodel

Hvis vi evaluerer en klassifikationsmodel (Er bolden rød eller er den blå? Hører e-mailen til i kundeservice, eller hører den til i teknisk support), er der flere evalueringsforanstaltninger, vi kan vælge imellem, hvoraf de mest almindelige er nøjagtighed, præcision og genkaldelse.

Alle tre mål er beregnet ved hjælp af de forudsagte og faktiske værdier. Men for at gøre det har vi brug for en mere præcis måde at vurdere forudsigelserne i forhold til de faktiske værdier.

Her ser vi en tabel, der viser de fire resultater af vores forudsigelser:

  • Sande positive
  • falske positive
  • sande negative og
  • falske negative
forudsigelser

Vi kan kombinere disse for at beregne flere forskellige parametre, herunder nøjagtighed, præcision og genkaldelse.

Nøjagtighed

Sande forudsigelser / Samlet antal forudsigelser.

  • Uformelt alle forudsigelser, der var korrekte ud af samtlige forudsigelser lavet, hvilket giver os et forhold på hvor meget modellen ramte rigtigt totalt set.

 

Præcision

Sande positive / Alle positive forudsigelser

  • Præcision måler forholdet mellem antallet af patienter, der havde Covid-19, og antallet af personer, der blev diagnosticeret med Covid-19.
  • Ud fra dette kan vi vurdere, om vi testede positivt for ofte. I tilfælde af Covid-19 er det sandsynligvis bedre at tage fejl af for mange positive, men i nogle tilfælde, såsom strafferetssystemet, er for mange positive tests uacceptable. Her er præcision vigtig, så uskyldige mennesker bliver ikke dømt for forbrydelser, de ikke har begået.
  • Så, ved at optimere præcisionen minimerer vi falske positiver.

 

Genkaldelse

Sande positive / Alle faktiske positive

  • Ud af alle de mennesker, der faktisk havde corona, de sande positive, hvor mange fangede vi? Missede vi nogen med Covid-19?
  • At optimere til genkaldelse, er godt til at minimere falske negativer, dvs. at sige, at nogen ikke har Corona, hvis de rent faktisk har det

Modsætning mellem præcision og genkaldelse

Det er vigtigt at bemærke, at præcision og genkaldelse ofte er i modstrid med hinanden. Hvis vi vil forbedre genkaldelse for at identificere alle med Covid-19 og ikke lade nogen, der er positive, slippe igennem, er vi nødt til at sænke tærsklen for at stille diagnosen. Men bivirkningen af ​​dette er, at vi får flere falske positiver. Vi vil have flere tilfælde, hvor vi diagnosticerer folk med Covid-19, selvom de ikke har det.

Hvis vi på den anden side ønsker præcision, ønsker vi kun at diagnosticere nogen med Covid-19, hvis vi er helt sikre. Da præcision måler, hvor mange vi forudsagde at være sande, ud af alt det, vi er sande. Derfor kan vi ikke optimere til begge dele.

Hvilken vi vælger at evaluere vores machine learning model i forhold til afhænger meget af vores use-case. Inden for det medicinske område, herunder Covid-19, er tilbagekaldelse ofte en nøgleforanstaltning, da man virkelig ikke vil fortælle nogen med covid-19, at de ikke har det. Og som nævnt vil man i retssystemet typisk sigte efter at holde præcisionen høj, da vi ikke ønsker at dømme uskyldige mennesker.

Hvornår er en Machine Learning model god nok?

Antag, at vi har lavet en model for en virksomhed, der kan forudsige, om en e-mail skal videresendes til kundeservice eller kundesupport. Modellen kan med 74% nøjagtighed forudsige, hvor mailen skal sendes hen. I sådan et tilfælde kan man tænke “74% er ikke så fantastisk. 26% af tiden er modellen forkert”.

Men nøglen er, at vi er nødt til at sammenligne præstationen med, hvor godt et stykke arbejde organisationen gør ved at forudsige den værdi, vi forsøger at forudsige. Vi kan opleve, at medarbejderne kun videresender mails korrekt 49% af tiden, ikke fordi medarbejderne er dårlige, men fordi der kan være ægte uklarhed om, hvor visse mails hører hjemme.

Så i dette tilfælde har du en model, der kan overgå et menneske inden for dette snævre domæne med 25%. Ydermere kan den gøre det hurtigt, automatisk og 24/7, hvilket betyder, at der stadig kan være meget at vinde.

Nøjagtigheden af machine learning ​​modellen skal sammenlignes med en baseline, der ofte ikke er en model, og overvejes i sammenhæng med det problem, vi forsøger at løse.

Trin 3 - Tuning af en Machine Learning model

Når vi har evalueret vores model, vil vi ofte se om vi kan forbedre den yderligere ved at tune den. Der er flere måder at gøre dette på.

Vi kunne ændre den inputtype, vi giver modellen. Her ville vi gå tilbage til dataforberedelsestrinnet og forsøge at kode vores data anderledes, skalere dem eller standardisere osv. En anden mulighed er at justere, hvad vi kalder hyperparametrene, for eksempel hvor mange gange modellen kører gennem træningssættet, hvilket kan føre til bedre ydeevne.

Vi kunne også prøve at bruge en anden algoritme, for eksempel bruge et beslutningstræ i stedet for en lineær regressionsmodel.

Som nævnt, flere gange, handler det med machine learning ofte om at prøve forskellige konfigurationer, baseret på kvalificerede gæt, og derefter se, hvilken der fungerer bedst.

Hvad hvis modellen klarer sig dårligt?

Hvis modellen klarer sig dårligt, er der flere ting, vi kan prøve. Vi kan gå tilbage til træningstrinnet og undersøge, om modellen træner ordentligt. Vi kan også gå til tuning-trinnet og spørge os selv, om noget i modellen skal ændres. Skal vi for eksempel ændre vores hyperparametre, skal vi have flere parametre eller skal vi bruge en anden model?

Men ofte, når modellen klarer sig dårligt, er problemet at finde i vores data. Dette betyder, at vi vil være bedst tjent med en kritisk genovervejelse af vores dataindsamling og dataforberedelsesproces, potentielt endda ved at indsamle nye data.

logo
  • Ambolt ApS
  • Slotsgade 27
  • DK-9000
  • contact@ambolt.io
  • (+45) 40 60 10 19
  • CVR DK-37574929
Linkedin

© Ambolt 2023 All Rights Reserved

  • Services
  • Referencer
  • Nyheder og viden
  • Om os
  • Kontakt
  • Karriere
  • Til udviklere
  • Vilkår for brug
  • Privatliv