Lapprendimento federato è una tecnica di apprendimento automatico che permette di addestrare un algoritmo attraverso l'utilizzo di dispositivi decentralizzati o server che mantengono i dati, senza la necessità di scambiare i dati stessi. Questo approccio si oppone alle tradizionali tecniche di apprendimento automatico centralizzate dove i dati vengono caricati su un server, o ai più tradizionali metodi decentralizzati che assumono che i dati locali sono distribuiti in modo identico.
L’apprendimento federato permette ai diversi partecipanti di costruire un modello per l’apprendimento automatico comune e robusto, senza lo scambio di qualsiasi dato. L'utilizzo di questa tecnica consente di affrontare problemi critici come la protezione, la sicurezza, e i diritti di accesso ai dati e l’impiego di dati eterogenei. Le principali applicazioni dell’apprendimento federato comprendono vari campi come la difesa, le telecomunicazioni, l’IoT e la farmaceutica.
Definizione L’apprendimento federato ha lo scopo di fornire metodi per addestrare un modello di apprendimento automatico, per esempio le reti neurali profonde, utilizzando i dati locali che sono distribuiti su più nodi senza la necessità dello scambio degli stessi. Il principio generale consiste nell'addestrare modelli locali utilizzando i dati disponibili localmente ai nodi e, attraverso lo scambio dei parametri (ad esempio i pesi di una rete neurale profonda) generare un modello globale. La principale differenza tra l'apprendimento federato e l'apprendimento distribuito risiede nelle ipotesi formulate sulle proprietà dei set di dati localiFederated Optimization: Distributed Optimization Beyond the Datacenter, Jakub Konecny, H. Brendan McMahan, Daniel Ramage, 2015 poiché l'apprendimento distribuito è nato con l'intento di parallelizzare la potenza di calcolo mentre l'approccio federato ha come intento l'addestramento dei modelli su dati eterogenei. Anche se l'approccio distribuito ha come obiettivo l'apprendimento di un singolo modello su server multipli, i dati memorizzati all'interno dei nodi locali vengono considerati identicamente distribuiti e hanno all'incirca le stesse dimensioni per tutti i nodi. Nessuna di queste ipotesi viene fatta per l’apprendimento federato. Infatti, i dati disponibili ai nodi sono generalmente eterogenei ed hanno dimensioni che possono variare anche di molti ordini di grandezza. Inoltre, i nodi coinvolti nell'apprendimento federato possono subire delle disconnessioni o dei guasti, dovute principalmente al mezzo di comunicazione utilizzato (per esempio il Wi-fi) o alla batteria (per esempio dispositivi smartphones o IoT) mentre i nodi considerati nell'addestramento distribuito sono principalmente centri di elaborazione dati con una capacità computazionale molto elevata e possono utilizzare una connessione dedicata ad alta velocità.
Apprendimento federato centralizzato Nei metodi di apprendimento federato centralizzato, un server centrale è incaricato di gestire i differenti passi per gli algoritmi utilizzati e di coordinare i nodi che partecipano al processo di apprendimento. Il server ha la responsabilità di scegliere i nodi all'inizio della procedura e ha il compito di aggregare i modelli ricevuti dai nodi durante la fase di apprendimento. Considerando che tutti i nodi partecipanti devono mandare i modelli ad una singola entità, il server potrebbe costituire una forma di rallentamento per il sistema.
Apprendimento federato decentralizzato Nei metodi di apprendimento federato decentralizzato, i nodi hanno la capacità di coordinarsi al fine di ottenere il modello globale. Queste tecniche permettono di ovviare al problema degli approcci centralizzati dato che i nodi sono in grado di scambiarsi gli aggiornamenti dei modelli senza il coordinamento di un server centrale. Ciononostante, la specifica configurazione della topologia di rete può influenzare le prestazioni del processo di apprendimento.
Caratteristiche principali Apprendimento iterativo Per garantire una buona esecuzione delle attività al fine di ottenere un modello globale condiviso da tutti i nodi, l’apprendimento federato si basa su un processo iterativo suddiviso in un insieme atomico di interazioni client-server noto come federated round. All'interno di ogni ciclo di questo processo, l’attuale stato del modello viene trasmesso ai nodi partecipanti, i nodi aggiornano il modello utilizzando i dati locali a disposizione e producono una serie di potenziali aggiornamenti del modello. Infine, il modello globale viene aggiornato aggregando gli aggiornamenti pervenuti dai nodi.
Nella metodologia seguente, si assume che il processo di apprendimento consideri l’interazione di un server centrale che fornisce i comandi ai nodi sulle operazioni da effettuare. Tuttavia, l’impiego di metodologie che non richiedono l’utilizzo di un’entità centrale, come per esempio gli approcci peer-to-peer, forniscono gli stessi risultati attraverso l'utilizzo di metodologie gossipDecentralized Collaborative Learning of Personalized Models over Networks Paul Vanhaesebrouck, Aurélien Bellet, Marc Tommasi, 2017 o di consenso.
Assumendo che un federated round sia composto da una iterazione del processo di apprendimento, la procedura per l’addestramento federato può essere descritta come segue:
Inizializzazione: in base agli input forniti dal server, un modello di apprendimento automatico, per esempio una regressione lineare, una rete neurale o un boosting, viene scelto per essere appreso ai nodi locali e viene inizializzato. Una volta completata la scelta del modello e l’inizializzazione dello stesso, i nodi vengono attivati e rimangono in attesa dei per ulteriori istruzioni dal server. Selezione dei nodi: una frazione dei nodi disponibili viene scelta per iniziare la fase di apprendimento sui dati locali. I nodi scelti acquisiscono il modello corrente dal server mentre gli altri aspettano il prossimo round. Configurazione: Il server comunica ai nodi selezionati di iniziare l’apprendimento utilizzando i propri dati locali con una modalità predefinita (per esempio utilizzando delle mini-batch per il calcolo del gradiente). Comunicazione: I nodi selezionati inviano al server i loro modelli per l’aggregazione. Il server aggrega i modelli ricevuti in base all'algoritmo selezionato all'inizio e restituisce il risultato dell’aggregazione ai nodi. Inoltre, il server gestisce eventuali errori o nodi disconnessi. A questo punto il prossimo round viene fatto iniziare e il processo riparte dalla fase della selezione dei nodi. Terminazione: quando il criterio di terminazione viene raggiunto, per esempio quando il numero massimo di iterazioni viene raggiunto o l’accuratezza del modello è maggiore di una certa soglia, il server aggrega gli ultimi aggiornamenti forniti dai nodi e costruisce il modello globale. La procedura considerata precedentemente assume che i modelli vengano aggiornati in modo sincrono. Sviluppi recenti nell'apprendimento federato hanno iniziato ad introdurre meccanismi per l’aggiornamento asincrono. Rispetto agli approcci sincroni, in cui i modelli locali vengono scambiati una volta che i calcoli sono stati eseguiti su tutti i layer della rete neurale, quelli asincroni sfruttano le proprietà delle reti neurali per inviare gli aggiornamenti non appena i calcoli su un certo layer vengono completati. Queste tecniche vengono comunemente chiamate split learning e possono essere applicate sia durante la fase di apprendimento che quella di inferenza indipendentemente se si è considerato un approccio centralizzato o decentralizzato per l'apprendimento federato.
Dati non-i.i.d. Nella maggior parte dei casi, l'assunzione di avere dati indipendenti e identicamente distribuiti accessibili ai nodi locali non vale per le configurazioni di apprendimento federato. In queste occasioni, le prestazioni del processo di addestramento possono variare in modo significativo in base allo squilibrio dei dati locali, nonché alla particolare distribuzione di probabilità degli esempi di addestramento (cioè alle caratteristiche ed alle etichette) memorizzati nei nodi locali. Per approfondire gli effetti dei dati distribuiti in modo non i.i.d., la seguente descrizione considera le principali categorie presentate nell'articolo Advances and Open Problems in Federated Learning, Peter Kairouz and al. 2019.
La descrizione di questi particolari tipi di dati si basa sull'analisi della probabilità congiunta tra le caratteristiche e le etichette disponibili a ciascun nodo locale. Ciò consente di disaccoppiare ciascun contributo in base alla specifica distribuzione disponibile ai nodi locali. Le principali categorie possono essere riassunte come segue:
Spostamento covariato: i nodi locali possono memorizzare dati che hanno distribuzioni statistiche diverse rispetto ad altri nodi. Questa condizione si verifica, ad esempio, nei set di dati per l'elaborazione del linguaggio naturale dove persone differenti possono scrivere la stessa lettera con larghezze e/o inclinazioni diverse. Spostamento della probabilità a priori: i nodi locali possono memorizzare etichette che hanno distribuzioni statistiche diverse rispetto ad altri nodi. Ciò può accadere se i set di dati sono regionali e/o partizionati demograficamente. Ad esempio, i set di dati contenenti immagini di animali variano in modo significativo da Paese a Paese. Spostamento del concetto (stesse etichette ma differenti caratteristiche): i nodi locali possono condividere le stesse etichette ma alcune di esse corrispondono a caratteristiche differenti per nodi diversi. Ad esempio, le immagini che raffigurano un particolare oggetto possono variare in base alle condizioni meteorologiche in cui sono state catturate. Spostamento del concetto (stesse caratteristiche ma differenti etichette): i nodi locali possono condividere le stesse caratteristiche ma alcuni di esse corrispondono a etichette differenti per nodi diversi. Ad esempio, nell'elaborazione del linguaggio naturale, l'analisi dei sentimenti può produrre sentimenti diversi anche se è stato osservato lo stesso testo. Sbilanciamento: le dimensioni dei dati memorizzati ai nodi può variare significativamente.
Altri descrittori di dati non i.i.d. tengono conto della variazione dinamica della topologia di rete, a causa di guasti o ineleggibilità dei nodi locali durante il processo di apprendimento federato, o spostamenti dei set di dati, in cui i nodi che partecipano alla fase di addestramento per l'apprendimento del modello globale potrebbero non essere idonei durante l'inferenza a causa di capacità computazionali insufficienti. Ciò si traduce in una differenza tra le statistiche dei dati di addestramento e di inferenza.
Iperparametri algoritmici Topologia di rete Il modo in cui gli output statistici locali sono raggruppati e il modo in cui i nodi comunicano tra di loro possono cambiare rispetto al modello centralizzato spiegato nella sezione precedente. Ciò porta a una varietà di approcci di apprendimento federati: ad esempio il caso in cui il server centrale non è presente o quello della comunicazione stocastica.Collaborative Deep Learning in Fixed Topology Networks, Zhanhong Jiang, Aditya Balu, Chinmay Hegde, Soumik Sarkar, 2017
In particolare, le reti distribuite senza coordinatore centrale rappresentano un'importante variante. In questo caso, non vi è alcun server centrale che invia le richieste ai nodi locali e che aggrega i modelli ricevuti dai nodi. Ogni nodo invia il proprio modello a diversi nodi selezionati casualmente,GossipGraD: Scalable Deep Learning using Gossip Communication based Asynchronous Gradient Descent, Jeff Daily, Abhinav Vishnu, Charles Siegel, Thomas Warfel, Vinay Amatya, 2018 i quali aggregano i risultati localmente. Questo limita il numero di transazioni, riducendo a volte i tempi di apprendimento e i costi di elaborazione.
Parametri per l'apprendimento federato