Algoritmer

Hvad er de og hvorfor er de vigtige

En algoritme er en liste med trinvise instruktioner, der er designet til at udføre en bestemt opgave eller løse et bestemt problem. Når man tænker på det på denne måde, er algoritmer allestedsnærværende. En opskrift på fransk løgsuppe er f.eks. en algoritme. Kombiner disse input for at generere et output. I bund og grund fungerer algoritmer ligesådan med computere. Uanset om de konverterer binære tal til bogstaver, så du kan læse, hvad der står på skærmen på din tablet, eller anbefaler aktier baseret på din risikotolerance, så er algoritmer helt grundlæggende i moderne computere. Denne side vil fokusere på computeralgoritmer.

En kort historie om algoritmer

Algoritmer kan føles som en ny opfindelse, men begrebet stammer faktisk fra et årtusinde tilbage, hvor den persiske matematiker Muḥammad ibn Mūsā al-Khwārizmī (latiniseret som »Algoritmi«) leverede betydelige bidrag til matematikkens udvikling. Konceptet blev yderligere udbredt i 1800-tallet, da den tyske matematiker Carl Friedrich Gauss opfandt en simpel algoritme til at bestemme, hvilken dag i kalenderåret påsken falder på.

Algoritmer fik deres computerdebut i midten af det 20. århundrede, da den berømte britiske datalog Alan Turing udtænkte en teori for, hvordan maskiner kunne udføre et komplekst sæt instruktioner. Selvom hans primitive skakspilsalgoritme "Turochamp" aldrig slog et menneske i Turings levetid, dannede den grundlag for det, vi i dag kender som kunstig intelligens.

I takt med at computerkraften steg i de efterfølgende årtier, steg behovet for mere komplekse algoritmer også. I dag er algoritmer grundlæggende for moderne databehandling og hjælper os med at køre fra A til B, beslutte, hvilken film vi skal se næste gang, eller endda forelske os.

Mange computerprogrammer er grundlæggende en sekvens af algoritmer skrevet på en måde, som computeren kan forstå.

Manufacturing

Forudsigende analyser og AI giver en succesfuld kundeoplevelse

Orlando Magic brugte mobilapp-data og maskinlæringsalgoritmer til at personliggøre fanoplevelsen og opnå et firedobbelt spring i app-køb.

Algoritmer i dag

Efterhånden som algoritmer erstatter flere og flere menneskelige beslutninger på tværs af samfundet, har nogle af dem potentiale til at ændre liv. Derfor mener nogle, at vi bør udforske retfærdigheden i algoritmer yderligere, især inden for strafferet og sundhedspleje.

Er du nysgerrig efter at vide, hvem der udvikler de algoritmer, som forandrer samfundet for øjnene af dig? Dette white paper fra Harvard Business Review fokuserer på de menneskelige ansigter bag de computer- og automatiseringsfremskridt, der skubber verden fremad.

Algoritmer kan hjælpe med at redde regnskoven. Ved at søge i millioner af billeder hver dag efter tidlige tegn på skovrydning kan datasynsalgoritmer hjælpe politiske beslutningstagere og hjælpeorganisationer med at gribe ind for at beskytte truede skove, før det er for sent.

Netflix-algoritmen

Når du ser Netflix, ser algoritmerne dig. Den såkaldte Netflix anbefalingmotor består af avancerede proprietære algoritmer, der tager højde for, hvad virksomheden ved om dig, for at forudsige sandsynligheden for, at du vælger at se en bestemt titel i kataloget. I dag bliver 80% af Netflix' skærmtid opnået gennem personalisering. Algoritmernes input omfatter din seerhistorik, yndlingsgenrer og det tidspunkt på dagen, hvor du ser noget. Jo mere du ser Netflix, jo mere præcise bliver algoritmerne, hvilket får dig til at se mere Netflix og så videre.

Hvordan algoritmerne virker

Algoritmer skal have fem egenskaber for at kunne fungere:

  1. Input: Veldefinerede data, som vil blive transformeret under beregningen. 
  2. Output: Data, der er resultatet af beregningen. 

  3. Definitivitet: Specifikke beregningstrin. 
  4. Effektivitet: Beregningsmæssige trin, der kan gennemføres.
  5. Endelighed: Et endeligt antal trin.

Det fører os til matematikbaserede og regelbaserede algoritmer.

