Att bygga och programmera helt självkörande bilar är svårt. Tesla har en strategi där man rullar ut nya funktioner steg för steg. Några exempel:
- 2015 kom en uppdatering av mjukvaran som gjorde att det gick att parkera automatiskt
- 2016 kom en annan uppdatering (i betaversion) som gav möjlighet att köra autonomt på motorvägar (inklusive filbyten för att nå rätt avfart)
- 2018 kom automatisk acceleration som är medveten om hinder
- 2019 fick bilen förmågan att köra fram autonomt maximalt 30 meter från där den stod parkerad genom att man kallade på den genom appen
Hur kan bilen lära sig alla dessa nya saker? Svaret är att Tesla samlar in data från alla sensorer som finns monterade i deras kunders bilar. Dessa data, och andra data som de tar fram på testbanor och liknande, används för att bygga nya modeller eller artificiella intelligenser som klarar av specifika användningsfall.
Men i många lägen är det inte realistiskt att skicka tillbaka data till en central inlärningspunkt. Då kan federerat lärande (federated learning eller collaborative learning på engelska) vara det bästa valet.
Inga känsliga data behöver lämna enheten, bara ändringar i modellen
Federerat lärande handlar om maskininlärning som använder många enskilda enheter för att träna en modell. Modellen tränas med användarnas data, utan att det behöver lämna enheterna. I stället för att data skickas upp i molnet är det ändringar i den tränade modellen som skickas från användarnas enheter. Träningen är alltså decentraliserad.
På så vis kan man få tillgång till stora mängder data för att träna en modell, utan att användarna riskerar sina personliga data. Det kan handla om hälsoappar eller sökmotorförslag till mobilen, men det öppnar också möjligheter för exempelvis sjukhus att kunna utveckla diagnostikverktyg med hjälp av varandras data, utan att journaler behöver delas.
Vilken sorts tillämpningar passar federerat lärande bäst för?
Här är tre exempel på områden där federerat lärande ofta kan vara ett bra alternativ:
- Medicinska tillämpningar
- Finansiella tillämpningar
- Samhällskritiska system
Den här typen av träning av modeller passar i system som hanterar känslig information, exempelvis för medicinska eller finansiella data, där det finns ett strängt regelverk för hur personliga data får hanteras. Även i kritiska system, som hanterar samhällsviktiga data, är det en stor fördel att data i sig inte behöver lämna det ursprungliga systemet.
I sådana fall är det en bra lösning att låta ändringar i själva modellen skickas mellan enheter. Förutom säkerheten sparar det även en hel del bandbredd att inte behöva skicka stora datamängder över nätet varje gång modellen ska uppdateras. Data stannar i säkerhet i användarens eget system, medan modellen uppdateras. Modellen skickas sedan, i krypterad form, till andra system.
Maskininlärningsmodeller blir bättre ju mer data de har haft att tränas med, men i många fall är det svårt att få tillgång till de stora mängder användbara data som skulle göra en modell mer träffsäker. Ett exempel är inom vården. Att träna ett system på att analysera bilder för att exempelvis hitta cancertumörer genom datortomografi kräver mängder av sådana bilder. Av alla bilder som tas är det en minoritet som visar cancer. Det betyder att de flesta bilder som finns är dåliga exempel för en algoritm som ska lära sig hitta just tumörer. Modellen skulle bli bättre om det fanns fler exempelbilder att träna på.
Här vore det väldigt bra om sjukhusen sinsemellan kunde dela med sig av sina bilder för att hjälpa till att träna modellen, men i praktiken är det inte bara att dela bildfiler med varandra. Genom att i stället skicka bara modellen, uppdaterad med information från bilderna som finns kvar på respektive sjukhus, kan man i stället samarbeta på ett mer effektivt sätt. Mycket forskning sker inom detta område och vi ser en enorm potential för att uppnå många av fördelarna med datadelning och öppna data utan att data faktiskt måste delas.
Säkerheten kommer inte automatiskt
I en modell som tränas med federerat lärande skyddas inte data automatiskt. I vissa fall kan det vara möjligt att bakvägen analysera fram vilka data som ligger till grund för en viss modell. Men det finns ett antal metoder för att förhindra den typen av attacker. Metoder som i och för sig gör modellen något mindre träffsäker, men som garanterar att individuella data inte kan härledas.
Med rätt lösning för att garantera datasäkerheten kan man alltså dra nytta av data från ett stort antal enheter. En annan fördel är att kommunikationen går snabbare när det bara är modellen som skickas mellan enheter och inte alla data, från alla enheter.
Hur gör Tesla?
Vad vi kunnat läsa oss till verkar inte Tesla använda federerat lärande. Varför inte? Det finns ju risk att de samlar in och skickar tillbaka bilder för träning som kan innehålla t.ex. personer (som inte lämnat medgivande). Troligen handlar det om hur de bearbetar data innan inlärning kan ske. När de tvättar data och markerar ut vad som är vad i en bild sker det med hjälp av mänskliga experter. Det går inte att automatisera detta i bilen. Istället används AI för att ta bort personer eller annan data som kan vara känslig innan bilderna skickas tillbaka för träning.
Vår rekommendation
Det finns en stor hype kring federerat lärande just nu. Det märker vi inte minst i olika utlysningar som kommer ut och när vi pratar med våra kunder. Om federerat lärande är en bra eller dålig lösning beror i slutändan på det specifika problemet som ska lösas. Många olika faktorer påverkar om man bör göra som Tesla eller använda distribuerad inlärning.
Har ni ett problem och funderar på säkerheten kring data, kanske inom medicin, finans eller samhällskritiska system? Då diskuterar vi gärna våra erfarenheter både kring federerat lärande och andra lösningar för att garantera att inga data kommer på villovägar.