Apprendimento federato: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(22 versioni intermedie di 10 utenti non mostrate)
Riga 1:
L{{'}}''L'apprendimento federato''' (noto anche come '''apprendimento collaborativo''') è 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 [[Variabili indipendenti e identicamente distribuite|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 [[Rete neurale artificiale|reti neurali]] profonde, utilizzando i dati locali che sono distribuiti su più nodi senza la necessitanecessità dello scambio degli stessi. Il principio generale consiste nell'addestrare modelli locali utilizzando i dati disponibili localmente ai nodi e, attraverso lo scambio dei [[Parametro (programmazione)|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 locali <ref name=":1">[[arxiv:1511.03575|Federated Optimization: Distributed Optimization Beyond the Datacenter]], Jakub Konecny, H. Brendan McMahan, Daniel Ramage, 2015</ref> poiché l'apprendimento distribuito è nato con l'intento di [[Computer performance|parallelizzare la potenza di calcolo]] mentre l'approccio federato ha come intento l'addestramento dei modelli su [[Omogeneità ed eterogeneità|dati eterogenei]] . Anche se l'approccio distribuito ha come obbiettivoobiettivo 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 [[Ordine di grandezza|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|Wi-fi]]) o alla batteria (per esempio dispositivi [[Smartphone|smartphonessmartphone]]s o IoT) mentre i nodi considerati nell'addestramento distribuito sono principalmente [[Centro elaborazione dati|centri di elaborazione dati]] con una capacità computazionale molto elevata e possono utilizzare una connessione dedicata ad alta velocità'''.'''<ref name=":0">{{Cita pubblicazione|nome=Peter|cognome=Kairouz|nome2=H. Brendan|cognome2=McMahan|nome3=Brendan|cognome3=Avent|data=2019-12-10|titolo=Advances and Open Problems in Federated Learning|rivista=arXiv:1912.04977 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1912.04977}}</ref>
[[File:Federated_learning_process_central_case.png|link=https://it.wikipedia.org/wiki/File:Federated_learning_process_central_case.png|alt=Federated learning general process in central orchestrator setup|miniatura|Processo generale di apprendimento federato nella configurazione centralizzata]]
La principale differenza tra l'apprendimento federato e l'apprendimento distribuito risiede nelle ipotesi formulate sulle proprietà dei set di dati locali <ref name=":1">[[arxiv:1511.03575|Federated Optimization: Distributed Optimization Beyond the Datacenter]], Jakub Konecny, H. Brendan McMahan, Daniel Ramage, 2015</ref> poiché l'apprendimento distribuito è nato con l'intento di [[Computer performance|parallelizzare la potenza di calcolo]] mentre l'approccio federato ha come intento l'addestramento dei modelli su [[Omogeneità ed eterogeneità|dati eterogenei]] . Anche se l'approccio distribuito ha come obbiettivo 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|Wi-fi]]) o alla batteria (per esempio dispositivi [[Smartphone|smartphones]] o IoT) mentre i nodi considerati nell'addestramento distribuito sono principalmente [[Centro elaborazione dati|centri di elaborazione dati]] con una capacità computazionale molto elevata e possono utilizzare una connessione dedicata ad alta velocità'''.'''<ref name=":0">{{Cita pubblicazione|nome=Peter|cognome=Kairouz|nome2=H. Brendan|cognome2=McMahan|nome3=Brendan|cognome3=Avent|data=2019-12-10|titolo=Advances and Open Problems in Federated Learning|rivista=arXiv:1912.04977 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1912.04977}}</ref>
 
=== Apprendimento federato centralizzato ===
Riga 13 ⟶ 12:
=== 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.<ref name=":0" />
 
[[File:Federated_learning_process_central_case.png|link=https://it.wikipedia.org/wiki/File:Federated_learning_process_central_case.png|alt=Federated learning general process in central orchestrator setup|miniatura|upright=2|Processo generale di apprendimento federato nella configurazione centralizzata]]
 
== Caratteristiche principali ==
Riga 19 ⟶ 20:
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.<ref name=":0" />
 
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 gossip <ref>Decentralized Collaborative Learning of Personalized Models over Networks Paul Vanhaesebrouck, Aurélien Bellet, Marc Tommasi, 2017</ref> o di consenso.<ref>{{Cita pubblicazione|nome=Stefano|cognome=Savazzi|nome2=Monica|cognome2=Nicoli|nome3=Vittorio|cognome3=Rampa|data=2020-05|titolo=Federated Learning With Cooperating Devices: A Consensus Approach for Massive IoT Networks|rivista=IEEE Internet of Things Journal|volume=7|numero=5|pp=4641–46544641-4654|accesso=2020-06-25|doi=10.1109/JIOT.2020.2964162|url=https://ieeexplore.ieee.org/document/8950073/}}</ref>
 
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:<ref name=":2">{{Cita pubblicazione|nome=Keith|cognome=Bonawitz|nome2=Hubert|cognome2=Eichner|nome3=Wolfgang|cognome3=Grieskamp|data=2019-03-22|titolo=Towards Federated Learning at Scale: System Design|rivista=arXiv:1902.01046 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1902.01046}}</ref>
Riga 28 ⟶ 29:
# '''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<ref>{{Cita pubblicazione|nome=Otkrist|cognome=Gupta|nome2=Ramesh|cognome2=Raskar|data=2018-10-14|titolo=Distributed learning of deep neural network over multiple agents|rivista=arXiv:1810.06060 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1810.06060}}</ref><ref>{{Cita pubblicazione|nome=Praneeth|cognome=Vepakomma|nome2=Otkrist|cognome2=Gupta|nome3=Tristan|cognome3=Swedish|data=2018-12-03|titolo=Split learning for health: Distributed deep learning without sharing raw patient data|rivista=arXiv:1812.00564 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1812.00564}}</ref> 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.<ref name=":0" />
 
=== Dati non-i.i.d. ===
Riga 41 ⟶ 42:
* '''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,<ref>{{Cita pubblicazione|nome=Hubert|cognome=Eichner|nome2=Tomer|cognome2=Koren|nome3=H. Brendan|cognome3=McMahan|data=2019-04-22|titolo=Semi-Cyclic Stochastic Gradient Descent|rivista=arXiv:1904.10120 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1904.10120}}</ref> 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.<ref name=":0" />
 
== Iperparametri algoritmici ==
Riga 63 ⟶ 64:
* Tasso di apprendimento locale: <math>\eta</math>
 
Tali parametri devono essere ottimizzati in base ai vincoli dell'applicazione di apprendimento automatico (ad esempio, potenza di calcolo disponibile, memoria disponibile, [[Banda (informatica)|larghezza di banda]]). Ad esempio, scegliendo stocasticamente una frazione limitata <math>C</math> di nodi per ciascuna iterazione si possono ridurre i costi di elaborazione e si può impedire l'eccessivo adattamento del modello, allo stesso modo in cui la discesa del gradiente stocastica può ridurre l' [[Overfitting|adattamento eccessivo]].
 
== Metodi per l'apprendimento federato ==
Riga 83 ⟶ 84:
 
=== Federated averaging ===
Il federated averaging (FedAvg) <ref name="ReferenceA">Communication-Efficient Learning of Deep Networks from Decentralized Data, H. Brendan McMahan and al. 2017</ref> è una generalizzazione del FedSGD, che consente ai nodi locali di eseguire più di un aggiornamento sui dati locali e vengono scambiati i pesi aggiornati anziché i gradienti. La logica alla base di questa generalizzazione è che in FedSGD, se tutti i nodi locali iniziano dalla stessa inizializzazione, la media dei gradienti è strettamente equivalente alla media dei pesi stessi. Inoltre, la media dei pesi calibrati provenienti dalla stessa inizializzazione non danneggia necessariamente le prestazioni del modello medio risultante.
 
== Limitazioni tecniche ==
L'apprendimento federato richiede una comunicazione frequente tra i nodi durante il processo di apprendimento. Pertanto, richiede non solo sufficiente potenza di calcolo e memoria, ma anche connessioni ad alta larghezza di banda per poter scambiare i parametri del modello di apprendimento automatico. Tuttavia, la tecnologia evita anche la comunicazione dei dati, che può richiedere risorse significative prima di poter avviare l'apprendimento automatico nella versione centralizzata. Tuttavia, i dispositivi tipicamente impiegati nell'apprendimento federato possiedono una limitata capacità comunicativa, ad esempio i dispositivi IoT o gli smartphone sono generalmente collegati alle reti Wi-Fi, quindi, anche se i modelli sono generalmente meno costosi da trasmettere rispetto ai dati grezzi, i meccanismi di apprendimento federatifederato potrebbero non essere adatti nella loro forma generale.
 
L'apprendimento federato introduce diverse limitazioni statistiche:
Riga 95 ⟶ 96:
* Il set di dati di ciascun nodo può richiedere delle cure regolari;
* L'applicazione di meccanismi di oscuramento dei dati utilizzati per l'addestramento potrebbe consentire a degli utenti malevoli di iniettare [[backdoor]] nel modello globale;<ref>{{Cita pubblicazione|nome=Eugene|cognome=Bagdasaryan|nome2=Andreas|cognome2=Veit|nome3=Yiqing|cognome3=Hua|data=2019-08-06|titolo=How To Backdoor Federated Learning|rivista=arXiv:1807.00459 [cs]|accesso=2020-06-25|url=http://arxiv.org/abs/1807.00459}}</ref>
* La mancanza di accesso ai dati globali per l'addestramento rende più difficile identificare deviazioni indesiderate che possono influenzare la fase di apprendimento, per esempio età, genere, [[orientamento sessuale]];
* La perdita parziale o totale degli aggiornamenti del modello a causa di errori dei nodi possono incidere sul modello globale
 
Riga 108 ⟶ 109:
Il modello generato durante la fase di apprendimento fornisce una comprensione del modello globale appreso dai nodi. Tuttavia, se un nodo partecipante desidera apprendere da schemi globali ma anche adattare i risultati al suo stato peculiare, la metodologia di apprendimento federato può essere adattata per generare due modelli contemporaneamente in un framework di apprendimento multi-task. Inoltre, le tecniche di [[clustering]]<ref>{{Cita pubblicazione|nome=Felix|cognome=Sattler|nome2=Klaus-Robert|cognome2=Müller|nome3=Wojciech|cognome3=Samek|data=2019-10-04|titolo=Clustered Federated Learning: Model-Agnostic Distributed Multi-Task Optimization under Privacy Constraints|rivista=arXiv:1910.01991 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1910.01991}}</ref> possono essere applicate per aggregare nodi che condividono alcune somiglianze dopo il completamento del processo di apprendimento. Ciò consente la generalizzazione dei modelli appresi dai nodi secondo anche i loro dati locali.
 
Nel caso delle reti neurali profonde, è possibile condividere alcuni livelli tra i diversi nodi e mantenerne alcuni su ciascun nodo locale. In genere, i primi livelli che eseguono il [[Riconoscimento di pattern|riconoscimento]] generale del modello sono condivisi e addestrati utilizzando tutti i set di dati. Gli ultimi layer, invece, rimarranno su ciascun nodo locale e verranno addestrati solo sul set di dati del nodo locale.<ref>{{Cita pubblicazione|nome=Manoj Ghuhan|cognome=Arivazhagan|nome2=Vinay|cognome2=Aggarwal|nome3=Aaditya Kumar|cognome3=Singh|data=2019-12-02|titolo=Federated Learning with Personalization Layers|rivista=arXiv:1912.00818 [cs, stat]|accesso=2020-06-26|url=http://arxiv.org/abs/1912.00818}}</ref>
 
=== Aspetti legali dell'apprendimento federato ===
I quadri giuridici occidentali sottolineano sempre di più la protezione e la tracciabilità dei dati. Il rapporto della [[Casa Bianca]] del 2012<ref>Consumer{{Cita pubblicazione|nome=A.|cognome=Anonymous|data=2013-03-01|titolo=Consumer privacyData Privacy in a networkedNetworked worldWorld: A frameworkFramework for protectingProtecting privacyPrivacy and promotingPromoting innovationInnovation in the globalGlobal digital economy.Digital Economy|rivista=Journal of Privacy and Confidentiality, 2013|volume=4|numero=2|lingua=en|accesso=2020-06-26|doi=10.29012/jpc.v4i2.623|url=https://journalprivacyconfidentiality.org/index.php/jpc/article/view/623}}</ref> ha raccomandato l'applicazione di un principio di minimizzazione dei dati, che è menzionato nel [[Regolamento generale sulla protezione dei dati|GDPR]] europeo.<ref>Recital 39 of the Regulation (EU) 2016/679 (General Data Protection Regulation)</ref> In alcuni casi, è impossibile trasferire dati da un paese all'altro (ad es. dati genomici), tuttavia a volte i consorzi internazionali sono necessari per i progressi scientifici. In tali casi, l'apprendimento federato offre soluzioni per la formazione di un modello globale nel rispetto dei vincoli di sicurezza.
 
== Temi di ricerca attuali ==
L'apprendimento federato ha iniziato ad emergere come importante argomento di ricerca nel 2015<ref name=":1" /> e nel 2016,<ref name=":4">{{Cita pubblicazione|nome=Jakub|cognome=Konečný|nome2=H. Brendan|cognome2=McMahan|nome3=Daniel|cognome3=Ramage|data=2016-10-08|titolo=Federated Optimization: Distributed Machine Learning for On-Device Intelligence|rivista=arXiv:1610.02527 [cs]|accesso=2020-06-25|url=http://arxiv.org/abs/1610.02527}}</ref> con le prime pubblicazioni sul federated averaging nel campo delle telecomunicazioni. Un altro aspetto importante della ricerca è la riduzione della comunicazione durante il processo di apprendimento federato. Nel 2017 e nel 2018, le pubblicazioni hanno sottolineato lo sviluppo di strategie di allocazione delle risorse, in particolare per ridurre i requisiti<ref name="konecny">{{Cita pubblicazione|nome=Jakub|cognome=Konečný|nome2=H. Brendan|cognome2=McMahan|nome3=Felix X.|cognome3=Yu|data=2017-10-30|titolo=Federated Learning: Strategies for Improving Communication Efficiency|rivista=arXiv:1610.05492 [cs]|accesso=2020-06-25|url=http://arxiv.org/abs/1610.05492}}</ref> di comunicazione<ref name="ReferenceA" /> tra nodi con algoritmi di gossip<ref>{{Cita pubblicazione|nome=Michael|cognome=Blot|nome2=David|cognome2=Picard|nome3=Matthieu|cognome3=Cord|data=2016-11-29|titolo=Gossip training for deep learning|rivista=arXiv:1611.09726 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1611.09726}}</ref>, nonché sulla caratterizzazione della robustezza agli attacchi differenziali alla privacy.<ref>{{Cita pubblicazione|nome=Robin C.|cognome=Geyer|nome2=Tassilo|cognome2=Klein|nome3=Moin|cognome3=Nabi|data=2018-03-01|titolo=Differentially Private Federated Learning: A Client Level Perspective|rivista=arXiv:1712.07557 [cs, stat]|accesso=2020-06-25|url=http://arxiv.org/abs/1712.07557}}</ref> Altre attività di ricerca si concentrano sulla riduzione della larghezza di banda durante l'addestramento attraverso metodi<ref>{{Cita pubblicazione|nomename=Jakub|cognome=Konečný|nome2=H."konecny" Brendan|cognome2=McMahan|nome3=Felix X.|cognome3=Yu|data=2017-10-30|titolo=Federated Learning: Strategies for Improving Communication Efficiency|rivista=arXiv:1610.05492 [cs]|accesso=2020-06-25|url=http://arxiv.org/abs/1610.05492}}</ref> di sparsificazione e quantizzazione, in cui i modelli di apprendimento automatico sono sparsificati e/o compressi prima di essere condivisi con altri nodi. Inoltre, alcune tecniche di apprendimento federato stanno iniziando a considerare [[Canale (telecomunicazioni)|canali di propagazione]] reali<ref>{{Cita pubblicazione|nome=Mohammad Mohammadi|cognome=Amiri|nome2=Deniz|cognome2=Gunduz|data=2020-02-10|titolo=Federated Learning over Wireless Fading Channels|rivista=arXiv:1907.09769 [cs, math]|accesso=2020-06-25|url=http://arxiv.org/abs/1907.09769}}</ref> dato che in implementazioni precedenti venivano utilizzati canali ideali.
 
== Applicazioni ==
L'apprendimento federato viene applicato generalmente quando i singoli attori hanno bisogno di formare modelli su set di dati più grandi dei loro, ma non possono condividere i dati con altri (ad esempio, per motivi legali, strategici o economici). La tecnologia richiede tuttavia buone connessioni tra i server locali e una potenza computazionale minima per ciascun nodo.<ref name=":0" />
 
=== Google Gboard ===
Riga 129 ⟶ 130:
 
=== Industria 4.0: sistemi di produzione intelligenti ===
Nell'[[Industria 4.0|'industria 4.0]], è diffusa l'adozione di tecniche di apprendimento automatico<ref>{{Cita pubblicazione|nome=Raffaele|cognome=Cioffi|nome2=Marta|cognome2=Travaglioni|nome3=Giuseppina|cognome3=Piscitelli|data=2020/1|titolo=Artificial Intelligence and Machine Learning Applications in Smart Production: Progress, Trends, and Directions|rivista=Sustainability|volume=12|numero=2|ppp=492|lingua=en|accesso=2020-06-25|doi=10.3390/su12020492|url=https://www.mdpi.com/2071-1050/12/2/492}}</ref> per migliorare l'efficienza e l'efficacia dei processi industriali garantendo un elevato livello di sicurezza. Tuttavia, la riservatezza dei dati sensibili per le industrie e le aziende manifatturiere è di fondamentale importanza. Gli algoritmi di apprendimento federato possono essere applicati per queste applicazioni in quanto consentono di non rivelare alcun dato sensibile.<ref name=":4" />
 
== Strumenti software ==
Riga 135 ⟶ 136:
 
* Tensorflow Federated:<ref>{{Cita web|url=https://www.tensorflow.org/federated?hl=it|titolo=TensorFlow Federated|sito=TensorFlow|lingua=en|accesso=2020-06-25}}</ref> è uno strumento software [[open source]] che consente a qualsiasi utente di valutare modelli di apprendimento automatico su dati distribuiti. Fornisce diverse funzionalità [[Application programming interface|API]] per simulare architetture di apprendimento federato e per definire calcoli federati specifici (ad es. diverse varianti di apprendimento federato).
* PySyft:<ref>{{Cita pubblicazione|data=2020-06-25|titolo=OpenMined/PySyft|editore=OpenMined|accesso=2020-06-25|url=https://github.com/OpenMined/PySyft}}</ref> è una libreria Python che fornisce strumenti per simulare i meccanismi di tutela della privacy all'interno delle tecniche di apprendimento federato. Si basa sul noto pacchetto Pytorch e consente di includere negli algoritmi federati sistemi per la Privacy differenziale e altri meccanismi di sicurezza, ad esempio il secure multy-party computation e la crittografia omomorfica.
* Leaf:<ref>{{Cita web|url=https://leaf.cmu.edu/|titolo=LEAF|sito=leaf.cmu.edu|accesso=2020-06-25}}</ref> è un framework utilizzato per l'analisi comparativa dei modelli di apprendimento automatico all'interno degli algoritmi di apprendimento federato. Supporta molte tipologie di apprendimento automatico, ad esempio l'apprendimento multi-task, il meta-learning e l'apprendimento online.<br />
 
==Note==
<references />
* Khademi Nori Milad, Yun Sangseok, Kim Il-Min, Fast Federated Learning by Balancing Communication Trade-Offs (2021). [https://doi.org/10.1109/TCOMM.2021.3083316], [https://arxiv.org/abs/2105.11028].
 
== LinkCollegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|url=https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32016R0679|titolo=Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016}}
 
{{Portale|informatica}}
 
[[Categoria:Apprendimento automatico]]
== Link esterni ==
[[Categoria:Calcolo distribuito]]