Apprentissage efficace en communication des réseaux profonds à partir de données décentralisées

1. Résumé

Les appareils mobiles modernes ont accès à de grandes quantités de données adaptées aux modèles d'apprentissage, ce qui peut à son tour améliorer considérablement l'expérience utilisateur sur l'appareil. Par exemple, les modèles de langage peuvent améliorer la reconnaissance vocale et la saisie de texte, et les modèles d'image peuvent automatiquement sélectionner de bonnes photos.

Cependant, cette richesse de données est souvent sensible à la confidentialité, volumineuse ou les deux, ce qui peut empêcher les méthodes traditionnelles de se connecter au centre de données et de s'y former. Nous préconisons une approche alternative consistant à distribuer les données de formation sur les appareils mobiles et à apprendre un modèle partagé en agrégeant les mises à jour calculées localement, que nous appelons l'apprentissage fédéré.

Nous proposons une méthode pratique pour l'apprentissage fédéré des réseaux profonds basée sur la moyenne itérative de modèles, et menons des évaluations empiriques approfondies avec cinq structures de modèles différentes et quatre ensembles de données. Ces expériences montrent que la méthode est robuste aux distributions de données déséquilibrées et non IID, qui sont les caractéristiques déterminantes de ce paramètre. Le coût de communication est la principale contrainte, et nous montrons que les rondes de communication requises sont réduites d'un facteur de 10 à 100 par rapport à la descente de gradient stochastique synchrone.

2. Présentation

Les téléphones portables et les tablettes deviennent de plus en plus les principaux appareils informatiques pour de nombreuses personnes. Les puissants capteurs de ces appareils, notamment les caméras, les microphones et les GPS, et le fait qu'ils sont souvent emportés signifient qu'ils ont accès à des quantités sans précédent de données, dont la plupart sont de nature privée.

Cet article propose un mécanisme d'apprentissage fédéré où chaque client dispose d'un ensemble de données d'apprentissage local qui n'est jamais téléchargé sur le serveur. Au lieu de cela, chaque client calcule une mise à jour du modèle global actuel géré par le serveur, et les mises à jour du modèle global sont effectuées uniquement par le biais de la communication. Un avantage majeur de cette approche est qu'elle dissocie la formation du modèle de la nécessité d'un accès direct aux données de formation brutes.

Les principaux apports de cet article sont :

1) Identifier le problème de formation sur les données décentralisées à partir d'appareils mobiles comme une direction de recherche importante ;

2) Choisissez un algorithme simple et pratique qui peut être appliqué à ce paramètre ;

3) Une évaluation empirique approfondie de la méthode proposée est effectuée.

Un problème idéal pour l'apprentissage fédéré a les propriétés suivantes :

1) La formation sur des données réelles provenant d'appareils mobiles offre des avantages évidents par rapport à la formation sur des données proxy généralement disponibles dans les centres de données.

2) Ces données sont sensibles à la confidentialité ou de grande taille (par rapport à la taille du modèle), il est donc préférable de ne pas les enregistrer dans le centre de données et de les utiliser uniquement pour la formation du modèle (au service du principe de collecte ciblée).

3) Pour les tâches supervisées, les étiquettes sur les données peuvent être naturellement déduites des interactions des utilisateurs.

L'optimisation fédérée, l'optimisation fédérée, a plusieurs propriétés clés qui diffèrent des problèmes typiques d'optimisation distribuée :

1) Distribution identique et non indépendante des données : les données de formation sur un client donné sont généralement basées sur l'utilisation d'appareils mobiles par un utilisateur spécifique, de sorte qu'aucun ensemble de données local pour un utilisateur spécifique ne peut représenter la distribution de la population.

2) Déséquilibre : de même, certains utilisateurs utiliseront le service ou l'application plus fréquemment que d'autres, ce qui entraînera différentes quantités de données de formation locales.

3) Distribution à grande échelle : nous nous attendons à ce que le nombre de clients participant à l'optimisation soit bien supérieur au nombre moyen d'exemples par client.

4) Communication limitée : les appareils mobiles sont souvent hors ligne ou ont des connexions lentes ou coûteuses.

