Algoritmer
Vad det är och varför de är viktiga
En algoritm är en lista av steg-för-steg-instruktioner framtagen för att genomföra en specifik uppgift eller lösa ett specifikt problem. Om man tänker på det på det här sättet finns algoritmer överallt. Ett recept på fransk löksoppa är till exempel en algoritm. Kombinera de här inmatningarna och generera en utmatning. Algoritmer fungerar i princip på samma sätt med datorer. Vare sig de omvandlar binära tal till bokstäver så att du kan läsa det som står på skärmen på din surfplatta eller om de rekommenderar aktier baserad på din risktolerans är algoritmer grundläggande i modern databehandling. Den här sidan kommer att fokusera på datoralgoritmer.
Algoritmer: en kort historik
Algoritmer kan kännas som en ny uppfinning, men termen går faktiskt att datera tusen år tillbaka, när den persiska matematikern Muḥammad ibn Mūsā al-Khwārizmī (latiniseras som “Algoritmi”) gjorde betydande bidrag till matematik. Konceptet fick fler anhängare under 1800-talet när den tyske matematikern Carl Friedrich Gauss kom på en enkel algoritm för att fastställa vilken kalenderdag påsken infaller på.
Algoritmer gjorde sin databehandlingsdebut i mitten av 1900-talet när den berömda, brittiska datavetaren Alan Turing tänkte ut en teori för hur maskiner kunde utföra en komplex uppsättning av instruktioner. Även om hans enkla schack-algoritm, “Turochamp”, aldrig slog en människa under Turings livstid utgjorde den grunden för det som vi i dag känner som artificiell intelligens.
Allt eftersom kapaciteten för databehandling ökade under de följande årtionden, ökade även behovet för mer komplexa algoritmer. I dag är algoritmer grundläggande för modern databehandling, de hjälper oss att köra från punkt A till punkt B, välja vilken film vi ska se härnäst eller till och med att bli förälskade.
Många datorprogram är i grund och botten en sekvens av algoritmer skrivna på ett sätt som datorn kan förstå.
Prediktiv analys och AI ger en vinnande kundupplevelse
Orlando Magic använde data från mobilappen och maskininlärningsalgoritmer för att göra upplevelsen personlig och uppnå en fyrfaldig ökning av köp i appen.
Algoritmer idag
Hur algoritmer fungerar
Algoritmer behöver ha fem egenskaper för att fungera:
- Indata: Väldefinierad data som kommer att transformeras under beräkningen.
- Utdata: Data som är resultatet från beräkningen.
- Entydighet: Specifika beräkningssteg.
- Effektivitet: Utförbara beräkningssteg.
- Begränsning: Ett begränsat antal steg.
Det leder oss till matematik- och regelbaserade algoritmer.
Matematikbaserade algoritmer
Då de flesta algoritmer är numeriska till sin natur kommer det kanske inte som en överraskning att många är baserade på matematik. Ta det enklaste exemplet: 1 + 1 = 2. Det är en matematikbaserad algoritm där ettorna är indata och tvåan är utdata. Extrapolerar man det här exemplet får man några av de viktigaste algoritmerna som används i dag, bland annat algoritmer som delar upp signaler till frekvenser, kodar datorer och till och med bestämmer hur Google rankar sökresultat för webbplatser.
Regelbaserade algoritmer
Allt eftersom vi lär oss mer om AI inser vi att vissa saker inte kan förklaras enbart av matematiska konstruktioner. Om man utvecklar en programvara för analys av text och behöver en algoritm för att förvandla substantiv till plural kan man inte bara lägga till -er på varje substantiv. Men det finns regler för sådana problem. Regelbaserade algoritmer passar bäst för att analysera data som innehåller en blandning av numeriska och kvalitativa attribut.
Man kan så klart använda mer än en sorts algoritm för att lösa ett givet problem – till exempel för att uppskatta någons inkomst. För att utföra den här beräkningen kan man använda en matematikbaserad algoritm varmed man väger variabler som ålder, plats, utbildning osv. Man kan också använda en regelbaserad algoritm som uppskattar någons inkomst baserat på ålder och postnummer, till exempel. Så vilket sätt är bäst?
Det leder oss till konkurrerande algoritmer. Algoritmer mäts ofta mot varandra för att se vilken som är mest effektiv. Om vi återvänder till vårt soppexempel: man kan ha flera konkurrerande recept vilka alla resulterar i fransk löksoppa. Detsamma gäller för datoralgoritmer. Kanske är algoritm A långsammare, men mer exakt än algoritm B. Fast B är lättare att validera. Vilken som är rätt algoritm för en viss uppgift beror på de olika kriterierna man använder för att döma den. Utförde den uppgiften? Utförde den uppgiften snabbt? Utförde den det effektivt?
Populära sorters algoritmer
Algoritmer kan delas in i kategorierna grundläggande och avancerade
Grundläggande
Du kanske inte inser det, men algoritmer driver till och med de enklaste datorfunktionerna. Här följer en genomgång av tre grundläggande algoritmer som är vanligt förekommande i dag.
Komprimeringsalgoritm
De flesta gör något grundläggande när de använder en dator, såsom att läsa en artikel eller kolla på bilder. Det kan de göra tack vare algoritmer som komprimerar filerna så att de kan granskas, delas och återskapas. Tänk på en jpg-fil. När du tittar på en bild av ditt syskonbarns nya trädkoja tittar du faktiskt på en punktuppbyggd bild som har körts genom en algoritm för inexakt komprimering för att konvertera miljontals numeriska representationer av pixlar till en bild på din skärm som lockar till leende.
Binärsökningsalgoritm
Binärsökning är en snabb sökalgoritm som fungerar på basis av söndra och härska. Säg att du söker igenom din dator efter “2020taxreturns.pdf”. Med en binärsökning väljer algoritmen ut en observation i mitten av ett dataset och kollar om det subject_id som hittats är det efterfrågade subject_id. Om så är fallet stannar algoritmen. Om inte, då tabellen är sorterad, kan algoritmen avgöra om den efterfrågade observationen är över eller under den som just hittades och omdefiniera sökområdet till halva originalfilen. Algoritmen väljer sedan ut en observation i mitten av det nya sökområdet, och processen upprepas tills pdf:en hittas. Japp, du betalade minsann för lite statlig skatt förra året.
Multiplikationsalgoritm
Algoritmer blir ännu enklare än de ovan. Faktum är att en av de populäraste algoritmerna är en som multiplicerar nummer. Nästan allt man gör med en algoritm kräver att två eller fler nummer multipliceras. Till och med inom ett ordbaserat område som analys av text utvärderar man saker som dokument- och ordfrekvenser, och det finns ofta en multiplikator med i spelet.
Avancerade
I spektrumets andra ände återfinns avancerade algoritmer. De bygger på grundläggande algoritmer med nya idéer. Och de omfattar ofta bearbetning av enorma dataset.
Maskininlärningsalgoritmer
Maskininlärning använder algoritmer som tar emot och analyserar indata för att förutse värden på utdata inom ett godtagbart spann. Det som är häftigt med de här algoritmerna är att de lär sig av andra algoritmer. Maskininlärningsalgoritmer lär sig och optimerar sitt arbete allt eftersom ny data matas in, vilket leder till förbättrad prestanda och att de med tiden utvecklar intelligens. Det finns fyra sorters maskininlärningsalgoritmer: övervakad, halvt övervakad, icke övervakad och förstärkning.
Djupinlärningsalgoritmer
Algoritmer för djupinlärning använder flera lager för att successivt extrahera funktioner på högre nivå från indata. För att söka efterlikna den mänskliga hjärnan försöker de här algoritmerna att dra liknande slutsatser som människor genom att fortsatt analysera data med hjälp av något som kallas för artificiella neurala nätverk. Utdatan av de här komplexa algoritmerna kan vara livsförändrande, såsom att möjliggöra för självkörande bilar eller att översätta böcker från engelska till arabiska i en handvändning.
Gradient boosting-algoritmer
Prediktiva modeller hjälper företag att göra saker som att förutse försäljning och prissätta varor baserat på förväntad efterfrågan. Gradient boosting är en kraftfull algoritm för att bygga de här prediktiva modellerna. Det fungerar genom att boosta svaga beslutsträd till att bli starka beslutsträd, och därigenom förbättra precisionen i en prediktion. Algoritmen är känd för sin snabbhet och precision, särskilt med stora och komplexa dataset.
Vilken algoritm ska du använda?
Nybörjare vill ofta veta vilken algoritm de ska använda. Svaret beror på många faktorer, däribland:
- Datans storlek, kvalitet och karaktär.
- Den tillgängliga processortiden.
- Hur brådskande uppgiften är.
- Vad som ska göras med datan.
Inte ens en erfaren datavetare kan säga vilken algoritm som kommer att prestera bäst innan de har testat de olika algoritmerna. När man ska välja en algoritm är det smart att ta följande aspekter i beräkning: precision, träningstid och hur enkel den är att använda. Många användare prioriterar precision, medan nybörjare har en tendens att fokusera på de algoritmer de känner till bäst. När man får ett dataset är det första man ska göra att överväga hur man ska få fram resultat, oavsett hur resultaten kan tänkas se ut. När man har fått fram resultat och har bekantat sig med datan kan man välja att lägga mer tid på att använda mer avancerade algoritmer för att förstärka sin förståelse för datan, och på så sätt förbättra resultaten. Lär dig mer om att välja algoritmer.