Smartare smartphones

Reportage: Det här är AI, Artificiell intelligens och maskininlärning

Från forskningsfront, science fiction och domedagsprofetior till en mobil nära dig. Förväntningarna på AI har aldrig varit större och det mesta som lanseras, oavsett om det handlar om nya prylar, appar eller tjänster, gör anspråk på att använda tekniken. Vi tittar närmare på vad som döljer sig bakom hajpen och skillnaderna mellan AI och ”vanlig” beräkningskraft.

Publicerad Uppdaterad

Idag talar flera mobiltillverkare om Ai och det blir allt vanligare att telefoner till och med får ett speciellt dedikerat AI-chip. Både Apples senaste Iphones och Huawei Mate 10 Pro är exempel på detta, men AI är långt ifrån ett nytt fenomen. I grunden bygger AI på att tekniken först matas med en stor mängd data och sedan drar slutsatser utifrån tidigare dragna slutsatser. Ordförslagen när du skriver text såväl i dagens smartphones som i äldre telefoner med bara sifferknappar och T9 är exempel på det här. Men det började långt tidigare än så.

Utge sig för att vara människa

Alan Turing, den brittiske matematikern som spelade en nyckelroll i arbetet med att knäcka tyskarnas kryptering under andra världskriget, presenterade redan 1950 ett test för att avgöra om maskiner kan tänka. Turing-testet går ut på att människor chattar via skärm och tangentbord – antingen med en person vid en terminal i ett annat rum eller med vad vi idag skulle kalla en chatbot. För att klara testet måste chatboten vara så kompetent att testpersonerna inte kan avgöra om de chattar med människa eller maskin. Varje år genomförs tävlingar som bygger på Turing-testet, men hittills har ingen Artificiell intelligens (AI) bemästrat ett ”obegränsat test” – där chatboten ska kunna svara som en vuxen människa och bemöta alla typer av frågor.

– Vi har ännu inte närmat oss någon AI som är generell och bra på många olika saker. De är väldigt smala experter och bra på just det de tränats för, säger Robert Feldt, professor i mjukvaruutveckling vid Chalmers tekniska högskola.

Robert Feldt, professor i mjukvaruutveckling vid Chalmers tekniska högskola

I datorernas barndom

Begreppet AI dök upp redan i datorernas barndom, men då var forskningsområdet i första hand filosofiskt och handlade om teoretiska framtida datorer och vad som skulle hända om man lyckades bygga en elektronisk hjärna med samma kapacitet som människans. Avstampet för AI som en gren inom matematik och datavetenskap var en sommarworkshop år 1956 på Dartmouth College, USA. Initiativtagaren John McCarthy slog fast att konferensen skulle utgå från antagandet att alla former av lärande och andra former av intelligens går att beskriva så exakt att en maskin kan fås att simulera det. Deltagarna i Dartmouth ägnade ungefär 8 veckor åt att skriva program som löste skilda uppgifter som att hitta nya bevis för flera av Newtons matematiska teorem eller att spela enkla brädspel.

Datorer som lyckas vinna över människor i spel går alltid hem som exempel och företag som IBM och Google har utmanat mästare i såväl frågesport som brädspelen schack och go för att skapa intresse kring AI-satsningarna. Den första schackdatorn som kunde spela på mästarnivå var Deep Thought. Även om många spelare fick se sig besegrade av datorn, så vann stormästaren Gary Kasparov två partier i rad mot Deep Thought vid en uppvisningsmatch i New York 1989. IBM, som sponsrat utvecklingen av Deep Thought, återvände till ritbordet och utmanade några år senare Kasparov på nytt med datorn Deep Blue – en specialbyggd maskin på 1,4 ton med 32 parallella processorer. Kasparov tog hem det första mötet 1996 med fyra partier mot två, men IBM vässade prestandan ytterligare och 1997 lyckades Deep Blue vinna över Kasparov med siffrorna 3-2 (ett parti oavgjort). Turneringen väckte mycket uppmärksamhet. Kasparov hävdade att IBM fuskat och krävde revansch. IBM vägrade, men publicerade senare loggar som ansågs bevisa att datorn spelat utan någon mänsklig hjälp under pågående match. Intresset för AI fick ett uppsving. Många menade att det måste vara ett tecken på intelligens att en maskin kunde vinna över världens främste schackspelare.