Dans ce travail, nous nous concentrons sur les propriétés optimisées non-IID et déséquilibrées, ainsi que sur les propriétés clés des contraintes de communication. Les systèmes d'optimisation fédérés déployés doivent également résoudre un grand nombre de problèmes pratiques : les ensembles de données client changent au fur et à mesure que les données sont ajoutées et supprimées ; la disponibilité du client est liée à la distribution locale des données dans les complexes qui s'inséreraient à un moment différent de celui des anglophones britanniques ); et les clients qui n'ont jamais répondu ou envoyé des mises à jour interrompues.

Nous supposons un schéma de mise à jour synchrone qui se produit sur plusieurs cycles de communication. Il existe un ensemble fixe de clients K, chacun avec un ensemble de données local fixe. Au début de chaque tour, un sous-ensemble C de clients est sélectionné au hasard, et le serveur envoie l'état actuel de l'algorithme global (par exemple, les paramètres du modèle actuel) à chacun de ces clients. Pour plus d'efficacité, nous n'avons sélectionné qu'un petit sous-ensemble de clients, car nos expériences ont montré que l'ajout de plus de clients au-delà d'un certain point a des rendements décroissants. Chaque client sélectionné effectue ensuite des calculs locaux basés sur l'état global et son ensemble de données local et envoie des mises à jour au serveur. Le serveur applique ensuite ces mises à jour à son état global et le processus se répète.

Lorsque nous nous concentrons sur des objectifs de réseaux de neurones non convexes, nous considérons des algorithmes pour tout objectif à somme finie de la forme :

image-20220613225736017

Pour les problèmes d'apprentissage automatique, nous prenons généralement fi ( w ) = ( xi , yi ; w ) f_i(w)=(x_i, y_i;w)Fje( w )=( xje,yje;w ) , c'est-à-dire la perte pour faire des prédictions sur un exemple (xi, yi) en utilisant les paramètres du modèle w. Nous supposons qu'il y a K clients partitionnant les données, oùP k P_kPkest l'ensemble d'indices de points de données sur le client K, nk = ∣ P k ∣ n_k=|P_k|nk=Pk

insérez la description de l'image ici

Si partition P k P_kPkest formé en distribuant uniformément au hasard les exemples d'entraînement sur les clients, alors nous obtiendrons EP k [ F k ( w ) ] = f ( w ) E_{Pk}[F_k(w)]=f(w)EP k[ Fk( w )]=f ( w ) où la valeur attendue est l'ensemble des exemples attribués à un client fixe k. Il s'agit de l'hypothèse IID généralement faite par les algorithmes d'optimisation distribués ; nous appelons cette situation le paramètre non-IID (c'est-à-dire,F k F_kFkpeut être une approximation erronée arbitraire de f).

Les calculs sont ajoutés de deux manières principales :

1) Un parallélisme accru, c'est-à-dire l'utilisation de clients travaillant de manière plus indépendante entre chaque cycle de communication ;

2) Calcul accru sur chaque client, où chaque client effectue des calculs plus complexes entre chaque cycle de communication au lieu de calculs simples comme des calculs de gradient.

Nous avons étudié les deux approches, mais l'accélération que nous avons obtenue était principalement due à l'ajout de plus de calculs sur chaque client, une fois que le niveau de parallélisme le plus bas du client a été utilisé.

3. Algorithme FedAvg

De nombreuses applications d'apprentissage en profondeur réussies reposent presque entièrement sur des variantes de descente de gradient stochastique (SGD) pour l'optimisation ; de nombreuses avancées peuvent être comprises comme facilitant l'optimisation de la structure des modèles (et donc des fonctions de perte) par de simples méthodes basées sur le gradient.

SGD peut être facilement appliqué aux problèmes d'optimisation fédérée où un lot de gradients est calculé par cycle de communication (par exemple sur des clients sélectionnés au hasard). Cette approche est efficace sur le plan informatique, mais nécessite une formation approfondie pour produire un bon modèle.

Dans un cadre fédéré, le coût du temps d'horloge impliquant plus de clients est faible, donc pour notre ligne de base, nous utilisons SGD synchrone à lots élevés ; pour appliquer cette approche dans un cadre fédéré, nous sélectionnons un ensemble de clients à chaque fin de tour, et calculer le gradient de perte pour toutes les données détenues par cet ensemble de clients. Par conséquent, C contrôle la taille globale du lot et C = 1 correspond à un lot complet de descente de gradient (non stochastique). Nous appelons cet algorithme de base FederatedSGD (ou FedSGD).

