Federated Learning in Dynamic and Heterogeneous Environments

Sperimentazioni e ricerche multidisciplinari su algoritmi di Federated Learning, con particolare attenzione alle sfide di eterogeneità e contesti dinamici.

📌 Presentazione del Progetto

Il progetto "Federated Learning in Dynamic and Heterogeneous Environments" rappresenta un avanzamento significativo nella ricerca sul Federated Learning, sviluppato in collaborazione con l'Ospedale Pediatrico Bambino Gesù (IRCCS) e l'Università delle Camere di Commercio Italiane (Universitas Mercatorum).

L’iniziativa nasce all’interno del corso di dottorato in "Big Data e Intelligenza Artificiale", da me frequentato ed erogato dall'Università delle Camere di Commercio Italiane. L’Ospedale Pediatrico Bambino Gesù (IRCCS), presso il quale lavoro da 25 anni nella Funzione Sistemi Informativi, ha colto l’opportunità di fornirmi un incarico di ricerca presso l’Unità di Ricerca Medicina Preventiva e Predittiva.

FOCUS 1

Il progetto, si basa sulla mia attuale ricerca inerente il Federated Learning, progressivamente affinata durante i tre anni di dottorato, ed approfondisce la gestione dell'eterogeneità dei client partecipanti al processo di apprendimento, in un ambiente distribuito.

Tale eterogeneità riguarda:

  • Eterogeneità statistica: differenze nella distribuzione dei dati.
  • Eterogeneità del modello: differenze nelle architetture dei modelli.
  • Eterogeneità delle comunicazioni: differenze nelle topologie di rete.
  • Eterogeneità dei dispositivi: differenze nelle caratteristiche hardware e computazionali.

FOCUS 2

Lo studio affronta anche la gestione della dinamicità dei partecipanti, da cui la necessità di adattabilità del processo globale di apprendimento alle condizioni dinamiche del sistema distribuito.

