AI 101
Wat is Federated Learning?

Wat is Federated Learning?
De traditionele methode voor het trainen van AI-modellen houdt in dat servers worden ingericht waarop modellen worden getraind op data, vaak met behulp van een cloud-gebaseerd computingsysteem. Echter, in de afgelopen jaren is een alternatieve vorm van modelcreatie ontstaan, genaamd federated learning. Federated learning brengt machine learning-modellen naar de gegevensbron, in plaats van de gegevens naar het model te brengen. Federated learning verbindt meerdere computationele apparaten in een gedecentraliseerd systeem dat de individuele apparaten die gegevens verzamelen in staat stelt om bij te dragen aan het trainen van het model.
In een federated learning-systeem hebben de verschillende apparaten die deel uitmaken van het leer-netwerk elk een kopie van het model op het apparaat. De verschillende apparaten/clients trainen hun eigen kopie van het model met behulp van de lokale gegevens van de client, en vervolgens worden de parameters/gewichten van de individuele modellen naar een master-apparaat of server gestuurd, die de parameters agregereert en het globale model bijwerkt. Dit trainingsproces kan vervolgens worden herhaald totdat een gewenst niveau van nauwkeurigheid is bereikt. Kortom, het idee achter federated learning is dat geen van de trainingsgegevens ooit tussen apparaten of tussen partijen worden overgedragen, alleen de updates met betrekking tot het model.
Federated learning kan worden onderverdeeld in drie verschillende stappen of fasen. Federated learning begint meestal met een generisch model dat als basis dient en op een centrale server wordt getraind. In de eerste stap wordt dit generieke model naar de clients van de applicatie gestuurd. Deze lokale kopieën worden vervolgens getraind op gegevens gegenereerd door de client-systemen, waardoor ze leren en hun prestaties verbeteren.
In de tweede stap sturen de clients allemaal hun geleerde modelparameters naar de centrale server. Dit gebeurt periodiek, op een vastgestelde planning.
In de derde stap agregereert de server de geleerde parameters wanneer deze worden ontvangen. Nadat de parameters zijn geaggregeerd, wordt het centrale model bijgewerkt en opnieuw met de clients gedeeld. Het gehele proces wordt vervolgens herhaald.
Het voordeel van het hebben van een kopie van het model op de verschillende apparaten is dat netwerkvertragingen worden verminderd of geëlimineerd. De kosten die gemoeid zijn met het delen van gegevens met de server worden ook geëlimineerd. Andere voordelen van federated learning-methoden zijn dat federated learning-modellen privacy-bewaard zijn en dat modelreacties zijn gepersonaliseerd voor de gebruiker van het apparaat.
Voorbeelden van federated learning-modellen zijn aanbevelingsmotoren, fraude-detectiemodellen en medische modellen. Media-aanbevelingsmotoren, van het type dat door Netflix of Amazon wordt gebruikt, kunnen worden getraind op gegevens verzameld van duizenden gebruikers. De client-apparaten trainen hun eigen afzonderlijke modellen en het centrale model leert betere voorspellingen te maken, zelfs als de individuele gegevenspunten uniek zijn voor de verschillende gebruikers. Vergelijkbaar kunnen fraude-detectiemodellen die door banken worden gebruikt, worden getraind op activiteitspatronen van veel verschillende apparaten, en een handvol verschillende banken kunnen samenwerken om een gemeenschappelijk model te trainen. Wat betreft een medisch federated learning-model, kunnen meerdere ziekenhuizen samenwerken om een gemeenschappelijk model te trainen dat potentieel kankergezwellen kan herkennen via medische scans.
Typen van Federated Learning
Federated learning-schemas vallen meestal in een van twee verschillende klassen: multi-partij-systemen en single-partij-systemen. Single-partij federated learning-systemen worden “single-partij” genoemd omdat er slechts één entiteit verantwoordelijk is voor het toezicht op de gegevensstroom over alle client-apparaten in het leer-netwerk. De modellen die op de client-apparaten bestaan, worden getraind op gegevens met dezelfde structuur, hoewel de gegevenspunten meestal uniek zijn voor de verschillende gebruikers en apparaten.
In tegenstelling tot single-partij-systemen, worden multi-partij-systemen beheerd door twee of meer entiteiten. Deze entiteiten werken samen om een gedeeld model te trainen door gebruik te maken van de verschillende apparaten en datasets waarop ze toegang hebben. De parameters en gegevensstructuren zijn meestal vergelijkbaar over de apparaten van de verschillende entiteiten, maar ze hoeven niet exact hetzelfde te zijn. In plaats daarvan wordt voorverwerking gedaan om de invoer van het model te standaardiseren. Een neutrale entiteit kan worden ingezet om de gewichten die door de apparaten van de verschillende entiteiten zijn vastgesteld, te agregereert.
Frameworks voor Federated Learning
Populaire frameworks die voor federated learning worden gebruikt, zijn Tensorflow Federated, Federated AI Technology Enabler (FATE) en PySyft. PySyft is een open-source federated learning-bibliotheek gebaseerd op de deep learning-bibliotheek PyTorch. PySyft is bedoeld om private, beveiligde deep learning over servers en agents mogelijk te maken met behulp van versleutelde berekeningen. Ondertussen is Tensorflow Federated een andere open-source framework gebouwd op Google’s Tensorflow-platform. Naast het mogelijk maken voor gebruikers om hun eigen algoritmes te maken, stelt Tensorflow Federated gebruikers in staat om een aantal ingebouwde federated learning-algoritmes te simuleren op hun eigen modellen en gegevens. Ten slotte is FATE ook een open-source framework ontworpen door Webank AI, en het is bedoeld om de Federated AI-ecosysteem een beveiligd computingsysteem te bieden.
Uitdagingen van Federated Learning
Aangezien federated learning nog relatief nieuw is, moeten een aantal uitdagingen nog worden overwonnen om het zijn volledige potentieel te bereiken. De trainingsmogelijkheden van edge-apparaten, gegevenslabeling en -standaardisatie, en modelconvergentie zijn potentiële obstakels voor federated learning-benaderingen.
De computationele capaciteiten van de edge-apparaten, wat betreft lokale training, moeten worden overwogen bij het ontwerpen van federated learning-benaderingen. Terwijl de meeste smartphones, tablets en andere IoT-gecompatibele apparaten in staat zijn om machine learning-modellen te trainen, vermindert dit meestal de prestaties van het apparaat. Er moeten compromissen worden gesloten tussen modelnauwkeurigheid en apparaatprestaties.
Gegevenslabeling en -standaardisatie zijn een andere uitdaging die federated learning-systemen moeten overwinnen. Gesuperviseerde learning-modellen vereisen trainingsgegevens die duidelijk en consistent zijn gelabeld, wat moeilijk kan zijn om te doen over de vele client-apparaten die deel uitmaken van het systeem. Daarom is het belangrijk om modelgegevenspijplijnen te ontwikkelen die automatisch labels toepassen op een gestandaardiseerde manier op basis van gebeurtenissen en gebruikersacties.
Modelconvergentietijd is een andere uitdaging voor federated learning, aangezien federated learning-modellen meestal langer nodig hebben om te convergeren dan lokaal getrainde modellen. Het aantal apparaten dat betrokken is bij de training voegt een element van onvoorspelbaarheid toe aan de modeltraining, aangezien verbindingproblemen, onregelmatige updates en zelfs verschillende toepassingsgebruikstijden kunnen bijdragen aan een langere convergentietijd en een lagere betrouwbaarheid. Daarom zijn federated learning-oplossingen meestal het meest nuttig wanneer ze significante voordelen bieden ten opzichte van het centraal trainen van een model, zoals in gevallen waarin datasets extreem groot en gedistribueerd zijn.

Foto: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)