– Gränsen flyttas hela tiden och ända sedan 70-talet använder vi begreppet AI för det som vi för tillfället inte riktigt tror att vi kan göra med datorer. Speciellt om algoritmen inspireras av biologi, säger Robert Feldt.

För att avgöra och mäta människors respektive maskiners intelligens har schack använts, bland annat när IBM:s dator Deep Blue ställdes mot Garri Kasparov.

Inte verkligt smart

I backspegeln framstår Deep Blue inte som särskilt intelligent. Inte för att datorn hade klena prestanda eller att den misslyckades med sina uppgifter, utan på grund av hur den arbetade. Deep Blue besegrade Kasparov med vad som till största del var ”brute force”. Programmet testade helt enkelt så många kombinationer som den klarade att räkna ut inom schackturneringens tidsgränser och kunde på så sätt ha koll på alla tänkbara utfall upp till åtta drag framåt i partiet. Det räckte för att ge ett litet övertag mot Kasparov.

När mobiltillverkarna nu storsatsar på AI handlar det inte om att på 90-talsvis kasta mängder av beräkningskraft på ett problem för att komma i mål lite snabbare än en människa, utan om att hitta mönster i data som gör det möjligt att söka effektivare, kategorisera och förstå innehåll som bilder, tal och musik eller att förutse vad som ska hända härnäst. AI är också centralt för Siri, Alexa och andra gränssnitt som gör det möjligt att styra mobilen med rösten eller naturligt språk.

– Röststyrda assistenter är ett mycket bra exempel på AI. De innehåller i praktiken en lång kedja av olika AI-moduler som tolkar röst till text och därefter text till meningar, säger Dr Shang-Ling Jui, chefsarkitekt för AI på Huawei.

Dr Shang-Ling Jui är ansvarig för AI på Huawei. Mobil fick en intervju med honom när han besökte Helsingfors i november 2017.

Tekniken för att omvandla tal till text har tagit stora kliv framåt under de senaste åren, men det är svårt att avgöra om assistenterna verkligen är smarta eller om de bara har en databas med färdiga svar stor nog för att klara huvuddelen av de frågor som ställs.

Robert Feldt förklarar att det är teorier och forskningsresultat från 80-talet som kommer till användning i dagens appar tack vare att hårdvaran har blivit tillräckligt snabb och att det nu finns stora mängder data att tillgå som gör det möjligt att träna upp en AI. Det har i sin tur gjort att intresset för AI nu är större än någonsin. Pengar och forskare strömmar till och det händer mycket på det akademiska området igen.

AI bakom kulisserna hos Apple

Apples främsta företrädare, med vd Tim Cook i spetsen har i det fåtal mediaframträdanden de gjort presenterat flera uttalanden om AI och teknikens viktiga roll framöver. Bland annat ska Apple öppna ett särskilt utvecklingscenter i Japan för att tillsammans med olika japanska företag utveckla nyttan med AI. I en intervju med Nikkei Asian Review har till exempel Tim Cook sagt att AI och dess fördelar spänner över alla produktkategorier. Han gav flera exempel och sa att Apple arbetar för att AI ska kunna hjälpa dig minnas var du parkerade bilen, förbättra mobilernas batteritid och ge dig rekommendationer om musik du kommer att gilla.

Nog tycks den nya Siri-ikonens form och placering vara ämnad för en virtuell hemknapp?

Även Apples chef för tjänster, Eddy Cue har uttalat sig i en större intervju med amerikanska magasinet Wired. Det tydligaste exemplet är kanske den röststyrda assistenten Siri. I intervjun med Wired berättar Eddy Cue att Siri, som lanserades i Iphone 4S år 2011 i grunden förnyades den 30 juli 2014. Då, utan att publikt berätta om det så flyttade Apple Siris rösttolkning till ett neuralt nätverk och det enda som användarna förmodligen märkte av detta var att Siris svar blev betydligt bättre. Flytten genomfördes först för användare i USA och en månad senare för övriga världen.

