• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
machine-learning, Privacy Preserving

Federated Averaging Optimizer | Federated Learning

Federated Averaging Optimizer | Federated Learning

Il Federated Averaging è il più popolare federated optimizer per risolvere problemi di federated learning.

Evidentemente è tutto chiaro e la definizione non necessita di ulteriori spiegazioni.

Direi quindi che possiamo concludere qui il post.

Ci sei ancora?

Benissimo!

Ora che abbiamo allontanato le persone pigre, ecco che siamo rimasti solo io e te: preparati per questa avventura alla scoperta del federated averaging!

A cosa serve il federated averaging ?

Per capire questa domanda, e dunque intuitivamente il ruolo giocato dall’algoritmo, ripassiamo sinteticamente alcuni concetti chiave.

Sappiamo che il federated learning consente l’allenamento di un modello su un dataset distribuito, eliminando i problemi legati alla presenza di dati sensibili in un unico centro.

In questo modo entriamo nell’affascinante mondo del privacy preserving machine learning (PPML), tutelando la privacy dei dati degli utenti coinvolti e garantendo al contempo il conseguimento dell’obiettivo: la creazione di un modello.

Devi sapere però una cosa fondamentale.

Questo nuovo approccio, che elimina il single point of failure rappresentato dall’esistenza di un centralized dataset (suscettibile ad attacchi mirati e pericolosi), presenta diverse difficoltà.

Una di queste è rappresentata dall’algoritmo di ottimizzazione scelto.

In un tipico sistema di machine learning, un algoritmo di ottimizzazione, quale può essere lo Stochastic Gradient Descent (SGD), sovente usato nelle sue varianti, opera su un grande dataset partizionato omogeneamente.

Questo algoritmo, come altri della sua categoria, è altamente iterativo e richiede bassa latenza nonché elevate larghezze di banda.

Non proprio le condizioni presenti in un sistema di federated learning, che al contrario si appoggia a una moltitudine di device (e.g. smartphone) dalle prestazioni ridotte e con limitazioni di connessione (i.e. larghezza di banda, costo, intermittenza del collegamento).

Le limitazioni di latenza e larghezza di banda hanno portato Google a sviluppare nel 2017 un nuovo approccio chiamato Federated Averaging e presentato in questo articolo accademico.

Come funziona l’algoritmo

Molto semplicemente, il federated averaging (FedAvg) combina il calcolo locale dello stochastic gradient descent (SGD), affidato dunque ai singoli client, con la determinazione del loro valore medio, gestito invece dal server centrale (performs model averaging).

Questo sistema si dimostra robusto persino alle distribuzioni sbilanciate (unbalanced distribution) e non-IDD (che vederemo prossimamente), riducendo il numero di comunicazioni necessarie al training di una rete neurale su dataset decentralizzati di diversi ordini di magnitudine.

Seguimi in questi ultimi passaggi.

Esaminiamo più tecnicamente il funzionamento del federated averaging algorithm.

Definiamo un server di coordinamento (coordinating server) per l’orchestrazione dei federated averaging rounds (cicli di media federati) tra i fornitori di dati partecipanti (data furnischers, e più in generale participating data controllers).

Gli step dell’algoritmo sono dunqe i seguenti:

  1. Il server di coordinamento, che definiamo coordinator, inizializza un modello.
  2. Il coordinator seleziona casualmente un sottoinsieme dei data-holders che definiamo runners, per iniziare un ciclo di allenamento.
  3. Il coordinator invia dunque il modello globale ai runners selezionati
  4. I runners ricevono il modello globale, e procedono a ottimizzarne i parametri localmente prima d’inviarlo nuovamente al coordinatore.
  5. Il coordinator esegue ora la media dei parametri di ogni modello ricevuto dai runners nel singolo ciclo di allenamento.
  6. Gli step da 2 a 5 sono ripetuti sino al conseguimento di un requisito (e.g. numero massimo di rounds raggiunto, convergenza del modello, early stopping etc.)

FedSGD vs FedAvg

Ti faccio inoltre notare che il metodo di cui sopra costituisce di fatto una generalizzazione di un approccio simile noto come Federated Stochastic Gradient Descent (FedSGD), delineato in questo articolo accademico.

Infatti, nel caso del FedSGD i gradienti del modello sono mediati a ogni singolo ciclo, aumentando la frequenza di comunicazione tra coordinators e runners richiesta per il conseguimento della convergenza.

Al contrario il FedAvg richiede un numero minimo di epoche prima del calcolo della media, con notevoli risparmi in termini computazionali.