Matematikbaserede algoritmer
Da de fleste algoritmer er numeriske af natur, er det ikke overraskende, at mange er matematikbaserede. Tag det simpleste eksempel: 1 + 1 = 2. Det er en matematikbaseret algoritme, hvor enerne er input, og to er output. Hvis man udvider dette eksempel, får man nogle af de vigtigste algoritmer, der bruges i dag, herunder algoritmer, der opdeler signaler i frekvenser, koder computere og endda bestemmer et websites google-søgerangering.

Regelbaserede algoritmer
Efterhånden som mennesker lærer mere om AI, ser vi, at nogle ting ikke udelukkende kan forklares med matematiske konstruktioner. Hvis du f.eks. udvikler tekstanalysesoftware og har brug for en algoritme til at sætte et substantiv i flertal, kan du ikke bare tilføje et »S« til hvert substantiv. Tænk på undtagelser som matrix og matricer. Vi har regler til disse særlige lejligheder. Regelbaserede algoritmer er bedst til at analysere data, der indeholder en blanding af numeriske og kvalitative attributter.

Man kan selvfølgelig bruge mere end én type algoritme til at løse et givet problem - f.eks. til at forudsige en persons indkomst. For at udføre denne beregning kan du bruge en matematikbaseret algoritme, hvor du vægter variabler som alder, placering, uddannelse osv. Man kan også bruge en regelbaseret algoritme, der f.eks. forudsiger indkomst ud fra alder og postnummer. Så hvilken er bedst?

Det bringer os til konkurrerende algoritmer. Algoritmer bliver ofte sat op mod hinanden for at se, hvilken der er mest effektiv. For at vende tilbage til vores suppeeksempel kan man have konkurrerende opskrifter, som alle resulterer i fransk løgsuppe. Det samme er tilfældet med computeralgoritmer. Måske er algoritme A langsommere, men mere præcis end algoritme B. Alligevel er B lettere at validere. Den rigtige algoritme til en given opgave afhænger af de forskellige kriterier, du bruger til at bedømme den. Løste den opgaven? Løste den opgaven hurtigt? Løste den opgaven effektivt?

Inspireret af naturen

De fleste AI-projekter i dag er afhængige af flere datavidenskabelige teknologier. Ifølge Gartner kaldes dét at bruge en kombination af forskellige AI-teknikker for at opnå det bedste resultat for composite AI.

Algoritmer kan betragtes som en genvej til menneskelig tænkning. Som sådan er de ofte inspireret af elementer fra naturen. Genetiske algoritmer kopierer f.eks. biologien i, hvordan organismer udvikler sig over tid. Disse algoritmer parrer beslutningspunkter med kombinationer sammen for at skabe afkom med forældrenes træk. På samme måde er neurale netværk inspireret af den biologiske hjerne og bruges til at løse forskellige problemer som computersyn og naturlig sprogbehandling.

Populære typer af algoritmer

Algoritmer kan inddeles i grundlæggende og avancerede kategorier

Basis

Du er måske ikke klar over det, men algoritmer styrer selv de mest basale computerfunktioner. Her er et kig på tre grundlæggende algoritmer, som bruges meget i dag.

Komprimeringsalgoritmer
Når de fleste mennesker bruger en computer, gør de noget grundlæggende, som at læse en artikel eller se billeder. Det er takket være algoritmer, der komprimerer filer, så de kan ses, deles og gendannes. Tænk på en JPG-fil. Når du ser et billede af din nevøs nye træhus, ser du faktisk på et bitmap-billede, der er blevet kørt gennem en tabsgivende komprimeringsalgoritme for at konvertere millioner af numeriske repræsentationer af pixels til det smilfremkaldende billede på din skærm. 

Binær søgealgoritme
Binær søgning er en lynhurtig søgealgoritme, der fungerer på basis af princippet om at dele og overtage. Lad os sige, at du søger efter filen 2020taxreturns.PDF på din bærbare computer. Med en binær søgning vælger algoritmen en observation midt i datasættet og tjekker, om det fundne subject_id er det ønskede subject_id. Hvis det er tilfældet, stopper algoritmen. Hvis ikke, da tabellen er sorteret, kan algoritmen afgøre, om den ønskede observation er over eller under den fundne, og omdefinere søgeområdet til at være halvdelen af den oprindelige fil. Algoritmen vælger derefter observationen i midten af det nye søgeområde, og processen gentages, indtil PDF'en er fundet. Jep, du betalte faktisk for lidt i skat sidste år. 

Multiplikationsalgoritme
Algoritmer bliver endnu enklere end ovenfor. Faktisk er en af de mest populære algoritmer en, der ganger tal. Næsten alt, hvad man gør med en algoritme, kræver, at man ganger to eller flere tal. Selv inden for et ordbaseret felt som tekstanalyse evaluerer man ting som ordfrekvenser og dokumentfrekvenser, og der er ofte en multiplikator i det.

Avanceret

I den modsatte ende af spektret findes avancerede algoritmer. De bygger på grundlæggende algoritmer med nye ideer. Og de involverer ofte behandling af enorme datasæt.

Algoritmer til maskinlæring
Maskinlæring bruger algoritmer, der modtager og analyserer inputdata for at forudsige outputværdier inden for et acceptabelt interval. Det smarte ved disse algoritmer er, at de lærer af andre algoritmer. Når nye data tilføres maskinlæringsalgoritmer, lærer de og optimerer deres operationer for at forbedre ydeevnen og udvikle intelligens over tid. Der findes fire typer maskinlæringsalgoritmer: overvågede, semiovervågede, ikke-overvågede og forstærkede.

Deep learning-algoritmer
Deep learning-algoritmer bruger flere lag til gradvist at udtrække funktioner på højere niveau fra inputdataene. Ved at efterligne den menneskelige hjerne forsøger disse algoritmer at drage lignende konklusioner som mennesker ved løbende at analysere data ved hjælp af ting, der kaldes kunstige neurale netværk. Resultatet af disse komplekse algoritmer kan være livsændrende, f.eks. ved at muliggøre selvkørende biler eller oversætte bøger fra engelsk til arabisk på et øjeblik.

Gradient boosting-algoritmer
Forudsigelige modeller hjælper virksomheder med at forudsige salg og prissætte varer baseret på forventet efterspørgsel. Gradient boosting er en stærk algoritme til opbygning af disse forudsigelsesmodeller. Den fungerer ved at forstærke svage beslutningstræer til stærke beslutningstræer og derved forbedre nøjagtigheden af en forudsigelse. Algoritmen er kendt for sin hastighed og nøjagtighed, især med store og komplekse datasæt. 

Hvilken algoritme skal jeg bruge?

Begyndere vil typisk gerne vide, hvilken algoritme de skal bruge. Svaret afhænger af mange faktorer, herunder:

  • Dataenes størrelse, kvalitet og type.
  • Den tilgængelige beregningstid.
  • Hvor presserende opgaven er
  • Hvad du gerne vil bruge dataen til

Selv en erfaren data scientist kan ikke vide, hvilken algoritme der vil fungere bedst, før han har prøvet forskellige algoritmer af. Når du vælger en algoritme, er det smart at tage disse aspekter i betragtning: nøjagtighed, oplæringstid og brugervenlighed. Mange brugere sætter nøjagtigheden først, mens begyndere har tendens til at fokusere på de algoritmer, de kender bedst. Når man bliver præsenteret for et datasæt, er det første, man skal overveje, hvordan man får resultater, uanset hvordan de ser ud. Når du har opnået resultater og er blevet fortrolig med dataene, kan du vælge at bruge mere tid på at bruge mere avancerede algoritmer for at styrke din forståelse af dataene og dermed forbedre resultaterne yderligere. Læs mere om valg af algoritmer.

Næste trin

Hvis du vil lære om algoritmer, er SAS det rette sted at gøre det.

For bare et årti siden krævede det en videregående uddannelse og en encyklopædisk forståelse af matematik og datalogi at arbejde med algoritmer. I dag er verdens mest sofistikerede algoritmer pænt samlet i software, så selv power-brugere kan levere banebrydende arbejde uden at skulle rode med formler.  

Et sådant eksempel er SAS for Machine Learning og Deep Learning. I dette produkt findes nogle af verdens mest avancerede algoritmer, som gør det muligt for brugere med alle baggrunde at løse komplekse analytiske problemer. Den højt vurderede software tilbyder en overflod af algoritmer, der kan hjælpe dig med at opbygge forudsigelige modeller og identificere rentable forretningsmuligheder.

Kontakt SAS og se, hvad vi kan gøre for dig.