tech-dansk ordbog

AI & machine learning

… kunstig intelligens eller maskinlæring?

Kært barn har mange navne…

AI/kunstig intelligens, machine learning/maskinlæring, data science… Kært barn har mange navne og er det egentlig det samme eller der forskel? Alle taler om det, men hvor mange bruger det?

Og hvad skal der til for, at man kan sige: ”nu har jeg en AI…”?

Når man bevæger sig i kredse, hvor der ofte bliver talt om AI, erfarer man hurtigt, at der findes cirka lige så mange fortolkninger af AI, som der findes mennesker, der taler om det. I et forsøg på at finde en objektiv, entydig og veldefineret beskrivelse af AI har jeg både googlet, spurgt ChatGPT og set en masse Youtube-videoer. I min søgen har den bedste (og mest udbredte) beskrivelse været, at

kunstig intelligens er en computer, der er i stand til at udføre og løse opgaver, der normalt udføres af mennesker og kræver menneskelig intelligens.

Denne beskrivelse giver i og for sig mening, men hvis man tænker lidt nærmere over det, så er den stadig lidt diffus og upræcis… Fordi hvad er menneskelig intelligens egentlig? Og hvordan definerer man, hvorvidt en opgave normalt udføres af mennesker?

Selvom beskrivelsen ikke er en præcis definition, er det heldigvis således, at AI eller kunstig intelligens ofte i daglig tale bruges omkring teknologier, der baserer sig på machine learning modeller og dermed data og algoritmer og DET er heldigvis veldefineret 😊 Så lad os tale om machine learning i stedet…

Machine learning

Machine learning er et begreb, som dækker over en samling metoder baseret på matematiske beregninger udført i en bestemt rækkefølge – også kaldet en algoritme. En algoritme er en slags opskrift, hvor hvert trin i opskriften hjælper computeren med at blive klogere på de data, der er tilgængelige. Data kan i denne sammenhæng ses som en slags erfaring, som computeren lærer fra vha. algoritmen.

Data kan være billeder, tekst eller tal, som algoritmen hjælper computeren med at finde mønstre og tendenser i. Det kan f.eks. være billeder af tal, hvor trinene i algoritmen hjælper computeren med at kunne kende forskel på 1-, 2-, 3- og 4-taller osv.

Når vi som mennesker har lært noget på baggrund af en erfaring, vi har fået igennem nogle oplevelser (som også kan ses som data), kan det stadig ske, at vi tager fejl. F.eks. kan et 1-tal ligne et 7-tal, hvis det er skrevet sjusket, og lægerne kan også være uheldige at komme med en fejldiagnose, hvis symptomerne er atypiske. Det er vigtigt at huske, at det samme gælder for machine learning modeller eller såkaldt AI. Outputtet af en machine learning model er altid en forudsigelse og modellen kan I visse tilfælde tage fejl.

Når man arbejder med machine learning og især hvis man har planer om at implementere modellen i et kritisk område – f.eks. indenfor diagnosticering af kritiske sygdomme eller kritisk infrastruktur såsom elnettet – er det vigtigt, at machine learning modellen eller AI’en i et vist omfang overvåges af mennesker, så man kan opdage, hvis modellen tager fejl eller bevæger sig i en uhensigtsmæssige retning.

Vi kan hurtigere og nemmere opnå bedre resultater, hvis vi bruger computere og machine learning, men computerne kan ikke stå alene. De bedste resultater opnåes ofte, når man sikrer, at det er et samspil imellem mennesker og teknologi.

Den mest simple form for machine learning – lineær regression

De fleste har sikkert lavet lineær regression i gymnasiet. Lineær regression er faktisk en af de mest simple former for machine learning og principperne bag lineær regression kan overføres til næsten alle former for machine learning.

Udgangspunktet for lineær regression er nogle nummeriske målepunkter (tal), som vi har observeret i virkeligheden. Målet med lineær regression er nu at definere en formel for en linie, der beskriver sammenhængen imellem disse målte værdier bedst muligt.

Det klassiske eksempel er en model, der er trænet til at beskrive sammenhængen imellem kvadratmeter i et hus og husprisen, men der er tonsvis af muligheder for at bruge lineær regression til alle mulige forskellige problemstillinger.