Une implémentation FedSGD typique, C=1, taux d'apprentissage fixe η ηη , chaque client k calculegk = ▽ F k ( wt ) g_k=▽ F_k(w_t)gk=Fk( wt) , le modèle actuelwt w_twtgradients moyens de ses données locales, le serveur central agrège ces gradients et applique les mises à jour, FedSGD ressemble à ceci :

image-20220613235338526

image-20220613235356550

La mise à jour équivalente FedAvg est illustrée ci-dessous, chaque client utilise ses données locales pour effectuer une étape de descente de gradient sur le modèle actuel, puis le serveur effectue une moyenne pondérée du modèle résultant. Nous appelons cette méthode FedAvg et elle ressemble à ceci :

image-20220613235521970

image-20220613235539939

La quantité de calcul est contrôlée par trois paramètres clés : C la fraction de clients effectuant le calcul à chaque tour ; E le nombre de passages d'apprentissage que chaque client effectue sur son ensemble de données local à chaque tour ; B la taille du petit lot local.

Nous écrivons B=∞ pour demander de traiter l'ensemble de données local complet comme un seul mini-lot. Par conséquent, à une extrémité de cette famille d'algorithmes, nous pouvons prendre B=∞ et E=1, ce qui correspond exactement à FedSGD. Le pseudo-code spécifique de l'algorithme est le suivant :

image-20220613232935755

En partageant l'initialisation, le modèle moyen peut réduire considérablement la perte sur l'ensemble d'apprentissage total (bien mieux que la perte de n'importe quel modèle parent), et les résultats de la comparaison expérimentale sont les suivants :