– Det här var en så tydlig förbättring att vi ville testa samma sak på nytt och se att ingen satt ett kommatecken fel när vi genomförde testet, säger han till Wired. 

Det finns dock betydligt fler exempel än den röststyrda assistenten Siri. Du märker det, alltså AI, när telefonen gissar namnet på den som ringer trots att du inte har personen i fråga i din kontaktlista eller när telefonen visar de appar det är mest troligt att du använder härnäst. Namnet till den okända som ringt dig har telefonen hittat i dina senaste e-postmeddelanden och vilka appar du troligast använder lär den sig av tidigare erfarenhet. AI används även för att bestämma när det lönar sig för telefonen att lämna en långsam wifi-uppkoppling för att istället använda mobilnätet och det används för att hitta bedrägeriförsök i Appstore eller för att förbättra batteritiden mellan laddningar.

Neuronnät och maskininlärning

Tekniken som dominerar i AI-drivna appar och tjänster kallas neurala nätverk (begreppet neuronnät förekommer också och är samma sak) och maskininlärning. Ett neuralt nätverk angriper sina uppgifter på ett sätt som är inspirerat av hur nervceller fungerar i biologin. En nervcell hos djur eller människor har ett antal ingångar (dendriter). De är kopplade till andra nervceller via anslutningar (synapser). Nervcellen summerar signalerna som går in på dendriterna och när värdet når över en viss tröskel så aktiverar nervcellen sin egen utgång (axon) som i sin tur är kopplad till ingångarna på andra nervceller. AI-programmens nervceller kallas noder och jämfört med sina biologiska motsvarigheter är de mer fyrkantigt organiserade, i simplare system med färre noder och kopplingar. Storleken på nätverket brukar beskrivas i termerna bredd och djup. Bredden är antalet ingångar – antalet noder i det lager som tar emot data för behandling. För att hantera en bild på exempelvis 16 x 16 pixel behövs 256 noder. Ingångslagret följs ofta av ett eller flera dolda lager och till sist kommer ett resultatlager som består av så många noder som krävs för att beskriva svaret. Om det neurala nätverket bara ska avgöra om något är sant eller falskt, till exempel om en bild föreställer en hund eller inte, så räcker en nod.

En stor skillnad mellan neurala nätverk och mer konventionella datorprogram är att de måste byggas i två steg. I första steget, som påminner mest om vanlig programmering, fattas beslut som nätverkets bredd och djup, hur det matas med data och hur det kopplas till övriga delar av applikationen. Steg två innebär att nätverket tränas. Ska appen exempelvis kunna tyda handskrift så måste den matas med många exempel på hur människor skriver siffror och bokstäver. Det är denna träning som kallas maskinlärning.

Dr Shang-Ling Jui här till höger träffade journalister i Helsingfors sent förra året.

Shang-Ling Jui förklarar att man använder sig av molnet för att träna motivigenkänningen i kameraappen. Det krävs tusentals, eller till och med miljoner, bilder för att skapa en AI med som kan arbeta själv med hög träffsäkerhet.

När det gäller möjligheten att skilja på en katt och en hund i ett motiv får vi veta av Shang-Ling Jui att inlärningen har krävt en miljon olika bilder.

Två sorters maskininlärning

Maskininlärningen kan delas in i två huvudkategorier – övervakad eller oövervakad. Övervakad inlärning sker genom att man serverar det neurala nätverket både indata och ”facit” medan oövervakad inlärning innebär att nätverket får jobba utan förkunskaper vilket fungerar bra för att hitta samband och gruppera data.

