Apprendimento federato: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m fix |
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 |
||
| (21 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à'''.'''<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" />
▲[[
== 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
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.
=== 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'
== Metodi per l'apprendimento federato ==
Riga 83 ⟶ 84:
=== 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
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>
== 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
== 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'[[
== 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
* 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}}
* {{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]]
| |||