[Le transfert d'image du lien externe a échoué, le site source peut avoir un mécanisme de lien antivol, il est recommandé d'enregistrer l'image et de la télécharger directement (img-FgPjWrsR-1655136021250)(https://s2.loli.net/2022/ 13/06/z9KFt4b5lwu6yMC.png )]

4. Résultats expérimentaux

Nous étudions deux méthodes de partitionnement des données MNIST sur les clients : IID, dans lequel les données sont mélangées puis partitionnées en 100 clients, chacun recevant 600 exemples ; non-IID, dans lequel nous apparions d'abord Les données sont triées, divisées en 200 shards de taille 300, et chacun des 100 clients se voit attribuer 2 partitions.

Pour la modélisation du langage, nous avons construit un jeu de données basé sur les œuvres complètes de William Shakespeare. Nous construisons un ensemble de données client avec au moins deux lignes pour chaque rôle de locuteur dans chaque script. Cela a donné un ensemble de données avec 1146 clients.

À partir de ces données, nous formons un modèle de langage LSTM empilé au niveau des caractères qui, après avoir lu chaque caractère d'une ligne, prédit le caractère suivant. Le modèle prend en entrée une séquence de caractères et intègre chaque caractère dans un espace appris à 8 dimensions. Les caractères intégrés sont ensuite traités à travers 2 couches LSTM avec 256 nœuds chacune.

Enfin, la sortie de la deuxième couche LSTM est envoyée à une couche de sortie softmax avec un nœud par caractère. Le modèle entier a 866 578 paramètres, et nous nous entraînons avec une longueur déroulée de 80 caractères.

insérez la description de l'image ici

Améliorer le parallélisme. Nous expérimentons d'abord avec la partie client C, qui contrôle la quantité de parallélisme multi-client.

Augmentez le nombre de calculs par client. Nous fixons C = 0,1 et ajoutons plus de calculs pour chaque client à chaque tour, soit en réduisant B, en augmentant E, ou les deux.

Pouvons-nous sur-optimiser les ensembles de données client ? Les paramètres de modèle actuels n'affectent que les optimisations effectuées dans chaque ClientUpdate via l'initialisation. Ainsi, comme E→∞, au moins pour les problèmes convexes, les conditions initiales devraient éventuellement être indépendantes et le minimum global sera atteint quelle que soit l'initialisation. Bien qu'un cycle de calcul de la moyenne puisse produire un modèle raisonnable, des cycles supplémentaires de communication (et de calcul de la moyenne) n'apporteront aucune amélioration supplémentaire.

Expérience CIFAR. Nous menons également des expériences sur l'ensemble de données CIFAR-10 pour valider davantage FedAvg. Le jeu de données se compose de 10 classes d'images 32x32 avec trois canaux RVB. Il y a 50000 exemples de formation et 10000 exemples de test, nous le divisons en 100 clients, chaque client contient 500 exemples de formation et 100 exemples de test ;

SGD utilise une taille de mini-lot de 100. FedSGD et FedAvg utilisent C=0,1, et FedAvg utilise E=5 et B=50.

image-20220613234609314

5. Conclusions et travaux futurs

Nos expériences montrent que l'apprentissage fédéré est faisable car FedAvg utilise relativement peu de cycles de communication pour former des modèles de haute qualité, comme le montrent les résultats sur diverses architectures de modèles : perceptron multicouche, deux NN convolutionnels différents, LSTM de caractères à deux couches et grand- échelle LSTM au niveau du mot. Bien que l'apprentissage fédéré offre de nombreux avantages pratiques en matière de confidentialité, des garanties plus solides grâce à la confidentialité différentielle, au calcul multipartite sécurisé ou à une combinaison des deux constituent une direction intéressante pour les travaux futurs. Notez que ces deux classes de techniques s'appliquent le plus naturellement aux algorithmes de synchronisation comme FedAvg.

Autres dossiers d'études

Indépendant et identiquement distribué

Indépendant : Il n'y a pas de relation entre chaque échantillon et n'affectera pas l'autre. Par exemple, si vous lancez des dés avec désinvolture, le nombre que vous lancez à chaque fois est exactement ce qu'il est, et il est indépendant. Mais si je vous demande que la somme des nombres lancés deux fois soit supérieure ou égale à 9, le premier et le deuxième lancers ne sont pas indépendants, car ils sont liés l'un à l'autre.

Distribution identique : lorsque vous lancez les dés, la probabilité d'obtenir un nombre quelconque est de 1/6 à chaque fois que vous lancez les dés, ce qui correspond à une probabilité égale. En d'autres termes, dans l'espace des probabilités, quel que soit le nombre d'expériences d'échantillonnage que vous menez, elles obéissent toutes à la même distribution. Pour un autre exemple, maintenant un cercle de taille pi est placé dans un carré de taille 4, et vous y jetez une aiguille, le résultat est divisé en intérieur et extérieur du cercle. La probabilité de lancer dans ce cercle à chaque fois est pi/4, et vous répétez +∞ fois sera infiniment proche de ce pi/4.

descente de gradient stochastique

En utilisant 1 échantillon pour chaque mise à jour, vous pouvez voir qu'il y a deux mots supplémentaires aléatoires. Aléatoire signifie que nous utilisons un exemple dans l'échantillon pour approximer tous mes échantillons pour ajuster θ, donc la descente de gradient stochastique apportera un certain problème, car le calcul n'est pas un gradient précis. Pour les problèmes d'optimisation et les problèmes convexes , bien que la fonction de perte obtenue par chaque itération ne soit pas vers la direction optimale globale , mais que la direction globale soit vers la solution optimale globale, le résultat final est souvent proche de la solution optimale globale . Mais par rapport au gradient discontinu, cette méthode est plus rapide et converge plus rapidement.Bien que ce ne soit pas l'optimum global, il nous est acceptable dans de nombreux cas, donc cette méthode est plus utilisée que la méthode de descente de gradient.

Vidéo d'apprentissage de référence

est vers la solution optimale globale, mais la direction générale est vers la solution optimale globale, et le résultat final est souvent proche de la solution optimale globale . Mais par rapport au gradient discontinu, cette méthode est plus rapide et converge plus rapidement.Bien que ce ne soit pas l'optimum global, il nous est acceptable dans de nombreux cas, donc cette méthode est plus utilisée que la méthode de descente de gradient.

Vidéo d'apprentissage de référence

https://www.youtube.com/watch?v=STxtRucv_zo&t=6s

おすすめ

転載: blog.csdn.net/qq_45724216/article/details/125269860