La gestione delle dinamiche dei partecipanti riguarda:

  • disponibilità intermittente (dei partecipanti attivi)
  • volatilità nella composizione (dei partecipanti attivi)
  • distorsione nella rappresentatività (da parte dei client nei confronti dell'intera popolazione di riferimento)
    • dati
    • caratteristiche computazionali

Questi aspetti enfatizzano l’importanza di soluzioni adattive per garantire la robustezza del processo di apprendimento in un contesto distribuito in continua evoluzione.

ANNEX

La ricerca estende il suo ambito oltre lo studio di pool di partecipanti dinamici, sviluppandosi lungo tre aspetti fondamentali:

  • analisi delle dinamiche temporali (temporal dynamics)

con particolare attenzione all'impatto che la disponibilità variabile dei partecipanti esercita sulla convergenza e sulla stabilità del modello;

  • sviluppo di meccanismi di aggregazione adattivi

sufficientemente robusti per gestire pool di partecipanti in continua evoluzione;

  • implementazione di strategie di apprendimento continuo

specificamente progettate per gestire l'evoluzione del fenomeno delle distribuzioni dei dati nel tempo (distributional drift).

Questi aspetti sono strettamente interconnessi e richiedono un approccio integrato che tenga conto simultaneamente delle dimensioni temporali, computazionali e statistiche del processo di apprendimento federato.

🎯 Obiettivi del Progetto

Caratteristiche Principali

📂 Dataset

Dataset

L'utente può scegliere fra dataset di natura generica o clinica.

• Dataset Generici

Dataset standard utilizzati nella comunità scientifica per il benchmarking e la validazione di modelli di machine learning.

MNIST

Database di riferimento per il riconoscimento di cifre scritte a mano.

  • Dimensione: 70.000 immagini (60.000 training + 10.000 test)
  • Formato immagini: 28x28 pixel, scala di grigi
  • Classi: 10 (cifre da 0 a 9)
  • Formato dati: Numpy array
  • Dimensione file: ~11 MB compressi
  • Origine: Yann LeCun, Corinna Cortes, Christopher J.C. Burges
Fashion MNIST

Dataset di immagini di capi d'abbigliamento, strutturalmente simile a MNIST.

  • Dimensione: 70.000 immagini (60.000 training + 10.000 test)
  • Formato immagini: 28x28 pixel, scala di grigi
  • Classi: 10 (T-shirt, pantaloni, pullover, vestiti, ecc.)
  • Formato dati: Numpy array
  • Dimensione file: ~30 MB compressi
  • Origine: Zalando Research
CIFAR-10

Collezione di immagini a colori per classificazione di oggetti comuni.

  • Dimensione: 60.000 immagini (50.000 training + 10.000 test)
  • Formato immagini: 32x32 pixel, RGB
  • Classi: 10 (aereo, automobile, uccello, gatto, cervo, cane, rana, cavallo, nave, camion)
  • Formato dati: Numpy array
  • Dimensione file: ~170 MB compressi
  • Origine: Alex Krizhevsky, Vinod Nair, Geoffrey Hinton
CIFAR-100

Estensione del CIFAR-10 con categorie più granulari.

  • Dimensione: 60.000 immagini (50.000 training + 10.000 test)
  • Formato immagini: 32x32 pixel, RGB
  • Classi: 100 suddivise in 20 supercategorie
  • Formato dati: Numpy array
  • Dimensione file: ~180 MB compressi
  • Origine: Alex Krizhevsky, Vinod Nair, Geoffrey Hinton
SVHN

Dataset di numeri civici estratti da Google Street View.

  • Dimensione: >600.000 immagini (73.257 training + 26.032 test + 531.131 extra)
  • Formato immagini: 32x32 pixel, RGB
  • Classi: 10 (cifre da 0 a 9)
  • Formato dati: MATLAB/Numpy array
  • Dimensione file: ~2.5 GB (incluso dataset extra)
  • Origine: Yuval Netzer, Tao Wang, Adam Coates, Alessandro Bissacco, Bo Wu, Andrew Y. Ng

• Dataset Clinici

Dataset medici standardizzati utilizzati nella comunità scientifica per lo sviluppo e la validazione di modelli di machine learning in ambito diagnostico e clinico.

Chest X-ray

Dataset di radiografie toraciche per diagnosi di patologie polmonari.

  • Dimensione: >112.000 immagini di radiografie frontali
  • Formato immagini: DICOM/PNG, varie risoluzioni
  • Classi: (n.14) Multiple patologie (polmonite, COVID-19, tubercolosi, etc.)
  • Annotazioni: Diagnosi verificate da radiologi
  • Metadati: Età, sesso, storia clinica
  • Origine: NIH Clinical Center
ISIC

Archivio internazionale di immagini dermatoscopiche.

  • Dimensione: >150.000 immagini
  • Formato immagini: JPEG/PNG ad alta risoluzione
  • Classi: Melanoma, nevi benigni, carcinoma, etc.
  • Annotazioni: Diagnosi confermate istologicamente
  • Metadati: Localizzazione anatomica, dati demografici, storia clinica, diagnosi dettagliate
  • Origine: International Skin Imaging Collaboration
Brain Tumor MRI

Dataset di immagini di tumori cerebrali per la classificazione.

  • Dimensione: Circa 3.060 immagini
  • Formato immagini: JPEG/PNG, varie risoluzioni
  • Classi: (n.4) Glioma Tumor, Meningioma Tumor, Pituitary Tumor, No Tumor
  • Annotazioni: Immagini etichettate con il tipo di tumore, verificate da esperti medici
  • Metadati: Possibili identificatori del paziente
  • Origine: Dataset pubblici compilati da varie fonti
Brain Tumor MRI

Dataset di scansioni MRI cerebrali per segmentazione e classificazione di tumori.

  • Dimensione: Oltre 2.500 scansioni MRI
  • Formato immagini: Formato NIfTI (volumi MRI 3D), include modalità come T1, T1Gd, T2 e FLAIR
  • Classi: High-Grade Gliomas (HGG), Low-Grade Gliomas (LGG); etichette di segmentazione per sottoregioni tumorali
  • Annotazioni: Annotazioni manuali da esperti delle regioni tumorali
  • Metadati: Età del paziente, dati di sopravvivenza, informazioni cliniche
  • Origine: Brain Tumor Segmentation Challenge (BraTS) datasets
Diabetic Retinopathy

Dataset di immagini retiniche per il rilevamento e la classificazione della retinopatia diabetica.

  • Dimensione: Oltre 88.000 immagini
  • Formato immagini: Immagini JPEG ad alta risoluzione di fotografie del fundus retinico
  • Classi: (n.5) No DR, Mild, Moderate, Severe, Proliferative Diabetic Retinopathy
  • Annotazioni: Classificate da oftalmologi certificati
  • Metadati: Lato dell'occhio (sinistro/destro), possibili dati demografici del paziente
  • Origine: Dataset EyePACS, competizione Kaggle Diabetic Retinopathy Detection
Skin Cancer

Dataset di immagini dermatoscopiche per l'analisi delle lesioni cutanee.

  • Dimensione: 10.015 immagini
  • Formato immagini: JPEG ad alta risoluzione
  • Classi: (n.7) Nevi melanocitici, Melanoma, Carcinoma basocellulare, Lesioni tipo cheratosi benigna, Cheratosi attinica, Lesioni vascolari, Dermatofibroma
  • Annotazioni: Diagnosi confermate istologicamente
  • Metadati: Età, sesso, localizzazione anatomica, diagnosi clinica
  • Origine: Dataset HAM10000 ("Human Against Machine with 10000 Training Images")

⚙️ Parametri di Addestramento

Configurazione dei Parametri di Addestramento

Personalizzazione avanzata dei parametri di addestramento (configurabili da interfaccia web):

  • Numero di round e client partecipanti.
  • Impostazione di batch size, learning rate e quantizzazione.
  • Definizione della proporzione e dinamismo dei client.

Configurazione di Base

Personalizzazione dei parametri di addestramento (configurabili da interfaccia web):

1. Number of Rounds
  • Rappresenta il numero totale di cicli di training federato
  • Ogni round include: selezione client, training locale, aggregazione modelli
  • (num_rounds: int = 100)
  • Valore tipico: 50-200 round, dipende dalla complessità del task
2. Number of Clients
  • Rappresenta il numero totale di dispositivi/nodi partecipanti
  • Influenza la distribuzione dei dati e la velocità di convergenza
  • (clients: int = 10)
  • Valore tipico: 10-1000 client, basato sull'applicazione
3. Local Epochs
  • Rappresenta il numero di epoche di training su ogni client prima dell'aggregazione
  • Bilancia computazione locale vs comunicazione
  • (local_epochs: int = 5)
  • Valore tipico: 1-10 epoche
  • Parametro di Ottimizzazione
4. Batch Size
  • Rappresenta la dimensione dei batch per il training locale
  • Impatta memoria utilizzata e velocità di convergenza
  • (batch_size: int = 32)
  • Valore tipico: 16-128
5. Learning Rate
  • Rappresenta il tasso di apprendimento per l'ottimizzazione locale
  • Cruciale per la convergenza del modello
  • (learning_rate: float = 0.01)
  • Valore tipico: 0.001-0.1
6. Mu (FedProx)
  • Parametro di regolarizzazione per FedProx
  • Controlla quanto il modello locale può deviare dal modello globale
  • (mu: float = 0.01)
  • Valore tipico: 0.001-0.1
  • Parametro di Sistema
7. Quantization Bits
  • Bits usati per quantizzare i parametri del modello
  • Riduce overhead di comunicazione
  • (quant_bits: int = 8)
  • Valore tipico: 8-32 bits
8. Global Participation Rate
  • Rappresenta la frazione di client che partecipano in ogni round
  • Bilancia convergenza vs efficienza computazionale
  • (participation_rate: float = 0.8)
  • Valore tipico: 0.1-1.0 (10%-100% dei client)

Configurazione Avanzata

Personalizzazione avanzata dei parametri (configurabili da interfaccia web):

Client Heterogeneity Configuration

Tipologia Client: Strong

  • Computational Power: 0-1 (default=1)
  • Network Speed: 0-1 (default=1)
  • Proportion: 0-1 (default=0.3)

Tipologia Client: Medium

  • Computational Power: 0-1 (default=0.7)
  • Network Speed: 0-1 (default=0.7)
  • Proportion: 0-1 (default=0.5)

Tipologia Client: Weak

  • Computational Power: 0-1 (default=0.4)
  • Network Speed: 0-1 (default=0.5)
  • Proportion: 0-1 (default=0.2)

Client Dynamism Configuration

Tipologia Client: Fast

  • Participation Rate: 0-1 (default=0.9)
  • Proportion: 0-1 (default=0.3)

Tipologia Client: Normal

  • Participation Rate: 0-1 (default=0.7)
  • Proportion: 0-1 (default=0.5)

Tipologia Client: Slow

  • Participation Rate: 0-1 (default=0.5)
  • Proportion: 0-1 (default=0.2)

🔬 Algoritmi

Algoritmi FedLearning

Seleziona l’algoritmo di Federated Learning da applicare, con particolare attenzione all’eterogeneità e alla dinamicità dei client.

FedAvg

Algoritmo FedAVG - Spiegazione

FedAVG: Algoritmo di Media Ponderata Federata

L'algoritmo FedAVG rappresenta uno degli approcci basilari e più utilizzati nell'apprendimento federato. La sua semplicità ed efficienza lo hanno reso il punto di partenza per molte varianti più avanzate.

Formula Principale

L'aggiornamento globale dei pesi avviene attraverso la media ponderata degli aggiornamenti locali dei client:

w^{t+1} = \sum_{k=1}^K \frac{n_k}{n} w_k^t

dove:

  • w^{t+1}: pesi globali aggiornati al tempo t+1
  • K: numero totale di client partecipanti
  • n_k: numero di campioni di dati posseduti dal client k
  • n = \sum n_k: totale dei campioni sui client coinvolti
  • w_k^t: pesi locali del client k dopo l'aggiornamento locale al tempo t

Caratteristiche Salienti

  • Efficienza: semplice e veloce da implementare.
  • Adatto a setting con dati distribuiti in modo uniforme.
  • Meno efficace in contesti con forte eterogeneità dei dati tra i client.

Nota Comparativa

A differenza di FedProx, FedAVG non include alcun termine di regolarizzazione per gestire l'eterogeneità dei dati. Questo può portare a una convergenza più veloce in ambienti omogenei, ma potenzialmente instabile quando i dataset dei client differiscono significativamente.

Dataset Consigliati e Sconsigliati

Adatto per:

  • ✅ Dataset con distribuzione dei dati simile tra i client.
  • ✅ Problemi di classificazione di immagini generiche (ad esempio MNIST, CIFAR-10) quando ogni client ha dati simili.
  • ✅ Ambienti in cui la variabilità tra i client è ridotta.

Sconsigliato per:

  • ❌ Dataset altamente eterogenei, con classi squilibrate tra i client (ad esempio dati medici provenienti da ospedali con pazienti diversi).
  • ❌ Situazioni in cui i client hanno quantità di dati molto diverse o caratteristiche statistiche divergenti.

L'assenza di un termine di regolarizzazione rende FedAVG meno robusto nei contesti in cui i dati tra i client sono troppo diversi. In tali casi, algoritmi come FedProx risultano più efficaci.

Riferimenti

K. McMahan, E. Moore, D. Ramage, S. Hampson, B. A. Arcas.
"Communication-Efficient Learning of Deep Networks from Decentralized Data", 2017.

FedProx

Algoritmo FedProx - Spiegazione

FedProx: Algoritmo con Regolarizzazione per l'Eterogeneità dei Dati

L'algoritmo FedProx è stato progettato per affrontare le difficoltà causate dall'eterogeneità dei dati tra i client nell'apprendimento federato. Introduce un termine di regolarizzazione per stabilizzare il processo di aggiornamento dei pesi globali.

Formula Principale

La funzione obiettivo in FedProx aggiunge un termine di regolarizzazione:

\[ \min_{w} \sum_{k=1}^K \frac{n_k}{n} \left(F_k(w) + \frac{\mu}{2}\|w - w^k\|^2 \right) \]

dove:

  • w: pesi globali da ottimizzare
  • K: numero totale di client partecipanti
  • n_k: numero di campioni di dati posseduti dal client k
  • n = \sum n_k: totale dei campioni sui client coinvolti
  • w^k: pesi locali del client k dopo l'addestramento locale
  • \mu: parametro di regolarizzazione per controllare la vicinanza tra i pesi locali e globali

Caratteristiche Salienti

  • Più robusto rispetto a FedAVG in presenza di dati eterogenei.
  • Migliora la stabilità della convergenza.
  • Possibile rallentamento nella velocità di convergenza rispetto a FedAVG.

Nota Comparativa

A differenza di FedAVG, FedProx introduce un termine di penalità che limita l'eccessivo allontanamento dei pesi locali rispetto ai pesi globali. Questo consente un migliore adattamento a scenari con dati non IID (Indipendenti e Identicamente Distribuiti).

Dataset Consigliati e Sconsigliati

Adatto per:

  • ✅ Dataset eterogenei con differenze significative tra i client.
  • ✅ Applicazioni mediche, dove i dati dei pazienti variano notevolmente da un centro ospedaliero all'altro.
  • ✅ Dati raccolti da dispositivi diversi con caratteristiche tecniche differenti.

Sconsigliato per:

  • ❌ Dataset omogenei e bilanciati tra i client.
  • ❌ Scenari in cui è essenziale una convergenza molto rapida e stabile.

L'uso di FedProx in ambienti omogenei potrebbe introdurre un'inefficienza inutile, data la presenza del termine di regolarizzazione.

Riferimenti

T. Li, A. K. Sahu, A. Talwalkar, V. Smith.
"Federated Learning: Challenges, Methods, and Future Directions", 2020.

FedNova

Algoritmo FedNova - Spiegazione

FedNova: Normalized Averaging per la Riduzione del Bias

L'algoritmo FedNova è stato sviluppato per affrontare il problema del bias introdotto dall'esecuzione di un numero diverso di aggiornamenti locali tra i client. Introduce una media normalizzata degli aggiornamenti, riducendo il bias di aggiornamento e migliorando la stabilità della convergenza.

Formula Principale

FedNova utilizza una media normalizzata degli aggiornamenti locali:

\[ w^{t+1} = w^t + \eta \sum_{k=1}^K \frac{n_k}{n} g_k \]

dove:

  • w^{t+1}: pesi globali aggiornati al tempo t+1
  • w^t: pesi globali al tempo t
  • g_k: gradiente normalizzato del client k (corretto per il numero di step locali)
  • K: numero totale di client partecipanti
  • n_k: numero di campioni del client k
  • n = \sum n_k: totale dei campioni sui client coinvolti
  • \eta: tasso di apprendimento

Caratteristiche Salienti

  • Corregge il bias causato da diverse quantità di aggiornamenti locali.
  • Migliora la stabilità e l'equità della convergenza.
  • Richiede calcoli aggiuntivi per la normalizzazione dei gradienti.

Nota Comparativa

Rispetto a FedAVG e FedProx, FedNova è particolarmente utile quando i client hanno capacità computazionali diverse e completano un diverso numero di epoche locali.

Dataset Consigliati e Sconsigliati

Adatto per:

  • ✅ Scenari con client eterogenei in termini di potenza computazionale.
  • ✅ Situazioni in cui i client eseguono numeri variabili di aggiornamenti locali.

Sconsigliato per:

  • ❌ Dati perfettamente bilanciati e omogenei tra i client.
  • ❌ Situazioni dove la semplicità e velocità di convergenza sono prioritari.

Riferimenti

T. Wang, T. Tuor, S. Salonidis, K. K. Leung, C. Makaya, T. He, and K. Chan.
"Tackling the Objective Inconsistency Problem in Heterogeneous Federated Optimization", 2020.

SCAFFOLD

Algoritmo SCAFFOLD - Spiegazione

SCAFFOLD: Algoritmo di Correzione della Deriva per l'Eterogeneità

L'algoritmo SCAFFOLD è stato sviluppato per mitigare il problema della deriva del client (client drift), che si verifica frequentemente in ambienti con dati eterogenei. SCAFFOLD introduce delle variabili di controllo per correggere la differenza tra gli aggiornamenti locali e il gradiente globale atteso.

Formula Principale

SCAFFOLD utilizza variabili di controllo sia a livello globale che locale per stabilizzare gli aggiornamenti:

\[ w^{t+1} = w^t - \eta \left( \frac{1}{K} \sum_{k=1}^K g_k + c - c_k \right) \]

dove:

  • w^{t+1}: pesi globali aggiornati al tempo t+1
  • w^t: pesi globali al tempo t
  • g_k: gradiente calcolato dal client k
  • K: numero totale di client partecipanti
  • c: variabile di controllo globale
  • c_k: variabile di controllo del client k
  • \eta: tasso di apprendimento

Caratteristiche Salienti

  • Mitiga il problema della deriva dei client in presenza di dati eterogenei.
  • Migliora la stabilità e la velocità di convergenza rispetto a FedAVG in ambienti non IID.
  • Richiede il mantenimento e lo scambio di variabili di controllo aggiuntive tra server e client.

Nota Comparativa

Rispetto a FedAVG e FedProx, SCAFFOLD compensa direttamente la deriva introdotta dagli aggiornamenti locali nei client con dati non IID, risultando spesso più efficiente in questi contesti.

Dataset Consigliati e Sconsigliati

Adatto per:

  • ✅ Scenari con dati fortemente eterogenei tra i client.
  • ✅ Applicazioni distribuite in cui la deriva dei client rappresenta un problema significativo.

Sconsigliato per:

  • ❌ Dati perfettamente IID e bilanciati tra i client.
  • ❌ Ambienti dove la semplicità di implementazione è essenziale e il costo di mantenere variabili di controllo è proibitivo.

Riferimenti

S. Karimireddy, S. Kale, M. Mohri, S. Reddi, and A. Suresh.
"SCAFFOLD: Stochastic Controlled Averaging for Federated Learning", 2020.

Confronto Algoritmi

Confronto Algoritmi di Apprendimento Federato

Confronto Algoritmi di Apprendimento Federato

Algoritmo Pregi Difetti Caratteristiche Salienti Consigliato per Sconsigliato per Complessità Relativa
FedAVG Semplicità, Efficienza computazionale, Velocità di convergenza in scenari omogenei Instabile con dati non IID, Sensibile all'eterogeneità Media ponderata degli aggiornamenti locali Dataset distribuiti in modo uniforme tra i client, Ambienti omogenei Dataset eterogenei, Client con quantità di dati molto diverse ⭐️ (Bassa)
FedProx Migliore stabilità con dati eterogenei, Maggiore robustezza Convergenza più lenta rispetto a FedAVG, Parametro μ da calibrare Termine di regolarizzazione per limitare l'allontanamento dai pesi globali Dati non IID, Applicazioni mediche, Dati da dispositivi eterogenei Dataset omogenei, Necessità di rapidità di convergenza ⭐️⭐️ (Moderata)
FedNova Correzione del bias legato ai diversi passi locali, Maggiore equità tra client Richiede calcolo di gradienti normalizzati, Più complesso da implementare Media normalizzata degli aggiornamenti locali Client eterogenei in potenza computazionale, Numero variabile di aggiornamenti locali Dati omogenei e bilanciati, Necessità di semplicità e velocità ⭐️⭐️⭐️ (Alta)
SCAFFOLD Correzione della deriva dei client, Migliora stabilità su dati non IID Richiede variabili di controllo aggiuntive, Maggiore overhead di comunicazione Variabili di controllo globali e locali per ridurre il client drift Dati fortemente eterogenei, Deriva dei client rilevante Dataset IID, Ambienti con risorse limitate ⭐️⭐️⭐️⭐️ (Molto Alta)
Legenda complessità:
⭐️ = Bassa (semplice da implementare, pochi calcoli aggiuntivi)
⭐️⭐️ = Moderata (leggera aggiunta di calcoli e iperparametri)
⭐️⭐️⭐️ = Alta (normalizzazioni e gestione di gradienti richiedono attenzione)
⭐️⭐️⭐️⭐️ = Molto Alta (sincronizzazione di variabili di controllo e gestione complessa)

🌍 Gestione della Distribuzione dei Nodi

La gestione della distribuzione dei nodi si avvale di:

Global Node Distribution

Una mappa interattiva che mostra la posizione nel globo (geolocalizzazione) e la tipologia dei client coinvolti, permettendo di osservare l’eterogeneità geografica e infrastrutturale della rete.

Caratteristiche osservabili:


Node Configuration

Un configuratore dei nodi (con interfaccia web) che consente l'inserimento, la modifica e la rimozione dei nodi all'interno dell'infrastruttura di rete (osservabili sulla mappa).

Parametri configurabili:

📈 Monitoraggio dei Risultati

Un sistema di dashboard offre una serie di grafici realtime per l’analisi dettagliata:

🛠 Aspetti Tecnici

Il sistema sfrutta un’architettura tecnologica avanzata, combinando:

🚀 Conclusioni e Prossimi Passi

Il progetto si arricchisce costantemente di nuove funzionalità, tra cui:

Questa piattaforma rappresenta un passo in avanti per il Federated Learning, con un’attenzione specifica alle esigenze del settore clinico e della ricerca.