I stedet for at vi kaster os ud i en længere tekst omkring lineær regression, har vi linket til en kort video med en af verdens førende eksperter (og en eminent underviser) indenfor machine learning, Andrew Ng, hvor han tegner og fortæller om lineær regression.

For at finde formlen på den linie, der ligger tættest på vores målepunkter fra virkeligheden, bruger vi altså en algoritme – eller en slags opskrift – der trin-for-trin hjælper os med at forbedre formlen, indtil den ikke kan blive bedre. Hvert trin i algoritmen består af nogle matematiske beregninger, som hjælper os med systematisk at forbedre formlen lige så stille, indtil den ikke kan forbedre mere.

Hvis vi skal skrive det op som en opskrift, kan det gøres således:

  1. Definér en vilkårlig formel for din linie f(x) = a*x + b ved at give a og b tilfældige værdier.
  2. Beregn afstanden fra dine observationer/målepunkter til den nuværende linie f(x) – denne afstand kaldes tabet eller omkostningen.
  3. Undersøg om tabet eller omkostningen ved f(x) kan blive mindre, hvis a og b fik nye værdier. Der findes en metode, der hedder gradient descent, som matematisk hjælper med at minimere tabet. Vi går ikke i dybden med det, men nu har I hørt ordet og kan nævne eller google det, hvis det bliver nødvendigt 😉
  4. Hvis vi i step 3 finder ud af, at omkostningen kan minimeres yderligere, sættes a og b til de nye værdier. Gå derefter tilbage til pkt. 2. Hvis omkostningen er på et minimum, stop, og du har nu fundet den bedste beskrivelse af f(x).

OBS: Man kan sætte computeren til at lave disse beregninger og udføre den metode, der hedder gradient descent, så man behøver ikke at være et matematik-glad for at kunne lave machine learning 😉

Forskellige eksempler på brug af machine learning

I lineær regression bygges modellen op omkring en formel for en lige linie, men det er ikke altid tilfældet, at en linie passer på den problemstilling, man skal løse – en linie er f.eks. ret dårlig til at beskrive forskellige kundegrupper. Den bagvedliggende matematik afhænger altså af den problemstilling, som man forsøger at løse. Derfor skal man, inden man overhovedet kaster sig ud i at lave machine learning, først undersøge hvilken type opgave, man ønsker at løse og hvilke slags algoritme, der giver bedst mening.

