Apprendimento federato: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
 aggiornato il testo  | 
				 Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti  | 
				||
| (29 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1: 
L{{'}}'' 
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  
La principale differenza tra l'apprendimento federato e l'apprendimento distribuito risiede nelle ipotesi formulate sulle proprietà dei set di dati locali 
[[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à '''[citazione].''' 
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.<ref name=":0" />▼ 
▲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. 
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" />▼ 
▲[[ 
▲'''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 
== Caratteristiche principali == 
=== Apprendimento iterativo === 
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 
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  
# '''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  
# '''Selezione dei nodi''': una frazione dei nodi disponibili viene scelta 
# '''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 [[Discesa del gradiente|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  
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. === 
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:<ref name=":0" /> 
* '''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 prior'''i: 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,<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 == 
=== 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. 
In particolare, le reti distribuite senza coordinatore centrale rappresentano un'importante variante. In questo caso, non vi è alcun server centrale che invia le  
=== Parametri per l'apprendimento federato === 
Una volta scelta la topologia della rete dei nodi, è possibile controllare i diversi parametri del processo di apprendimento federato (in opposizione agli iperparametri del modello di apprendimento automatico) per ottimizzare l'apprendimento: 
* Numero di cicli per l'apprendimento federato: <math>T</math> 
* Numero totale di nodi utilizzati  
* Frazione di nodi utilizzati ad ogni iterazione per ciascun nodo: <math>C</math> 
* Dimensione del numero di esempi locali utilizzati ad ogni iterazione nel processo di apprendimento: <math>B</math> 
Si possono considerare, oltre a quelli già elencati, ulteriori parametri come: 
* Numero di iterazioni per l'apprendimento locale al nodo: <math>N</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]] 
== Metodi per l'apprendimento federato == 
In questa sezione, 
Per descrivere i diversi metodi di apprendimento federato, le seguenti notazioni sono introdotte: 
* <math>K</math> : numero totale di  
* <math>k</math> : indice dei  
* <math>n_k</math> : numero di esempi disponibili durante l'addestramento per il  
* <math>k_t</math> : vettore di peso del modello di apprendimento automatico al nodo <math>k</math>, all'iterazione <math>t</math> ; 
* <math>l(w, b)</math> : funzione di perdita considerata per i pesi <math>w</math> e batch <math>b</math> ; 
Riga 68 ⟶ 81: 
L'addestramento per l'[[apprendimento profondo]] si basa principalmente sulle varianti della [[discesa stocastica del gradiente]], in cui i gradienti vengono calcolati su un sottoinsieme casuale dei dati disponibili e successivamente utilizzati per eseguire un passaggio nell'algoritmo della discesa del gradiente. 
Il federated stochastic gradient descent 
=== Federated averaging === 
Il federated averaging (FedAvg) 
== 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 federato potrebbero non essere adatti nella loro forma generale. 
L'apprendimento federato introduce diverse limitazioni statistiche: 
* L'eterogeneità tra i diversi set di dati locali: ogni nodo può presentare delle deviazioni rispetto alla popolazione generale e la dimensione dei set di dati può variare in modo significativo; 
* L'eterogeneità temporale: la distribuzione dei dati memorizzati dai nodi può variare nel tempo; 
* L'[[interoperabilità]] del set di dati di ciascun nodo è un prerequisito; 
* 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 
== Proprietà dell'apprendimento federato == 
=== Privacy by design === 
Il vantaggio principale dell'utilizzo di approcci federati nell'apprendimento automatico consiste nel garantire la [[Privacy|riservatezza]] o la segretezza dei dati. Infatti, nessun dato locale viene caricato esternamente, concatenato o scambiato. Poiché l'intero database è segmentato in bit locali, questo rende più difficile manometterlo. 
Con l'apprendimento federato, vengono scambiati solo i parametri di apprendimento automatico. Inoltre, tali parametri possono essere criptati prima della condivisione tra i cicli di apprendimento per estendere la privacy e gli schemi di [[crittografia omomorfica]] possono essere utilizzati per effettuare direttamente calcoli sui dati crittografati senza decriptarli in anticipo. Nonostante queste misure protettive, i parametri possono comunque rendere visibile informazioni associate ai dati sottostanti, ad esempio effettuando più query specifiche su set di dati specifici. La capacità di interrogazione dei nodi è quindi un importante punto di attenzione, che può essere affrontato utilizzando la privacy differenziale o l'aggregazione sicura.<ref>{{Cita web|url=https://research.google/pubs/pub47246/|titolo=Practical Secure Aggregation for Privacy-Preserving Machine Learning|autore=Aaron Segal, Antonio Marcedone, Benjamin Kreuter, Daniel Ramage, H. Brendan McMahan, Karn Seth|sito=Google Research|data=2017|lingua=en|accesso=2020-06-25}}</ref> 
=== Personalizzazione === 
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>{{Cita pubblicazione|nome=A.|cognome=Anonymous|data=2013-03-01|titolo=Consumer Data Privacy in a Networked World: A Framework for Protecting Privacy and Promoting Innovation in the Global Digital Economy|rivista=Journal of Privacy and Confidentiality|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 name="konecny" /> 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 === 
Uno delle prime applicazioni considerate nel campo dell'apprendimento federato è stato il Google Gboard, implementato da [[Google]]<ref name=":2" /><ref>{{Cita web|url=http://ai.googleblog.com/2017/04/federated-learning-collaborative.html|titolo=Federated Learning: Collaborative Machine Learning without Centralized Training Data|sito=Google AI Blog|lingua=en|accesso=2020-06-25}}</ref> per l'utilizzo nelle tastiere predittive. Sotto una forte pressione normativa, è risultato impossibile caricare i messaggi di testo di tutti gli utenti per addestrare l'algoritmo predittivo per predire le parole. Inoltre, un tale processo esporrebbe troppi dati dell'utente ad attacchi di malintenzionati. Nonostante la memoria e la potenza di elaborazione a volte limitate degli smartphone, Google ha realizzato un caso d'uso convincente dalla sua G-board, come presentato durante l'evento [[Google I/O]] nel 2019.<ref>{{Cita web|url=https://www.youtube.com/watch?v=89BGjQYA0uE|titolo=Federated Learning: Machine Learning on Decentralized Data}}</ref> 
=== Apprendimento federato nell'assistenza sanitaria === 
Nella ricerca farmaceutica, i dati reali vengono utilizzati per la creazione di farmaci e bracci sintetici. La generazione di conoscenze su problemi biologici complessi richiede la raccolta di numerosi dati da diverse istituzioni mediche, desiderose di mantenere il controllo dei loro dati sensibili dei pazienti. L'apprendimento federato consente ai ricercatori di formare modelli predittivi su molti dati sensibili in modo trasparente senza necessariamente che essi siano condivisi.<ref>{{Cita pubblicazione|nome=Jie|cognome=Xu|nome2=Fei|cognome2=Wang|data=2019-11-12|titolo=Federated Learning for Healthcare Informatics|rivista=arXiv:1911.06270 [cs]|accesso=2020-06-25|url=http://arxiv.org/abs/1911.06270}}</ref> 
=== Sistemi di trasporto: veicoli a guida autonoma === 
Le auto a guida autonoma utilizzano molte tecnologie di apprendimento automatico per funzionare: la [[visione artificiale]] per analizzare gli ostacoli, l'apprendimento automatico per adattare il loro ritmo all'ambiente (ad esempio, all'irregolarità della strada). A causa del potenziale elevato numero di auto a guida autonoma e della necessità di rispondere rapidamente a situazioni critiche, l'approccio tradizionale centralizzato può generare rischi per la sicurezza. L'apprendimento federato può rappresentare una soluzione per limitare il volume di trasferimento dei dati e accelerare i processi di apprendimento.<ref>{{Cita pubblicazione|nome=Ahmet M.|cognome=Elbir|nome2=S.|cognome2=Coleri|data=2020-06-02|titolo=Federated Learning for Vehicular Networks|rivista=arXiv:2006.01412 [cs, eess, math]|accesso=2020-06-25|url=http://arxiv.org/abs/2006.01412}}</ref> 
=== Industria 4.0: sistemi di produzione intelligenti === 
Nell'[[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|p=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 == 
Con l'interesse crescente suscitato nella ricerca sull'apprendimento federato, molti strumenti software sono stati resi accessibili per l'implementazione di diverse configurazioni di apprendimento federato: 
* 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. 
==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]. 
== Collegamenti 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]] 
[[Categoria:Calcolo distribuito]] 
 | |||