Ett exempel som passar för övervakad inlärning är att skapa en app som värderar bilar. Variabler från tidigare bilaffärer som märke, modell, ålder, miltal och skick matas in på ingångslagrets noder och nätverket får lära sig att just den kombinationen av egenskaper resulterade i ett pris på exempelvis 100 000 kr. När nästa bil presenteras för det neurala nätverket kan det försöka sig på en gissning. Med erfarenhet som begränsar sig till en tidigare bil tvingas appen anta att alla faktorer är lika viktiga och kvaliteten på gissningen blir därefter. Men när det neurala nätverket får möjlighet att jämföra sin gissning med det verkliga utfallet börjar inlärningen på allvar. Istället för att värdera variablerna lika så tilldelas olika vikter – till exempel att miltalet kan väga tyngre än bilens ålder. För varje exempel som läggs till justeras vikterna så att summan av felen blir så litet som möjligt när man går tillbaka och räknar på alla exempel. Metoden kallas multipel linjär regression och resulterar i en modell – en uppsättning vikter som omvandlar indata till en kvalificerad gissning. Men maskininlärning kan bli smartare och betydligt mer komplex än så. Här har vi bara ett lager av noder som är kopplat direkt till resultatlagret. Det fungerar för vissa scenarion och samband, men tänk om bilar av ett visst märke tappar värde väldigt snabbt eller om antalet hästkrafter är väldigt betydelsefullt för röda bilar, men inte påverkar priset på vare sig vita eller blå exemplar. Då krävs ett mer avancerat nätverk. Lösningen är att lägga till fler nivåer av noder – de dolda lagren. Genom att lägga till ett dolt lager med till exempel fem noder kan det neurala nätverket kombinera fem olika modeller från det första lagret och tilldela nya vikter för hur mycket varje modell ska få påverka det slutliga beräknade priset. Gränsen går naturligtvis inte vid ett dolt lager eller fem noder. Med större nätverk kan modellen rymma mer data och hantera mer komplicerade samband, men samtidigt krävs mer processorkraft – både för träning och för användning av AI:n. Gränsen är lite flytande, men någonstans vid tre dolda lager eller fler anses nätverket vara ett ”deep neural network” och inlärningen kallas då ”deep learning” – ett begrepp som ofta dyker upp när nya AI-appar presenteras.

Exemplet med värdering av bilar kallas regression – en kategori av modeller som räknar ut priser, sträckor, tidsåtgång eller andra kvantiteter. En annan mycket användbar kategori är klassificeringsmodeller. De flesta klassificeringsmodeller levererar poäng. En sannolikhet för om ett påstående är sant eller falskt. Tillhör fingeravtrycket en godkänd användare? Är låten som spelas just nu ”Gangnam Style”? Förutom praktiska och roliga funktioner i mobiler och molntjänster kommer tekniken att spela en viktig roll inom sjukvården – till exempel för att identifiera prover och röntgenbilder som visar tecken på cancer eller andra allvarliga sjukdomar.

Delar upp problemet

Metoderna som används för att lära det neurala nätverket att klassificera bilder, musik eller andra former av indata har många likheter med regressionsmodellerna, men använder smart teknik för att dela upp problemet i hanterbara portioner och drar nytta av ”deep learning” och neurala nätverk med många dolda lager. Ett neuralt nätverk med tillräckligt många noder för att svälja en färgbild med 10 megapixel i en tugga skulle aldrig fungera i mobiler eller vanliga datorer. Därför delas bilden upp i ett antal överlappande rutor, var och en lagom stor för nätverket att hantera. Metoden kallas faltning eller konvolution och har flera fördelar. Förutom att den reducerar kraven på hårdvaran så gör den det lättare för AI:n att förstå att en fågel är en fågel – oavsett om den dyker upp i övre eller nedre halvan av bilden eller om den syns mot en bakgrund av blå himmel eller vita moln. Varje ruta matas in i ett litet neuralt nätverk som omvandlar bildinformationen till en matris som utgör ett slags mått på om rutan innehåller färger, former eller annan information som är relevant för att klassificera bilden. Resultaten från samtliga rutor bildar en jättematris – ett rutnät av värden som talar om vilka delar av den fullständiga bilden som är mest intressanta. Resultaten från de olika rutorna grupperas sedan – till exempel fyra och fyra – och bara de tydligaste värdena från respektive grupp går vidare till nästa steg. Faltning, gruppering och urval går att upprepa och kombinera på olika sätt och det kan kräva många experiment för att hitta en lösning som ger rätt avvägning mellan datamängd och precision. Det sista steget är att mata in de värden som finns kvar i ytterligare neurala nätverk som levererar sannolikheter för att bilden faller inom en viss kategori.

