Från Big Data till Small Data — data är inte gratis

AI i framtidens hållbara städer, del 3

Hedvig Kjellström
Viable Cities
Published in
9 min readOct 17, 2019

--

Photo by Franki Chamaki on Unsplash

Under det senaste decenniet har vi sett en revolutionsartad utveckling av AI, det vill säga datormetoder som lär sig ifrån data och kan ta in information och ta beslut på egen hand baserat på den. Nyckeltekniken är Deep Learning, där man använder sig av mycket stora artificiella neurala nätverk som tränas med ännu större mängder dataexempel. Utvecklingen är på många sätt svindlande. Det som för tio år sen låg bortom forskningsfronten och bara var framtidsscenarier är numera ute bland användarna. Nya bilar har intelligent förarstöd, och många använder sig av intelligenta agenter som Alexa och Siri hemma eller i mobilen.

På en samhällsnivå finns det en stor potential med Deep Learning för att göra transporter, vattenförsörjning och energianvändning så effektiva och sparsamma som möjligt. Men det är svårt att överblicka konsekvenserna av teknikskiftet. Ett exempel är taxitjänster och delning av autonoma bilar. Å ena sidan kan det innebära en stor vinst med färre (och fossilfria) fordon inne i städer. Ytor som nu används till bilparkering kan istället frigöras för cykelbanor, parker och lekplatser. Å andra sidan kan ju det tänkas att trafiken ökar okontrollerat när många tar en autonom taxi istället för att vänta på bussen, som ju är betydligt mindre flexibel och bara stannar på vissa platser vid vissa tider. (Dessutom finns det energianvändningsproblem med själva Deep Learningtekniken, jag återkommer till detta nedan.)

Jag vill poängtera att den här tekniken ligger mycket långt ifrån det man brukar kalla generell AI, system som är människolika i den meningen att de är medvetna, kreativa och kan lösa nya problem med hjälp av kunskaper de lärt sig i andra sammanhang. Ett typiskt Deep Learning-system kan bara göra en enda sak, exakt den det tränats för. Till exempel så kan Siri och Alexa förstå ganska komplexa frågor och yttranden från en användare och leta reda på ett bra svar i sin databas. Det är naturligtvis otroligt imponerande bara det, men det är ett milslångt steg vidare till att bli medveten, få ett hugskott och göra saker på egen hand, utan att en användare frågar. Därför väljer jag i denna text att fokusera på mer närliggande problem och frågeställningar kring dagens AI-system.

Det är ganska fantastiskt! Men vad kostar det?

Det är som med all teknik viktigt att titta på kostnaderna. Deep Learning-teknik kräver mycket av tre sorters resurser: Data att träna med (till exempel bilder, om tillämpningen är automatisk segmentering av bilder), uppmärkning av träningsdatan (till exempel den sanna segmenteringen av alla bilder i träningsdatamängden, om tillämpningen är automatisk segmentering av bilder), samt beräkningskraft (i form av datorkluster där all data lagras och beräkningarna som tränar nätverken körs). Vi tittar närmare på var och en av dessa.

1. Data att träna med

Eftersom djupa neurala nätverk kräver så mycket data för träning har det förstås slagit igenom framförallt inom områden där man kan få tag på stora datamängder. Några exempel är bildsökning på Internet, musikdelningstjänster, rekommendationssystem som ger tips om “liknande produkter” vid köp i nätbutiker och talande agenter i mobilen.

Men datamängderna är inte fritt tillgängliga. Gemensamt för i princip alla sådana produkter är att de har utvecklats av företag som själva kan samla in de träningsdata som krävs. Data är en tillgång i ett företag, på samma sätt som de fasta tillgångarna, pengakapitalet och personalen (ett exempel i denna artikel) ─ och företaget kommer därför inte att dela med sig fritt av sina data (med vissa undantag förstås, som när exempelvis Amazon utlyser “challenges” där forskare får testa sina metoder på deras data och tävla mot varandra).

Kontentan är alltså att för att utveckla ett framgångsrikt Deep Learning-system måste du vara, eller jobba på, ett företag som kan samla in stora mängder data. Dessutom finns det tillämpningar där det inte går att samla in stora mängder data, som många medicinska områden där det kan vara både svårt och rent oetiskt att samla in mer data än behandlingarna kräver.

2. Uppmärkning av träningsdata

De flesta av dagens AI-metoder behöver, förutom väldigt många dataexempel, också uppmärkning av alla datapunkter. Till exempel, som jag skriver ovan, behöver ett system som segmenterar bilder inte bara en stor mängd bildexempel, utan också “den sanna” segmenteringsmasken för varje bild.

Flera frågor uppstår. För det första, hur får man tag i så många segmenteringsmasker? Hur vet man om segmenteringsmaskerna är “sanna”, eller hur felaktiga de är? Dessutom, vad är en “sann” segmenteringsmask, och vem avgör det?