In base al principio “small communication, large computation“ possiamo dire che il FedAvg è particolarmente CPU-bound (i.e. le prestazioni aumentano proporzionalmente alla velocità di calcolo), contrariamente al FedSGD di tipo IO-bound (con rendimento maggiore in presenza di connessione migliore per trasferimento dati).

In uno schema cross-device, l’idea è quindi sfruttare i relativamente potenti processori degli smartphone per calcolare updates di alta qualità, anziché limitarsi ai singoli step del gradiente,

La fase di training richiede dunque meno comunicazione, poiché sono necessarie iterazioni minori, grazie ad aggiornamenti di più alta qualità.

Questi guadagni, uniti ad algoritmi di compressione degli updates, per limitare il flusso di upload, consentono lo sviluppo di modelli di buona qualità.

non-IIDness

Un’ultima cosa prima di salutarti.

Prima abbiamo accennato al fatto che il FedAvg sia CPU-bound.

Questo vantaggio agevola lo scaling dell’algoritmo su dataset di grandi volumi, ma ha un difetto.

Il modello locale può potenzialmente divergere tra diversi rounds, finendo per andare in over-fitting sul dataset locale.

Si delinea quindi un compromesso tra il numero di training epochs locali e i federated averaging training rounds.

La chiave di volta è rappresentata dal Non-independently and identically distributed data, abbreviato in Non-IIDness.

Copriremo questo concetto nel prossimo post.

Federated Averaging con Tensorflow

Utilizzando il core layer Federated Core (FC) di Tensorflow abbiamo la possibilità di andare a realizzare sistemi di federated learning.

Possiamo inoltre sfruttare il FC Layer per implementare algoritmi federati custom, come il Fedearated Averaging.

Studieremo le applicazioni pratiche, a livello di codice, di questi concetti prossimamente.

Per il momento è tutto!

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Giugno 10, 2020
Tags | differential privacy, privacy preserving machine learning, teoria

You Might Also Like

transfer-fedearted-learning-vertical-horizontal-example-data-science-machine-learning

Horizontal vs Vertical vs Transfer Federated Learning

Ottobre 17, 2020
data-mining-crisp-dm-data-science-machine-learning-company-ibm-process-standard-open-defacto-blog-italia

CRISP-DM: Cross-industry standard process for data mining in Italiano

Aprile 18, 2020
test-chi-square-for-machine-learning-test-chi-quadrato-di-pearson-test-chi-quadro-pearson-data-science

Test chi quadrato di Pearson | Chi-Square Test for Machine Learning

Novembre 3, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • fully-homomorphic-encryption-crittografia-completamente-omomorfica Privacy Preserving

    Cos’è la Crittografia Omomorfica | Homomorphic Encryption (HE)

    Marzo 4, 2021
  • data-science-for-finance-machine-learning-deep-learning-data-science-use-cases-use-cases Business, Data Science, machine-learning

    Data Science for Finance | Use Cases per il Data Scientist

    Febbraio 13, 2021
  • differential-privacy-example-privacy-differenziale-esempio-italiano-applicazioni-reali Business, Data Science, Privacy Preserving

    Differential Privacy Example | Esempi di privacy differenziale

    Febbraio 10, 2021
  • privacy-enhancing-technologies-techniques-machine-learning-data-science-pets-guida-italiano-spiegazione-semplice Business, Data Science, machine-learning, Privacy Preserving

    Cosa sono le Privacy-enhancing technologies o techniques (PETs)

    Febbraio 7, 2021
  • condivisione-dati-finance-fintech-problems-machine-learning-for-finance-data-science-deep-learning-case-study Business

    Problemi della condivisione dati in finanza | Finance data sharing problems

    Febbraio 4, 2021
  • finance-privacy-settore-finanziario-dati-privacy-enhancing-technologies-ai Business

    Il legame tra Privacy Dati AI nel settore finanziario

    Febbraio 1, 2021
  • rust-react-webassembly-privacy-preserving-machine-learning Logs

    Rust, WebAssembly, React e un MVP

    Dicembre 21, 2020
  • diffie-hellman-key-exchange-protocol-scambio-di-chiavi-diffie-hellman Data Science, Privacy Preserving

    Cos’è lo scambio di chiavi Diffie-Hellman (DH)? | Privacy Preserving

    Dicembre 15, 2020
  • principio-di-esattezza-data-science-machine-learning-gdpr-data-accuracy Data Science, GDPR Compliant

    GDPR: Principio di esattezza dei dati (Data Accuracy)

    Dicembre 12, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TFX: come funziona Tensorflow Extended?

    Dicembre 9, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino