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å.
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
Hvordan algoritmerne virker
Algoritmer skal have fem egenskaber for at kunne fungere:
- Input: Veldefinerede data, som vil blive transformeret under beregningen.
- Output: Data, der er resultatet af beregningen.
- Definitivitet: Specifikke beregningstrin.
- Effektivitet: Beregningsmæssige trin, der kan gennemføres.
- 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?
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.