Conférence de rédaction | Implémentation d'un apprentissage de prototypes fédéré généralisé dans le cadre d'un apprentissage comparatif de prototypes multidomaines basé sur MindSpore

Auteur : Li Ruifeng

Titre de l'article

Repenser l'apprentissage fédéré avec le changement de domaine : une vue prototype

Source de papier

CVPR 2023

Lien papier

https://openaccess.thecvf.com/content/CVPR2023/papers/Huang_Rethinking_Federated_Learning_With_Domain_Shift_A_Prototype_View_CVPR_2023_paper.pdf

lien de code

https://github.com/yuhangchen0/FPL_MS

En tant que framework d'IA open source, MindSpore apporte une collaboration industrie-université-recherche et développeurs dans des scénarios complets de collaboration périphérique-cloud, un développement minimaliste, des performances ultimes, une pré-formation en IA à très grande échelle, un développement minimaliste et un environnement sûr et digne de confiance. expérience, 2020.3.28 L'Open source compte plus de 5 millions de téléchargements. MindSpore a pris en charge des centaines d'articles de conférences de premier plan sur l'IA, a été enseigné dans plus de 100 universités et est disponible dans le commerce sur plus de 5 000 applications via HMS. et est dans le domaine du centre informatique de l'IA, de la finance, de la fabrication intelligente, de la finance, du cloud, du sans fil, des communications de données, de l'énergie, des consommateurs 1+8+N, des voitures intelligentes et d'autres scénarios de voiture cloud de pointe. est le logiciel open source avec l'indice Gitee le plus élevé. Tout le monde est invité à participer aux contributions open source, aux kits, à l'intelligence collective modèle, à l'innovation et aux applications industrielles, à l'innovation algorithmique, à la coopération universitaire, à la coopération en matière de livres d'IA, etc., et à contribuer à vos cas d'application du côté cloud, côté appareil, côté périphérie et domaines de sécurité.

Grâce au soutien massif de SunSilicon MindSpore de la part de la communauté scientifique et technologique, du monde universitaire et de l'industrie, les articles sur l'IA basés sur SunSilicon MindSpore représentaient 7 % de tous les frameworks d'IA en 2023, se classant au deuxième rang mondial pendant deux années consécutives. toutes les universités Avec le soutien des enseignants, nous continuerons à travailler dur ensemble pour faire de la recherche et de l'innovation en IA. La communauté MindSpore soutient les meilleures recherches sur les articles de conférence et continue de produire des résultats originaux en matière d'IA. Je sélectionnerai occasionnellement d'excellents articles à promouvoir et à interpréter. J'espère que davantage d'experts de l'industrie, du monde universitaire et de la recherche coopéreront avec Shengsi MindSpore pour promouvoir la recherche originale sur l'IA. La communauté Shengsi MindSpore continuera à soutenir l'innovation et les applications de l'IA. vient de Shengsi. Pour le 18e article de la série d'articles du sommet MindSpore AI, j'ai choisi d' interpréter un article de l'équipe du professeur Ye Mang de l'École d'informatique de l'Université de Wuhan . Je tiens à remercier tous les experts, professeurs et camarades de classe. pour leurs contributions.

MindSpore vise à atteindre trois objectifs majeurs : un développement facile, une exécution efficace et une couverture complète des scénarios. Grâce à l'expérience d'utilisation, MindSpore, un framework d'apprentissage en profondeur, se développe rapidement et la conception de ses différentes API est constamment optimisée dans une direction plus raisonnable, plus complète et plus puissante. En outre, divers outils de développement qui émergent constamment de Shengsi aident également cet écosystème à créer des méthodes de développement plus pratiques et plus puissantes, telles que MindSpore Insight, qui peut présenter l'architecture du modèle sous la forme d'un diagramme et peut également surveiller dynamiquement divers aspects. du modèle pendant l'exécution. Les modifications des indicateurs et des paramètres rendent le processus de développement plus pratique.

01

Fond de recherche