Svaret på den första frågan är Crowd Sourcing, som innebär att man använder sig av många människor som var och en gör lite arbete över internet. Det är en ganska fantastisk och samtidigt enkel idé som har varit, och är, väldigt central för utvecklingen av Deep Learning. För att återvända till vårt segmenteringsexempel, så får man stora mängder segmenteringsmasker genom att låta många människor delta över nätet och bidra med en eller ett par manuella segmenteringar var. För detta får de lite betalt av den som beställt uppmärkningen. Förmedlingen av sådana här tjänster sker över nätet via tjänster som Amazon Mechanical Turk eller Google Crowdsource.

Ett problem med Crowd Sourcing är att det finns en avvägning mellan uppmärkningsuppgiftens svårighetsgrad och kvaliteten på de insamlade etiketterna. Och vissa uppgifter passar inte alls eftersom de kräver någon form av expertkunskap, så Crowd Sourcing är inte alltid en lösning.

Därför pågår det mycket utveckling av AI-metoder som inte är beroende av uppmärkt data. Ett intressant forskningsspår just nu är Reinforcement Learning där algoritmen lär sig genom att försöka med olika lösningar och bli “belönad” eller “bestraffad” efter hur bra lösningarna är. Det är en bra strategi om mängden lösningar är begränsad ─ inte liten nödvändigtvis, men iallafall överblickbar. Den fantastiska algoritmen Alpha Go Zero som slår världens bästa spelare i det kinesiska spelet Go (se Wikipediaartikel) bygger på denna metod. Ett annat spår som passar bättre när det finns vansinnigt många lösningar och där man inte direkt kan se vilken lösning som är bäst (som det ju ofta är i verkliga livet), är Self Supervised Learning, där kunskap om en aspekt av problemet används när algoritmen lär sig om en annan aspekt. Den grundläggande tanken är att man lär sig en representation av datan som fångar de viktiga variationerna i data, och så kan man via representationen utnyttja att det finns en massa likheter och paralleller mellan olika aspekter.

Trots detta är det ofta väldigt mycket effektivare om man har tillgång till uppmärkning. Så även i detta hänseende blir kontentan att för att utveckla ett framgångsrikt Deep Learning-system måste du vanligtvis samla in stora mängder “sann” uppmärkning av dina stora mängder data.

3. Beräkningskraft

Ett neuralt nätverk har väldigt många parametrar, ofta miljontals. Att träna nätverket med data innebär att visa träningsdata för nätverket och med hjälp av ganska imponerande matematik, skruva på alla nätverkets parametrar så att det passar till varje datapunkt. I vårt segmenteringsexempel innebär det att visa nätverket varje kombination av bild och “sann” segmentering och att sen skruva på nätverkets parametrar så att det kommer generera en liknande segmentering från samma bild.

Naturligtvis kostar sådan processorkraft pengar och det ger ett försprång till stora organisationer och företag som kan köpa mycket processorkraft, som Google och Facebook. Det ska dock sägas att det satsas ganska mycket på uppbyggnad av datorkraft inom EU och nationellt. I Sverige arbetar SNIC med att bygga upp stora datorkluster. Men det är svårt och dyrt att hålla jämna steg med de stora företagen vad gäller beräkningskapacitet.

Om man ser till klimataspekter kan det också svindla en smula. Ett typiskt datorkluster konsumerar mycket el, utsläppet av koldioxid i atmosfären när man tränar ett normalstort Deep Learning-system för bearbetning av naturligt tal är ungefär lika stort som det från fem bilar ─ under ett helt år (se denna artikel för detaljer).

Det pågår väldigt mycket arbete, med att utveckla bättre matematiska metoder så att man kan använda nätverk med ett minimalt antal parametrar, speciellt för mindre AI-system inbyggda i andra apparater som bilar, mobiltelefoner och smarta headset. Man utvecklar förstås även andra typer av AI-algoritmer som kräver mindre mängder data, som Random Forests eller olika typer av logikmodeller. Men tyvärr finns det inte så mycket genvägar, det går bara att komprimera maskininlärningsmodellerna till en viss gräns och många problem löses bättre av neurala nätverk än med alternativa metoder. Kontentan är även här: För att utveckla ett framgångsrikt Deep Learning-system så måste du ha tillgång till väldigt mycket datorkraft.

Men frånsett dessa kostnader, ger mer data bättre system? Finns det andra begränsningar?