Mobilernas AI-chipp är anpassade

Shang-Ling Jui på Huawei berättar att matriser är centrala för hur beräkningarna bakom AI-modellerna utförs och att AI-chipen som allt oftare tar plats i dagens flaggskeppsmobiler är utvecklade för att accelerera just matrisoperationer.

Kirin 970 är Huaweis första processor med dedikerat AI-chipp och den presenterades på IFA-mässan 2017.

Att göra en matrisberäkning på en vanlig CPU kan kräva tusen instruktioner. En NPU (Neural Network processing unit) är både snabbare och mer energieffektiv. Det är en utmaning att hålla nere energiförbrukningen, värmeutvecklingen och storleken på komponenterna, säger Shang-Ling Jui.

Det krävs dock specialskrivna appar för att dra nytta av systemchip med AI-funktioner. Huawei och Apple har egna ramverk och API:er, men det finns hopp om viss standardisering och möjlighet att använda samma kod på enheter från olika märken när ramverken från exempelvis Facebook och Google anpassas för de nya AI-mobilerna.

Kritiken: Enbart ett marknadsföringsknep

Vissa kritiker hävdar att AI-chipen bara är ett marknadsföringsknep och att beräkningarna går lika bra att köra på mobilens grafikprocessor (GPU). Det finns ett mått av sanning i detta. Såväl grafik som maskininlärning bygger på matrisoperationer – stora rutnät av värden som ska utsättas för beräkningar av olika slag. Men där grafikberäkningar behöver vara exakta för att det ska se rätt ut på skärmen jobbar en AI med grova uppskattningar och sannolikheter. Det går att sänka precisionen samtidigt som prestandan ökar – till exempel genom att använda 8 eller 16 databitar istället för 64. Man kommer långt med att flytta AI-beräkningarna från CPU till GPU, men en AI-anpassad processor gör jobbet ännu mer effektivt – förutsatt att apparna är specialskrivna för att utnyttja den.

AI-hårdvara har funnits under ett antal år i molnet och börjar nu dyka upp i mobilernas systemchip. Vad är poängen med att flytta funktionerna till mobilen med alla begränsningar som det innebär för utrymme och batterikapacitet?

Den huvudsakliga anledningen till att lägga AI-kapacitet i enheten är för att skydda användarens personliga integritet, säger Shang-Ling Jui på Huawei.

Även Google och Apple som har ett dedikerat AI-chipp i sina senaste Iphone-modeller tittar på möjligheter att utveckla sina AI-system samtidigt som privata och känsliga data kan stanna kvar i mobilen. Google kallar tekniken ”federated learning”. Det innebär att man kan sprida ut inlärningen till många enheter och samla in kunskapen – det vill säga hur inlärningen påverkat vikterna i det neurala nätverket – utan att samtidigt behöva samla in den data som användes vid träningen. Apple har tagit fram ett liknande koncept som går under namnet ”differential privacy”. 

Utan att gå in på framtidsdystopier som Terminator eller The Matrix kan man se utmaningar för både integritet och juridik när AI-tekniken blir alltmer utbredd. Många bedömare menar att en AI skulle kunna köra bil betydligt säkrare än någon människa, men samtidigt finns det krav på att en självkörande bil ska reagera helt förutsägbart vilket begränsar möjligheterna att använda maskininlärning fullt ut för att minska olycksrisken.

Robert Feldt På Chalmers menar att det är väldigt svårt för en människa att förstå hur ett tränat AI-program fungerar genom att titta på koden eller att förutse hur det kommer att reagera på en oväntad situation.

I framtiden kommer vi att ha en mängd programvaror som varnar oss för olika faror, men det kommer inte gå att ta reda på exakt varför.

Fakta: Hårdvara för AI

Apple A11 Bionic

Systemchipet i Iphone 8, 8 Plus och X innehåller förutom sedvanliga ARM-kärnor och processorer för grafik och data från rörelsesensorer en dedikerad del för AI-beräkningar – ”Neural Engine”. Enligt Apple innebär detta att beräkningarna bakom funktioner som Face ID och Animoji kan utföras med lägre strömförbrukning samtidigt som CPU och GPU avlastas.

