Det är lätt att se på maskininlärning som en magisk svart låda, i vilken man stoppar in data och får ut förutsägelser. Med det är inget magiskt med maskininlärning, skriver IDG News. Det är i själva verket viktigt att förstå hur de olika delarna av maskininlärning fungerar, för att få ut bättre resultat. Så, häng med på en rundtur.

Liksom i många andra it-sammanhang, till exempel devops, så används begreppet ”pipeline” inom maskininlärning. Det är en visuell liknelse för hur data flödar genom en lösning. Pipelinen kan grovt delas in i fyra delar:

1. Samla in data, kallas lite lustigt för ”ingesting” (inta) på engelska.

2. Förbereda data, till exempel datatvätt och normalisering om det behövs. Normalisering i det här sammanhanget ska inte förväxlas med normalisering av relationsdatabaser, utan det handlar om att anpassa olika värdeskalor till varandra.

3. Träning av modell.

4. Leverera förutsägelser.

Här följer mer detaljerade beskrivningar av de fyra faserna:

Ta beslut om data

Det behövs två saker för att komma i gång med maskininlärning: data att träna en modell på och algoritmer som styr träningen. Data kan komma från olika källor. Det handlar ofta om data från någon affärsprocess som man redan samlar in, antingen kontinuerligt eller i arkiverad form.

Läs också: AI-expert är hetaste yrket just nu. Men hur blir man AI-expert?

I vissa fall måste man jobba med strömmande data. Då kan man välja mellan att hantera data strömmande eller först spara ner den i en databas. I fallet med hantering av strömmande data finns det ytterligare ett val mellan två alternativ: Antingen använder man nya data för att fintrimma en existerande modeller eller så bygger man nya modeller emellanåt och tränar dem med nya data.

maskininlärning
Klicka på bilden för att visa en större bild av schemat.

De här besluten påverkar valet av algoritmer. Vissa algoritmer är lämpliga för att fintrimma modeller, andra inte. I det senare fallet får man börja om med nya data.

Datatvätt handlar ofta om skalor

Det kan råda en hel del oreda i data som hämtas från en massa olika källor. En sak som ofta behöver ordnas är att normalisera data, alltså att konvertera olika datavärden till samma skala.

Ett enkelt exempel är att 2,45 meter i höjdhopp kan anses vara lika mycket värt som 8,95 meter i längdhopp, eftersom båda är världsrekord. För att man ska förstå att värdena är lika mycket värda behöver de omvandlas, normaliseras, till exempel till 1,0 i båda fallen.

Men i vissa fall är det direkt olämpligt med normalisering. Det gäller om skalan faktiskt har betydelse. Om man vill jämföra kvinnliga och manliga höjdhoppare kanske det är lämpligt att normalisera så att 2,45 meter för män får samma värde som 2,09 meter för kvinnor, eftersom båda är världsrekord. Men om man vill jämföra höjdhoppare oberoende av kön så bör man inte normalisera värdena.

Under fasen för förberedelse av data är det också viktigt att analysera hur partiskhet kan påverka modeller. Det kan till exempel gälla hur man väljer ut data att använda eller hur man normaliserar data.

Dags för hårdträning

Nästa fas är själva träningen av en modell. Den går ut på att använda data för att generera en modell från vilken förutsägelser kan göras. Nyckelaktiviteten under träningen är att göra inställningar, vilket kallas för ”hyperparameterization” på engelska.

En hyperparameter är en inställning som styr hur en modell skapas utifrån en algoritm. Ett mycket enkelt exempel är om man vill dela in ett antal världen i kategorier. I det fallet kan en hyperparameter vara antalet kategorier man vill ha. Ett sätt att komma fram till bra hyperparametrar är att helt enkelt prova sig fram. Men i vissa fall kan man optimera de inställningarna automatiskt.

Ibland kan träningen köras parallellt på flera processorer, vilket naturligtvis ger prestandafördelar. Det behöver inte vara olika processorer, utan man pratar om workers (arbetare). Arbetare i det här fallet är helt enkelt olika kopior av ett program som körs samtidigt på olika ställen.

Parallelliseringen kan i huvudsak ske på två olika sätt: dels kan olika ”arbetare” jobba med olika delar av en datamängd, dels kan olika ”arbetare” jobba med olika delar av modellen.

Dags för leverans

Den sista fasen är att använda den färdigtränade modellen, vilket kan kallas för ”förutsäg och leverera”-fasen. Nu kör man modellen på nya data för att generera en förutsägelse. Om det till exempel handlar om ansiktsigenkänning så är inkommande data förslagsvis en digital bild av ett ansikte. Baserat på träning med andra bilder på ansikten kan modellen nu göra nya förutsägelser.Hur man hanterar alla de olika aktiviteterna i de olika faserna, eller de olika delarna av pipelinen, varierar. Om man använder molntjänster ökar chansen att hantera flera delar på samma ställe, som data för träning, färdigtränade modeller, och så vidare.

Läs också: Dragkamp om AI-startups när it-jättarna öppnar plånböckerna

I vissa fall måste beslut tas om i fall de olika delarna ska hanterar på servrar eller klientenheter. En fördel med att köra bearbetning på en klient, som en smartmobil, är att tillgängligheten ökar för användaren. En potentiell nackdel är sämre kvalitet på förutsägelsen, eftersom det finns mindre hårdvaruresurser, en annan sämre prestanda, alltså att det tar längre tid att generera en förutsägelse.

Iterativt arbetssätt

Att illustrera hela flödet för maskininlärning med en pipeline, alltså ett rör, är lite missvisande. Det handlar ofta om iterativt arbete, alltså att vissa faser upprepas och förfinas. Typexemplet är att en modell trimmas med nya data.

Fördelen med att tänka sig en pipeline med avgränsade delar är att det blir enkelt att fokusera på de olika delarna som avgränsade områden som fungerar på olika sätt.

En allmän iakttagelse att är maskinlärning egentligen lika gärna kan kallas för dataanalys, eller till och med matte, som för AI. Att man kallar maskinlärning för AI kanske beror på att det är en teknik som gör det möjligt att dra slutsatser som människor åtminstone i de flesta fall inte klarar av.