Svaret på båda frågorna är ja. Mer data ger ett bättre system. I princip kan ju ett sådant AI-system som jag beskriver ovan bli så bra som man vill på en specifik uppgift, om det tränas med tillräckligt mycket data. Men det finns ett problem ─ systemet är i princip en svart låda (och sådana system kallas också black-box, se Wikipediaartikel), det vill säga, man har ingen aning om vad som händer på väg från indata till utdata. I vårt bildsegmenteringsexempel så är det inte möjligt att på något enkelt sätt gå in i modellen och förstå varför den väljer att segmentera en särskild bild på det sätt den gör. Detta behöver ju inte vara ett problem, till exempel om målet bara är att få trovärdiga segmenteringar av porträttbilder som en funktion i ett fotoredigeringsprogram. Men om uppgiften är att segmentera ut symptom på cancer i en magnetröntgenbild är det väldigt viktigt att det går att förstå på vilka grunder som segmenteringen gjorts.

Detta brukar kallas Interpretability eller Explainability (ungefär tolkningsbarhet eller transparens) och är ett för närvarande väldigt hett forskningsområde. För att AI-system ska kunna användas för beslutsfattande och beslutsstöd i områden där människors väl och ve beror på besluten som tas, till exempel medicinsk diagnostik eller autonoma bilar, så måste man kunna lita på systemet och “förstå hur det tänker”. Det är ju viktigt både för att människor ska kunna bedöma alla de olika delbesluten som systemet gjort och följa dess resonemang, men också för att systemet ska kunna lära sig av sina misstag och av återkoppling från människor om hur det kan bli bättre i framtiden.

Ett annat närliggande begrepp, som i princip i sin tur kräver att modellen är tolkningsbar, är Fairness (ungefär opartiskhet och rättvisa). I områden som jobbrekrytering eller beräkning av försäkringspremier är det ju väldigt viktigt att bara de faktorer som är kopplade till själva uppgiften ─ till exempel personens förmåga att göra ett jobb eller risken att personen i framtiden kommer behöva få ut pengar på sin försäkring ─ vägs in i bedömningen. Inte andra faktorer ─ till exempel personens kön, hudfärg eller klädsel. Ett ganska aktuellt exempel på när inte detta fungerat fullt ut är att Amazon förra året avslutade sitt försök med automatisk sållning i det första steget av sin rekrytering eftersom modellen särbehandlade kvinnor negativt (se denna artikel för detaljer). Anledningen var naturligtvis inte att modellens konstruktörer byggt in en sådan vinkling, utan att det helt enkelt fanns snedfördelningar i de data som modellen tränades med. En sådan snedfördelning kan ha varit att data inte kom från ett tvärsnitt av befolkningen, utan istället från ett snävt urval: Personer som tidigare sökt liknande tjänster. Då är det mycket troligt att detta snäva urval var olika för män och kvinnor. Modellen lärde sig de olikheterna blint från data och cementerade så att säga förutbestämda uppfattningar om manliga och kvinnliga sökande.

Men hur bygger man då ett tolkningsbart, opartiskt och rättvist AI-system? Ja, det är fortfarande en öppen fråga, men vägen dit kräver att modellen organiserar och strukturerar sin inre representation så att information som hör ihop lagras tillsammans och information som inte är korrelerad representeras separat, på olika platser i modellen. Det finns flera intressanta spår att följa här, till exempel metoder som kombinerar ideer från Deep Learning och Bayesiska nätverk (se Wikipediaartikel). En bra bieffekt är att sådana metoder använder träningsdata mer effektivt, de är helt enkelt mer ekonomiska med data. Så man slår alltså (minst) två flugor i samma smäll om man designar en metod med strukturerad representation ─ den kan bli både datasnål och tolkningsbar.

Det här är ett inlägg i bloggserien AI i framtidens hållbara städer som skärskådar löften om att artificiell intelligens (AI) ska göra framtidens hållbara smarta städer möjliga. I inläggen tittar vi särskilt på Sverige och den ambition många av våra städer har i linje med Viable Cities mission att vara klimatneutrala år 2030, som en del i uppfyllandet av FN:s 17 hållbarhetsmål i Agenda 2030. Serien pekar också på relevanta och lyckade satsningar på AI världen över och gör intervjuer med särskilt intressanta personer i sammanhanget.

Serien tar sikte på att analysera det gap som skribenterna tror finns mellan AI som idé och AI tillämpat i verkligheten. Idén diskuteras oftast (men inte alltid) av icke-experter som läst sig till vad AI kan göra genom att läsa populärbeskrivningar, medan tillämpningarna diskuteras av experter som är djupt försjunkna i snäva teknikutmaningar och mest läser specialistlitteratur. När de som bestämmer över vad som ska hända i en stad kring AI i framtiden tar fram och nyttjar beslutsunderlag kan detta gap skapa felaktiga förväntningar och i värsta fall leda till felaktiga beslut. Förhoppningen är att belysa och bidra till att förbättra den här situationen.

Bloggserien görs inom ramen för Viable Cities av AI-professorerna Hedvig Kjellström och Magnus Boman (båda KTH) och kommunikatören Marcus Törncrantz. Ta gärna kontakt med hedvig@kth.se, mab@kth.se, eller marcustorn@gmail.com. Tack för att du läser!

--

--