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å.

Manufacturing

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

Algoritmer ersätter allt fler mänskliga beslut i samhället, och vissa har potentialen att förändra liv. Av den anledningen argumenterar vissa för att vi borde utforska rättvisa i algoritmer mer, särskilt inom straffrätt och sjukvård.

Är du nyfiken på vem som utvecklar algoritmerna som förvandlar samhället mitt framför näsan på dig? Den här rapporten från Harvard Business Review fokuserar på människorna bakom avancemangen inom data och automation som driver världen framåt.

Algoritmer kan hjälpa till att rädda regnskogen. Genom att söka igenom miljontals bilder per dag efter tidiga tecken på avskogning, kan algoritmer för datorseende hjälpa statliga beslutsfattare och hjälporganisationer att ingripa för att skydda utsatta skogar innan det är för sent.

Netflix-algoritmen

När du tittar på Netflix, tittar algoritmer på dig. Netflixs rekommendationsmotor består av sofistikerade proprietära algoritmer som tar hänsyn till vad företaget känner till om dig för att räkna ut sannolikheten att du kommer att titta på en viss titel i deras katalog. I dag uppnås 80 % av Netflixs skärmtid genom personlig anpassning. Algoritmens indata inkluderar din visningshistorik, favoritgenrer och tiden på dygnet du tittar. Ju mer du tittar på Netflix, desto mer precisa blir algoritmerna, vilket uppmuntrar dig att titta på mer Netflix, och så vidare. 

Hur algoritmer fungerar

Algoritmer behöver ha fem egenskaper för att fungera:

  1. Indata: Väldefinierad data som kommer att transformeras under beräkningen. 
  2. Utdata: Data som är resultatet från beräkningen.  

  3. Entydighet: Specifika beräkningssteg. 
  4. Effektivitet: Utförbara beräkningssteg. 
  5. 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?

Inspirerad av naturen

De flesta AI projekt i dag förlitar sig på flera olika datavetenskapliga teknologier. Enligt Gartner kallas det för composite AI när man använder en kombination av olika AI-tekniker för att uppnå bästa resultat.

Algoritmer kan ses som en genväg till mänskligt tänkande. Därför är de ofta inspirerade av naturliga element. Genetiska algoritmer, till exempel, kopierar biologin bakom hur organismer utvecklas över tid. De här algoritmerna kombinerar beslutspunkter för att skapa avkommor med föräldrarnas egenskaper. På samma sätt är neurala nätverk inspirerade av den biologiska hjärnan och används för att lösa vissa annorlunda problem som datorseende och språkbehandling.

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.

Nästa steg

Om du vill lära dig om algoritmer är SAS rätta stället.

För bara ett årtionde sedan krävdes det en utbildning på avancerad nivå och en encyklopedisk förståelse för matematik och datavetenskap. I dag är världens mest sofistikerade algoritmer fint inpackade i programvara så att till och med avancerade användare kan leverera banbrytande arbete utan att behöva pilla med formler.  

Ett sådant exempel är SAS för maskininlärning och djupinlärning. I produkten finns några av världens mest avancerade algoritmer som möjliggör för användare, oavsett bakgrund, att lösa komplexa analytiska problem. Den högt rankade programvaran erbjuder ett överflöd av algoritmer som hjälper dig att göra saker som att bygga prediktiva modeller och identifiera lönsamma affärsmöjligheter.

Kontakta oss för att se hur vi kan hjälpa dig.