För att komma igång med artificiell intelligens (AI) på ett bra sätt finns det några nyckelfaktorer som är bra att ha koll på redan från start. Vad behövs för att börja använda och dra nytta av AI och maskininlärning (ML)? Hur går man vidare från idé till nytta i sin verksamhet? Den här artikeln handlar om hur man själv kan lära sig mer och skapa en lösning på egen hand. Ett annat sätt är såklart att anlita någon som kan hjälpa till med ett, flera eller alla steg för att ro lösningen i hamn.

För många kommer det nog inte som en stor överraskning. AI har under de senaste åren visat stor potential i en rad olika former och tillämpningar. Det är exempelvis 23 år sedan som kolbaserade system fick se sig besegrade av maskiner i brädspelet schack. I maj 1997 förlorade dåtidens världsmästare i schack, Garry Kasparov, mot IBM:s superdator “Deep Blue” med 3½ – 2½. Sedan dess har AI och ML tagit över taktpinnen som världsledare i schack genom att vinna det senaste världsmästerskapet för datorer.

“Deep Blue was intelligent the way your programmable alarm clock is intelligent. Not that losing to a $10 million alarm clock made me feel any better.” – Garry Kasparov, Deep Thinking: Where Machine Intelligence Ends and Human Creativity Begins

AI och ML används också för att lösa ganska vardagliga problem. Många använder förmodligen flera olika typer av ML-algoritmer dagligen utan att tänka på det. Det kan handla om allt från bildigenkänning inom sjukvården eller i bilen, röstigenkänning i mobiltelefonen eller spam-filter till rekommendationer av recept, musik och film. För att få ytterligare perspektiv på AI och ML samt hur det används i praktiken rekommenderar jag varmt följande artikel av Anders Englund.

Vad är det då som krävs för att komma igång börja använda modern ML? Här sammanfattar jag några viktiga punkter:

Tips 1: Teoretiska bakgrundskunskaper

ML går att likna vid linjär algebra, statistik och sannolikhetslära på steroider. Även om det idag finns en rad olika bibliotek att ta hjälp av i implementationen är det alltid bra med en djupare förståelse kring vad algoritmen gör och hur den fungerar. Ofta kan exempelvis data behöva förbehandlas på något sätt genom transformationer eller dimensionalitetsreduktion. 

 Om du är intresserad av att lära dig grunderna i AI föreslår jag att börja med onlinekursen  “Elements of AI”.

Tips 2: Fundera på vad det är du vill bygga

Ta gärna ett steg tillbaka och formulera vad det är du vill åstadkomma i en enda mening, exempelvis:

“Bygga ett system som förutspår priset på ett hus.”

Med målet i sikte går det sedan att bryta ner problemet i mindre bitar och lösa dem var för sig.

Tips 3: Bryt ner problemet

I exemplet med systemet som förutspår huspriser kan vi dela upp problemet i följande steg:

  • Förvärva relevanta data: Slutpriser beror förmodligen på bl.a. ålder, plats, storlek, antal rum, tid för försäljning, närhet till kollektivtrafik, mataffär och skola. Gör en sammanställning av hur försäljningen har sett ut historiskt.
  • Analysera data: Gör en analys av data för att försöka hitta information som en modell kan ha nytta av. Kan en karta över husets plats, färgat med slutpris visa oss att priset tenderar att öka ju närmare vissa stadsdelar vi kommer?
  • Hitta en lämplig modell: I det här fallet vill vi förutspå ett kontinuerligt värde (priset), vilket gör det lämpligt att titta på en modell som tillämpar regression och försöker skapa en funktion som passar bra, givet våra tidigare observationer.
  • Utvärdera resultatet: Applicera modellen och jämför förutsägelsen med det faktiska värdet.

Tips 4: Börja med något enkelt och utveckla vid behov

Det finns många problem som inte alls behöver lösas med stora och djupa neurala nätverk. Ofta kan mindre komplexa modeller lösa problem både bättre och med mindre resurser i anspråk vid träningstillfället. Därför är det en bra idé att börja smått, plocka den lågt hängande frukten och testa en modell av enklare variant. När resultatet sedan utvärderas är det lätt att se och jämföra hur mycket bättre en mer resurskrävande modell presterar.

Tips 5: Hårdvara

Maskininlärning och AI är kräver generellt en del beräkningskraft. För att hitta en lämplig modell kommer det att krävas en hel del tester, oavsett modellens struktur. Här finns huvudsakligen två alternativ:

  • Investera i en kraftfull dator
  • Använd en molntjänst

I normalfallet är molntjänst-alternativet det bästa sättet att komma igång. På så sätt följer vi också vårt eget råd genom att börja smått och utöka kapaciteten vid behov.

Tips 6: Mjukvara

Idag finns det en rad olika ramverk och verktyg för hela cykeln, från prototyp till driftsättning och underhåll. En bra start är att titta närmare på scikit-learn, som implementerar många vanliga tekniker i Python på ett överskådligt sätt. För att täcka hela cykeln från utveckling till produktion är PyTorch och Tensorflow två ramverk som har blivit väldigt populära. För att snabba på den experimentella fasen av djupinlärning kan Keras vara till hjälp genom att tillhandahålla ett väldigt enkelt API till Tensorflow. Om modellen baseras på djupinlärning kan det också vara intressant att titta närmare på AutoKeras i den experimentella fasen. AutoKeras använder, med väldigt gott resultat, Bayesiansk optimering för att guida en sökning efter bästa möjliga arkitektur på nätverket, givet den data som finns tillgänglig. Väldigt spännande! Samtliga bibliotek och ramverk ovan är baserade på öppen källkod.

Några andra vanliga plattformar för ML är Azure Machine Learning och Amazon SageMaker som tillhandahåller tjänster för att sköta hela ML-cykeln, vilket kan spara en hel del tid.

Tips 7: Hur mycket data behöver jag?

En vanlig fråga som kommer upp är hur mycket data som behövs för att komma igång. Det kan variera beroende på vilken modell vi väljer att jobba med. En nackdel med exempelvis djupinlärning är just att sådana modeller tenderar att kräva ganska mycket data för att nå ett bra resultat. Dock är bristen på data sällan ett hinder för att komma igång och börja testa. Det finns metoder som försöker råda bot på problemet med lite data genom att generera ny, syntetisk data i de fall där mängden data är begränsad. Även om det kräver att den data som finns tillgänglig är distribuerad på ett fördelaktigt sätt är dessvärre effekten ofta marginell. Men återigen, det är en bra idé att börja med att utgå från data som redan finns för att sedan samla in mer data när det blir tydligt att behovet ökar.

Det skall nämnas att det fortfarande kan vara intressant att använda syntetiska datapunkter (d.v.s. genererade data) även om mängden data växer. Om det exempelvis förekommer väldigt få exempel av den ena klassen i binär klassificering kan modellen få enklare att skilja klasserna åt om antalet exempel är någorlunda lika, vilket i slutändan ger en modell som presterar bättre på ny data. En annan lösning är såklart att ignorera många av exemplen i den överrepresenterade kategorin.

Tips 8: Våga testa

Till sist: Det viktigaste av allt är att komma igång och våga testa. Förmodligen behövs det inte ett stort datacenter och flera terabyte data för att dra nytta av modern ML redan idag.

Christoffer Johansson

Expert på maskininlärning

Civilingenjör Datateknik – Linköpings Tekniska Högskola.

Kontakta mig för alla dina frågor om AI från inspiration, utvärdering av affärsmöjligheter, förstudier, säkerhet och teknik till nyckelfärdig leverans av kompletta lösningar.

christoffer.johansson@attentec.se