HiSilicon Kirin 970

Huawei vill göra det möjligt att köra funktioner som idag huserar i molnet direkt på mobilens hårdvara. Systemchipet Kirin 970, som används i mobilen Mate 10 Pro, har fler transistorer än de närmaste konkurrenterna från Apple och Qualcomm och använder en NPU (Neural Network Processing Unit). Enligt Huawei gör den nya hårdvaran det möjligt utföra främst bildklassificering snabbare och med lägre energiförbrukning än vad som är möjligt med en vanlig processor.

Nvidia Drive och Jetson

Nvidia håller fast vid linjen att grafikprocessorer, GPU:er, är väl lämpade för att driva AI och maskininlärning. Nvidia är en stor leverantör av AI-kapacitet för datacenter och molnlösningar, men märket har också mobila lösningar. Nvidia Drive PX2 är en plattform för AI i större autonoma fordon medan den mindre modulen Jetson är anpassad för drönare och robotar. Med strömförbrukning i storleksordningen 10 watt är dock ingen av processorerna något för mobiler eller surfplattor.

Tensor Processing Unit (TPU)

En specialbyggd hårdvara för Googles TensorFlow-ramverk. TPU-chipen kan liknas vid avskalade grafikprocessorer som är optimerade för att kunna multiplicera matriser så effektivt som möjligt. Google använder TPU-processorerna i sina egna datacenter för att driva exempelvis Google Photos, men det är också möjligt för externa utvecklare att köpa in sig på kapaciteten via Google Cloud.

Fakta: Genvägar till AI

Det krävs mycket matematik för att lära en kameraapp att skilja hund från katt eller att omvandla röst till text, men många vill använda sig av tekniken. Därför har jättarna i branschen tagit fram färdiga funktioner – API:er – som gör det möjligt att applicera AI på ett problem, utan att varje utvecklare behöver förstå exakt hur det fungerar.

TensorFlow

Google använder mjukvarubiblioteket TensorFlow både för forskningsändamål och för att leverera tjänster som automatisk fototaggning eller sökning med röstkommandon. TensorFlow fungerar på de flesta plattformar och kan använda sig av GPU-kärnor (grafikkort) för att öka prestandan. I Googles datacenter finns också särskild hårdvara, Tensor Processing Units, som är utvecklad för att köra TensorFlow så effektivt som möjligt. Biblioteket finns även i en bantad ”lite”-version som är anpassad för att köras direkt i mobiler eller i inbyggda system. TensorFlow Lite är en del av Android Oreo.

IBM Watson Analytics

En molntjänst för att hitta mönster i data och bygga smartare appar och system – främst för marknadsföring, finans och logistik. Watson är uppkallat efter IBM:s förste VD Thomas J. Watson och namnet går igen i många av företagets AI-satsningar, till exempel den Jeopardy-spelande Watson-datorn. Watson Analytics går att använda både som en fristående webbtjänst och via API.

Caffe2

Akronym för Convolutional Architecture for Fast Feature Embedding – ett mjukvarubibliotek för maskininlärning som Facebook vidareutvecklade och släppte som öppen källkod i april 2017. Caffe2 har likheter med TensorFlow, men är helt inriktat på praktisk användning och affärsnytta och saknar den flexibilitet som krävs för att passa inom forskning. Facebook själva använder Caffe2 bland annat för artistiska foto- och videofilter, eller ”fast style transfer” som tekniken kallas.

Core ML

Apples ramverk för maskininlärning är optimerat för att lösa uppgifter med hjälp av AI direkt i mobilen – utan att behöva förlita sig på servertjänster. Core ML kan använda såväl CPU- och GPU-kärnor som den särskilda AI-hårdvaran som lanserades med Iphone 8-processorn A11 Bionic. Core ML skall ge bättre prestanda i Siri genom att sköta en stor del av omvandlingen från tal till text lokalt i mobilen, men kan också användas för att klassificera bilder utan att några data behöver skickas till molnet.