Dans le monde numérique, la confidentialité et la sécurité des données sont devenues des questions centrales et de plus en plus préoccupantes. C’est dans ce contexte que l’apprentissage fédéré est apparu comme une méthode d’apprentissage automatique distribuée qui protège la confidentialité des données. Son idée principale est de permettre à plusieurs appareils ou serveurs d’entraîner conjointement un modèle sans partager les données originales. Cette approche peut gérer des tâches d'apprentissage automatique sur plusieurs appareils mobiles, en particulier lorsque les exigences en matière de confidentialité et de sécurité des données sont élevées.

Il existe un problème important à résoudre dans l’apprentissage fédéré : l’hétérogénéité des données. Cela fait généralement référence au fait que les données détenues par chaque nœud (tel qu'un appareil, un serveur ou une organisation) impliqué dans l'apprentissage peuvent varier considérablement. Ces différences peuvent concerner des aspects tels que la distribution, la qualité, la quantité et le type de caractéristiques des données. La question de l’hétérogénéité des données est particulièrement importante dans l’apprentissage fédéré car elle peut affecter directement l’effet d’apprentissage et la capacité de généralisation du modèle.

Cet article souligne que pour l'hétérogénéité des données, les solutions existantes se concentrent principalement sur toutes les données privées du même domaine. Lorsque les données distribuées proviennent de différents domaines, les modèles privés ont tendance à présenter des performances dégradées dans d'autres domaines (avec des décalages de domaine), et les signaux globaux ne peuvent pas capturer des informations de domaine riches et équitables. Par conséquent, les auteurs s’attendent à ce que le modèle global optimisé puisse fournir de manière stable des performances de généralisation sur plusieurs domaines au cours du processus d’apprentissage fédéré.

Dans cet article, les auteurs proposent « l'apprentissage fédéré par prototype » (FPL) pour l'apprentissage fédéré sous changement de domaine. L'idée principale est de créer des prototypes groupés et des prototypes impartiaux qui fournissent une riche connaissance du domaine et des objectifs de convergence équitables. D'une part, les exemples d'intégrations sont éloignés des prototypes de cluster de différentes catégories et plus proches des prototypes de cluster de même sémantique. D'autre part, une régularisation de cohérence est introduite pour aligner les instances locales avec les prototypes impartiaux correspondants.

Le document mène le développement de cadres et des expériences basées sur MindSpore. Les résultats expérimentaux tels que les tâches Digits et Office Caltech prouvent l'efficacité de la solution proposée et l'efficience des modules clés.

02

présentation de l'équipe

Huang Wenke, le premier auteur de l'article, étudie actuellement pour une maîtrise et un doctorat à l'Université de Wuhan (depuis 2021), et ses mentors sont le professeur Du Bo et le professeur Ye Mang. Diplômé d'un baccalauréat de l'Université de Wuhan, ses principaux domaines de recherche incluent l'apprentissage fédéré, l'apprentissage des graphes, la technologie financière, etc. Il a actuellement publié 4 articles en tant que premier auteur lors de conférences internationales de premier plan telles que CVPR, IJCAI et ACM MM. Au cours de sa période de troisième cycle, il a remporté des titres tels que la bourse Guotai Junan et l'étudiant diplômé exceptionnel. A été stagiaire de recherche chez Alibaba Group, Microsoft Research Asia, etc.

Ye Mang , l'auteur correspondant de l'article, est professeur et directeur de doctorat à l'École d'informatique de l'Université de Wuhan, un jeune talent de haut niveau au niveau national et un jeune candidat recommandé par l'Association chinoise pour la science et la technologie. Il a été chercheur scientifique à l’Emirates Origin Artificial Intelligence Research Institute et chercheur invité à l’Université de Columbia aux États-Unis. Ses principaux domaines de recherche incluent la vision par ordinateur, la récupération multimédia, l'apprentissage fédéré, etc. Il a publié plus de 80 articles dans des revues et conférences internationales, 10 articles ESI très cités et a été cité par Google Scholar plus de 5 600 fois. A été président de terrain de conférences universitaires telles que CVPR24 et ACM MM23. Héberge des projets de recherche scientifique tels que le plan clé de R&D de la province du Hubei et la Fondation nationale des sciences naturelles de Chine. A remporté la bourse d'excellence Google, champion de la piste de réidentification des cibles de drones à l'ICCV2021, la plus grande conférence internationale sur la vision par ordinateur, « les 2 % des meilleurs scientifiques du monde » dans le classement de Stanford 2021-2022, et 2022 Baidu AI Chinese Young Scholar. .

L'équipe de recherche MARS est dirigée par le professeur Ye Mang et se concentre sur l'analyse du comportement/des piétons par vidéosurveillance, l'apprentissage non supervisé/semi-supervisé, la compréhension et le raisonnement intermodaux et l'apprentissage fédéré.

03

Introduction au document

3.1 Introduction

Sur la base du contexte de recherche susmentionné, cet article propose l'apprentissage de prototypes fédérés pour résoudre le problème de la généralisation multi-domaine fédérée : les données privées proviennent de différents domaines et différents clients ont des distributions de fonctionnalités très différentes puisque le modèle local surajustera la distribution locale. , le modèle privé ne parvient pas à obtenir de bons résultats dans d’autres domaines. Par exemple, un modèle local A formé sur des images en niveaux de gris MNIST, après avoir été agrégé par le serveur, ne peut pas fonctionner normalement sur un autre client tel que l'ensemble de données SVHN d'images couleur, car ce modèle local A ne peut pas apprendre les informations de domaine SVHN, ce qui entraîne des performances. dégradation.

Étant donné que le signal global ne peut pas représenter les informations de connaissances dans plusieurs domaines et peut être biaisé en faveur des informations dans le domaine dominant, la capacité de généralisation est réduite. Afin de permettre au modèle d'acquérir de riches connaissances multi-domaines et d'utiliser des signaux partagés pour fournir des informations dans plusieurs domaines afin d'améliorer les capacités de généralisation, cet article propose d'utiliser des prototypes de cluster pour représenter les informations dans différents domaines et d'utiliser l'apprentissage contrastif pour améliorer les points communs des les mêmes catégories dans différents domaines et améliorer les différences entre les différentes catégories, appelés Cluster Prototypes Contrastive Learning afin d'éviter l'optimisation vers le domaine dominant potentiel et d'améliorer les capacités dans quelques domaines, cet article utilise des prototypes impartiaux pour fournir des éléments équitables et stables ; informations, appelées régularisation impartiale de la cohérence des prototypes (Unbiased Prototypes Consistent Regularization).

3.2 Méthode

3.2.1 Préparation

apprentissage fédéré

Dans un cadre d'apprentissage fédéré typique, il y a imagedes participants et leurs données privées correspondantes, exprimées comme suit :

image

Parmi eux, imagereprésente l’échelle des données locales. Dans un environnement d'apprentissage fédéré hétérogène, la distribution conditionnelle des caractéristiques imagevariera entre les participants, même si imageelle est cohérente, ce qui conduit à un changement de domaine. Définissez le décalage de domaine comme :

image

Cela signifie qu'il existe un décalage de domaine dans les données privées. Plus précisément, pour le même espace d’étiquettes, il existe des distributions de fonctionnalités uniques entre les différents participants.

imageFigure 1 Le domaine de la source de données client local est différent et la différence est grande.

De plus, tous les participants parviennent à un consensus et partagent un modèle avec la même architecture. Ce modèle peut être considéré comme deux parties principales : l'extracteur de fonctionnalités et le classificateur. L'extracteur de caractéristiques, noté image, code l'échantillon x dans imageun vecteur de caractéristiques unidimensionnel dans l'espace des caractéristiques, exprimé comme suit :

image

Le classificateur mappe les entités à la sortie logits image, qui dans les formules suivantes imagereprésente les catégories de classification. L'objectif d'optimisation est d'apprendre un modèle global généralisable avec de bonnes performances dans plusieurs domaines grâce au processus d'apprentissage fédéré.

prototype de fonctionnalité

Afin de mettre en œuvre les méthodes ultérieures liées aux prototypes, cet article construit d'abord la définition du prototype :

image

Le prototype imagereprésentant imagel'étiquette du client-th est obtenu imageen calculant la moyenne des vecteurs de caractéristiques de tous les échantillons imageavec l'étiquette du client-th , qui représente intuitivement les informations de domaine représentées par l'étiquette de ce client.imageimage

Si vous ignorez d'abord la méthode décrite dans cet article, la méthode la plus générale consiste à faire directement la moyenne des informations de domaine des balises de tous les clients image, à permettre à tous les clients d'apprendre ces informations et à limiter les mises à jour des clients locaux :

image

Ce qui imagereprésente imageles informations de domaine moyennes de tous les échantillons de différents champs étiquetés comme dans l'ensemble du système fédéré. Cependant, une telle vision globale est biaisée. Elle ne peut pas représenter correctement les informations dans différents domaines, et peut également être biaisée en faveur des domaines dominants et ignorer quelques domaines, comme le montre la figure 2a.

imageFigure 2 Représentation de différents types de prototypes

3.2.2 Apprentissage comparatif des prototypes de cluster

Afin de résoudre le problème des prototypes globaux, cet article utilise d'abord la méthode FINCH de clustering non supervisé pour séparer les connaissances de domaine étendues (vecteurs de caractéristiques de chaque échantillon) de manière non supervisée, de cette manière, les échantillons de différents domaines ont leurs propres différences. vecteurs de caractéristiques, différents champs seront regroupés en différents clusters, puis le prototype de ce cluster sera calculé au sein du même cluster, comme le montre la figure 2b, pour éviter que plusieurs domaines ne soient éloignés de toutes les connaissances de domaine utiles après avoir fait la moyenne les uns des autres. .

image

Dans la formule ci-dessus, il représente l'ensemble des prototypes de cluster d' imageétiquettes imagequi ont été regroupés .image

Sur cette base, cet article met en œuvre un apprentissage comparatif de prototypes de cluster en ajoutant un nouveau terme de perte. Pour un échantillon appartenant imageà un certain échantillon image, son vecteur caractéristique est image.Cet article utilise l'apprentissage comparatif pour essayer de réduire imageautant que possible la distance entre l'échantillon et tous les prototypes appartenant à la même sémantique, ou pour améliorer la similarité sous la même sémantique. étiquette de différents domaines. Dans le même temps, la similitude avec tous les prototypes qui n'appartiennent pas à image(marqués comme image) est réduite autant que possible. Grâce à cette méthode, de riches connaissances dans différents domaines sont acquises lors de la mise à jour locale et la capacité de généralisation est améliorée. amélioré. L'auteur définit la similarité entre l'échantillon de vecteur de caractéristiques et le prototype comme :

image

Construisez ensuite le terme de perte qui implémente l'apprentissage comparatif du prototype de cluster :

image

Pourquoi cette approche fonctionne-t-elle ? L'auteur donne l'analyse suivante :

image

Minimiser cette fonction de perte équivaut à rapprocher le vecteur de caractéristiques de l'échantillon de son prototype de cluster positif attribué imageet à éloigner le vecteur de caractéristiques des autres prototypes négatifs image. Cela maintient non seulement l'invariance face à diverses distorsions de domaine, mais améliore également les propriétés de diffusion de la sémantique, garantissant que l'espace des fonctionnalités est à la fois généralisable et discriminant, obtenant ainsi des performances de généralisation satisfaisantes dans l'apprentissage fédéré.

3.2.3 Régularisation impartiale de la cohérence des prototypes

Étant donné que les prototypes de cluster apportent diverses connaissances de domaine à la plasticité lors du transfert de domaine, mais en raison de la méthode de clustering non supervisée, les prototypes de cluster sont générés dynamiquement à chaque communication et leur échelle change. Par conséquent, le prototype de cluster ne peut pas fournir une direction de convergence stable à différentes époques de communication. Cet article propose une deuxième méthode pour garantir une équité multi-domaine durable en construisant un prototype impartial juste et stable et en limitant la distance entre plusieurs prototypes de cluster et le prototype impartial.

Plus précisément, plusieurs prototypes de cluster sous la même étiquette qui ont été regroupés sont moyennés pour représenter l'objectif de convergence impartial sous l'étiquette image, comme le montre la figure 2c.

image

Cet article introduit un deuxième terme de perte et utilise le terme de régularisation de cohérence pour rapprocher le vecteur caractéristique de l'échantillon du prototype non biaisé correspondant image, fournissant un point d'optimisation relativement juste et stable pour résoudre le problème de l'instabilité de convergence :

image

3.2.4 Algorithme global

En plus des deux pertes ci-dessus, la fonction de perte d'entropie croisée utilisée dans la formation de modèles conventionnelle est utilisée comme fonction de perte de l'apprentissage de prototype fédéré proposé dans cet article :

image

processus d'apprentissage:

image

Algorithme :

image

04

Résultats expérimentaux

4.1 Comparaison avec les résultats expérimentaux de l'état de l'art

Cet article a été testé avec les ensembles de données Digits et Office Caltech. Le premier est un ensemble de données numériques avec quatre étiquettes identiques et des sources de données différentes, et le second est un ensemble de données du monde réel avec quatre étiquettes identiques et des sources de données différentes. Les expériences montrent que le FPL proposé est meilleur que le SOTA actuel en termes de performances dans un seul domaine et de performances moyennes dans plusieurs domaines.

image

 

4.2 Expérience d'ablation

image

On constate que dans la plupart des cas, CPCL et UPCR travaillent ensemble pour produire de meilleures performances.

image

La comparaison des résultats expérimentaux démontrés par les deux méthodes utilisant des prototypes globaux ordinaires et le prototype proposé démontre l'efficacité des prototypes groupés et des prototypes impartiaux.

4.3 Affichage du code MindSpore

Ce framework est développé sur la base de MindSpore.

4.3.1 MindSpore met en œuvre l'apprentissage comparatif des prototypes de cluster

def calculate_infonce(self, f_now, label, all_f, all_global_protos_keys):
        pos_indices = 0
        neg_indices = []
        for i, k in enumerate(all_global_protos_keys):
            if k == label.item():
                pos_indices = i
            else:
                neg_indices.append(i)

        f_pos = Tensor(all_f[pos_indices][0]).reshape(1,512)
        f_neg = ops.cat([Tensor(all_f[i]).reshape(-1, 512) for i in neg_indices], axis=0)
        #aaa
        f_proto = ops.cat((f_pos, f_neg), axis=0)
        f_now = f_now.reshape(1,512)

        f_now_np = f_now.asnumpy()
        f_proto_np = f_proto.asnumpy()
        def cosine_similarity_numpy(vec_a, vec_b):
            dot_product = np.dot(vec_a, vec_b.T)
            norm_a = np.linalg.norm(vec_a, axis=1, keepdims=True)
            norm_b = np.linalg.norm(vec_b, axis=1)
            return dot_product / (norm_a * norm_b)
        l_np = cosine_similarity_numpy(f_now_np, f_proto_np)
        l = Tensor(l_np)

        #l = ops.cosine_similarity(f_now, f_proto, dim=1)
        l = ops.div(l, self.infoNCET)

        exp_l = ops.exp(l).reshape(1, -1)

        pos_num = f_pos.shape[0]
        neg_num = f_neg.shape[0]
        pos_mask = Tensor([1] * pos_num + [0] * neg_num).reshape(1, -1)

        pos_l = exp_l * pos_mask
        sum_pos_l = ops.sum(pos_l, dim=1)
        sum_exp_l = ops.sum(exp_l, dim=1)
        infonce_loss = -ops.log(sum_pos_l / sum_exp_l)
        return Tensor(infonce_loss)

4.3.2  MindSpore réalise une régularisation impartiale de la cohérence des prototypes **

def hierarchical_info_loss(self, f_now, label, mean_f, all_global_protos_keys):


        pos_indices = 0
        for i, k in enumerate(all_global_protos_keys):
            if k == label.item():
                pos_indices = i



        mean_f_pos = Tensor(mean_f[pos_indices])
        f_now = Tensor(f_now)

        cu_info_loss = self.loss_mse(f_now, mean_f_pos)

        return cu_info_loss

4.3.3 Formation du modèle local du client

 def _train_net(self, index, net, train_loader):

        if len(self.global_protos) != 0:
            all_global_protos_keys = np.array(list(self.global_protos.keys()))
            all_f = []
            mean_f = []
            for protos_key in all_global_protos_keys:
                temp_f = self.global_protos[protos_key]
                all_f.append(copy.deepcopy(temp_f))
                mean_f.append(copy.deepcopy(np.mean(temp_f, axis=0)))
            all_f = [item.copy() for item in all_f]
            mean_f = [item.copy() for item in mean_f]
        else:
            all_f = []
            mean_f = []
            all_global_protos_keys = []        

        optimizer = nn.SGD(net.trainable_params(), learning_rate=self.local_lr, momentum=0.9, weight_decay=1e-5)
        criterion1 = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean')
        criterion = CustomLoss(criterion1, self.loss2)
        self.loss_mse = mindspore.nn.MSELoss()
        train_net= nn.TrainOneStepCell(nn.WithLossCell(net,criterion), optimizer=optimizer)
        train_net.set_train(True)

        iterator = tqdm(range(self.local_epoch))
        for iter in iterator:

            agg_protos_label = {}
            for di in train_loader.create_dict_iterator():
                images = di["image"]
                labels = di["label"]

                #   train_net.set_train(False)
                f = net.features(images)
                #train_net.set_train(True)

                if len(self.global_protos) == 0:
                    loss_InfoNCE = 0 
                else:
                    i = 0
                    loss_InfoNCE = None

                    for label in labels:
                        if label in all_global_protos_keys:

                            f_now = f[i]
                            cu_info_loss = self.hierarchical_info_loss(f_now, label, mean_f, all_global_protos_keys)
                            xi_info_loss = self.calculate_infonce(f

05

Résumé et perspectives

Dans cet article, nous explorons les problèmes de généralisation et de stabilité liés au transfert de domaine dans l'apprentissage fédéré hétérogène. Notre étude présente un algorithme d'apprentissage fédéré simple mais efficace, à savoir l'apprentissage par prototype fédéré (FPL). Nous utilisons des prototypes (représentations canoniques de classes) pour résoudre ces deux problèmes, bénéficiant des avantages complémentaires des prototypes clusterisés et des prototypes impartiaux : connaissance de domaines diversifiés et signaux de convergence stables. Nous avons implémenté le framework FPL en utilisant l'architecture Sunthink MindSpore et démontré ses avantages en termes d'efficacité et de précision.

Lors de l'utilisation de Shengsi MindSpore pour développer le framework FPL, nous avons remarqué que la communauté Shengsi MindSpore est très active et que de nombreux développeurs et utilisateurs de Huawei nous ont apporté une grande aide pour les difficultés que nous avons rencontrées lors de la construction du framework. De plus, grâce à la riche documentation et aux didacticiels fournis par MindSpore ainsi qu'aux cas réels et aux meilleures pratiques de la communauté, nous avons évité de nombreux pièges potentiels et atteint nos objectifs de recherche plus rapidement.

Un programmeur né dans les années 1990 a développé un logiciel de portage vidéo et en a réalisé plus de 7 millions en moins d'un an. La fin a été très éprouvante ! Google a confirmé les licenciements, impliquant la « malédiction des 35 ans » des codeurs chinois des équipes Flutter, Dart et . Python Arc Browser pour Windows 1.0 en 3 mois officiellement la part de marché de GA Windows 10 atteint 70 %, Windows 11 GitHub continue de décliner l'outil de développement natif d'IA GitHub Copilot Workspace JAVA. est la seule requête de type fort capable de gérer OLTP+OLAP. C'est le meilleur ORM. Nous nous rencontrons trop tard.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/4736317/blog/11072527
conseillé
Classement