Eksempler på kendte problemstillinger, der er blevet løst med machine learning, kan nævnes:

  • en computer, der kan spille skak. Den første machine learning model, der slog verdensmesteren i skab hed Deep Blue. Deep Blue blev udviklet af IBM og den slog verdensmesteren Kasparov i 1997 – så altså for ret lang tid siden i forhold til, hvad mange tror, når vi taler om AI og machine learning 😊
  • robotter, der kan bevæge sig som levende væsner – enten hunde, mennesker eller Disney figurer… Disney har nemlig netop offentliggjort en robot, der ligner Judy Hopps fra Zootropolis, der potentielt kan optræde i Disneyland og interagere med gæsterne. https://www.youtube.com/watch?v=lPqzLE4KjhI Det skal dog siges, at det ikke er alle robotter, der er trænet med machine learning – f.eks. robotter, der skal udføre den samme type bevægelser, behøver ikke at blive trænet med machine learning. Den type robotter kan blot blive programmeret med et sæt regler, som definerer, hvordan robotten bevæger sig i forskellige situationer. Men flere og flere robotter bliver trænet med machine learning, så de er i stand til på egen hånd at tage en beslutning i en given situation.
  • en computer, der kan tage en bid tekst og omdanne det til et billede eller tekst. To efterhånden meget kendte modeller, der kan gøre dette, er ChatGPT og DALL-E (https://openai.com/). ChatGPT kan tage imod et stykke tekst og omdanne det til endnu mere tekst. F.eks. kan ChatGPT skrive digte, opskrifter og komme med forslag på tekster til sociale medier. DALL-E kan på den anden side generere et billede baseret på et stykke tekst. På den måde kan vi nemt og hurtigt generer billeder ved blot at lave en beskrivelse af billedet og sende det til machine learning modellen DALL-E. ChatGPT og DALL-E er ikke de eneste modeller, der er udviklet til denne type opgaver, men det er nok de mest kendte.
  • OpenAI, der står bag ChatGPT og DALL-E har netop offentliggjort deres nye machine learning model GPT-4, som både kan tage imod tekst, billeder og video som input og derefter generere hvad hjertet begærer.

    OBS: Man skal se machine learning som et menneske, der har læst en masse bøger, set en masse video og studeret en masse billeder og dermed opnået en masse viden og erfaring fra disse materialer. Fordelen ved computere er, at de kan kigge en masse tekst, billeder, tabeller eller video igennem mange gange hurtigere end mennesker.

    Hvis de data, som computeren lærer fra, indeholder forkerte oplysninger, kan machine learning modellen ikke vide bedre, hvilket er en af årsagerne til, at det er vigtigt at bygge machine learning modeller på gode data, der indeholder korrekte data uden bias. Det er derfor vigtigt, at man altid forholder sig kritisk både til de data, man fodrer machine learning algoritmen med, samt det svar, som machine learning modeller returnerer.

    Forskellige typer af machine learning

    Machine learning er som sagt blot en opskrift, der hjælper en computer med at lære fra data. Der findes mange forskellige problemstillinger, som kan løses med machine learning, og der findes derfor også mange forskellige machine learning metoder. De mange forskellige metoder inddeles som udgangspunkt i tre forskellige områder:

    Supervised learning
    Supervised learning er en samling machine learning metoder, der kan løse problemstillinger, hvor vi ønsker at forudsige en specifik kategori eller værdi. Det kan f.eks. være kategorisering af mails i spam eller ikke-spam, diagnosticering af patienter eller estimering af huspriser. Det er altså en type af metoder, der kan tage imod et datasæt og så forudsige og foruddefineret kategori eller værdi.

    Unsupervised learning
    Unsupervised learning metoder kan i modsætning til supervised learning hjælpe med at finde mønstre og tendenser, som vi ikke allerede kender. Det kan f.eks. være, at vi har en stor kundebase, hvor vi gerne vil finde ud af, om vi kan inddele dem i kundegrupper, men vi kender ikke grupperne på forhånd. I denne situation kan man bruge unsupervised learning til at finde ukendte mønstre i kundegruppen og baggrund af disse mønstre inddele kunderne i grupper. Baseret på disse grupper, som algoritmen finder for os, kan man blive klogere på hvilke karakteristika, kundegrupperne har.

    Reinforcement learning
    Reinforcement learning metoder fokuserer på at træne algoritmer og modeller til at tage beslutninger i en dynamisk og skiftende omgivelse. Det kan f.eks. være et spil skak eller en robot, som navigere rundt i en lagerhal, robotten eller computeren ved, hvad der er sket bagudrettet, men den ved ikke, hvilke træk modspiller vil foretage eller hvilke udfordringer den vil møde i lagerhallen fremadrettet. I modsætning til supervised learning, hvor algoritmen trænes på mærket data – dvs. data, hvor vi har defineret et udfald (kategori eller værdi), som vi leder efter – og unsupervised learning, hvor algoritmen opdager mønstre i data, bruger reinforcement learning en belønningsmekanisme til at lære, hvilke handlinger der fører til ønskede resultater.

    Hvis du har lyst til at lære mere, skal du bare holde øje med bloggen, hvor der i de kommende uger vil komme flere blogindlæg om AI, machine learning, algoritmer og data 😊

    Hvis du ikke kan vente, kan vi anbefale at tage et kig på kurset Elements of AI. Det er et ikke-teknisk kursus, hvor du får styr på begreber og metoder relateret til AI og machine learning. Kurset findes på både dansk og engelsk og er meget begyndervenligt 😊

    God fornøjelse!

    De bedste hilsner fra

    Idéer til nye blogindlæg?

    Skriv til os på hi@cocoders.dk og del dine ønsker til nye blogindlæg og guides.