Aula de ensaio | Implementando aprendizagem de protótipo federado generalizado sob aprendizagem comparativa de protótipo de vários domínios baseada em MindSpore

Autor: Li Ruifeng

Título do artigo

Repensando a aprendizagem federada com mudança de domínio: uma visão de protótipo

Fonte de papel

CVPR 2023

Link de papel

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

link de código

https://github.com/yuhangchen0/FPL_MS

Como uma estrutura de IA de código aberto, MindSpore traz colaboração entre dispositivos e nuvem de cenário completo entre indústria, universidade, pesquisa e desenvolvedores, desenvolvimento minimalista, desempenho máximo, pré-treinamento de IA em escala ultralarga, desenvolvimento minimalista e um ambiente seguro e confiável. experiência, 2020.3.28 O código aberto tem mais de 5 milhões de downloads. O MindSpore apoiou centenas de artigos de conferências importantes sobre IA, foi ensinado nas mais de 100 universidades e está disponível comercialmente em mais de 5.000 aplicativos por meio do HMS. e está no campo da computação de IA, finanças, manufatura inteligente, finanças, nuvem, wireless, comunicações de dados, energia, consumidor 1+8+N, carros inteligentes e outros cenários de carros em nuvem de ponta são gradualmente amplamente utilizados. é o software de código aberto com o maior índice Gitee. Todos são bem-vindos para participar de contribuições de código aberto, kits, modelo de inteligência coletiva, inovação e aplicações da indústria, inovação de algoritmos, cooperação acadêmica, cooperação de livros de IA, etc., e contribuir com seus casos de aplicação no lado da nuvem, no lado do dispositivo, no lado da borda e campos de segurança.

Com o amplo apoio do SunSilicon MindSpore da comunidade científica e tecnológica, da academia e da indústria, os artigos de IA baseados no SunSilicon MindSpore representaram 7% de todas as estruturas de IA em 2023, ocupando o segundo lugar no mundo por dois anos consecutivos. Obrigado ao CAAI e. todas as universidades Com o apoio dos professores, continuaremos a trabalhar arduamente juntos para fazer pesquisa e inovação em IA. A comunidade MindSpore apoia as principais pesquisas de artigos de conferências e continua a construir resultados originais de IA. Ocasionalmente, selecionarei alguns artigos excelentes para promover e interpretar. Espero que mais especialistas da indústria, da academia e da pesquisa cooperem com a Shengsi MindSpore para promover pesquisas originais em IA. é de Shengsi. Para o 18º artigo da série de artigos do MindSpore AI Summit, escolhi interpretar um artigo da equipe do professor Ye Mang da Escola de Ciência da Computação da Universidade de Wuhan . Gostaria de agradecer a todos os especialistas, professores e colegas de classe. por suas contribuições.

MindSpore visa atingir três objetivos principais: fácil desenvolvimento, execução eficiente e cobertura completa de cenários. Através da experiência de uso, MindSpore, uma estrutura de aprendizagem profunda, está se desenvolvendo rapidamente, e o design de suas diversas APIs está sendo constantemente otimizado em uma direção mais razoável, completa e poderosa. Além disso, várias ferramentas de desenvolvimento que surgem constantemente de Shengsi também estão ajudando este ecossistema a criar métodos de desenvolvimento mais convenientes e poderosos, como o MindSpore Insight, que pode apresentar a arquitetura do modelo na forma de um diagrama e também monitorar dinamicamente vários aspectos do modelo durante o tempo de execução. Mudanças nos indicadores e parâmetros tornam o processo de desenvolvimento mais conveniente.

01

Antecedentes da Pesquisa

No mundo digital, a privacidade e a segurança dos dados tornaram-se questões centrais de preocupação crescente. É neste contexto que o aprendizado federado surgiu como um método de aprendizado de máquina distribuído que protege a privacidade dos dados. Sua ideia central é permitir que vários dispositivos ou servidores treinem em conjunto um modelo sem compartilhar dados originais. Essa abordagem pode lidar com tarefas de aprendizado de máquina em vários dispositivos móveis, especialmente quando os requisitos de privacidade e segurança dos dados são altos.

Há um problema importante a ser resolvido na aprendizagem federada: a heterogeneidade dos dados. Geralmente se refere ao fato de que os dados mantidos por cada nó (como um dispositivo, servidor ou organização) envolvido na aprendizagem podem variar muito. Essas diferenças podem envolver aspectos como distribuição, qualidade, quantidade e tipo de características dos dados. A questão da heterogeneidade dos dados é particularmente importante na aprendizagem federada porque pode afetar diretamente o efeito de aprendizagem e a capacidade de generalização do modelo.

Este artigo aponta que, para a heterogeneidade dos dados, as soluções existentes concentram-se principalmente em todos os dados privados do mesmo domínio. Quando os dados distribuídos se originam de domínios diferentes, os modelos privados tendem a apresentar desempenho degradado em outros domínios (com compensações de domínio) e os sinais globais não conseguem capturar informações de domínio ricas e justas. Portanto, os autores esperam que o modelo global otimizado possa fornecer de forma estável desempenho de generalização em múltiplos domínios durante o processo de aprendizagem federada.

Neste artigo, os autores propõem "Aprendizagem de Protótipo Federado" (FPL) para aprendizagem federada sob mudança de domínio. A ideia central é construir protótipos agrupados e imparciais que forneçam um rico conhecimento de domínio e metas de convergência justas. Por um lado, os embeddings das amostras afastam-se dos protótipos de cluster de categorias diferentes e aproximam-se dos protótipos de cluster da mesma semântica. Por outro lado, a regularização de consistência é introduzida para alinhar as instâncias locais com os protótipos imparciais correspondentes.

O artigo conduz o desenvolvimento de estruturas e experimentos com base no MindSpore. Resultados experimentais, como tarefas Digits e Office Caltech, comprovam a eficácia da solução proposta e a eficiência dos módulos principais.

02

introdução da equipe

Huang Wenke, o primeiro autor do artigo, está atualmente cursando mestrado e doutorado na Universidade de Wuhan (2021 até o presente), e seus mentores são o professor Du Bo e o professor Ye Mang. Graduado pela Universidade de Wuhan com bacharelado. Suas principais áreas de pesquisa incluem aprendizagem federada, aprendizagem gráfica, tecnologia financeira, etc. Atualmente, ele publicou 4 artigos como primeiro autor em conferências internacionais importantes, como CVPR, IJCAI e ACM MM. Durante o período de pós-graduação, conquistou títulos como Bolsa Guotai Junan e Aluno de Pós-Graduação de Destaque. Atuou como estagiário de pesquisa no Alibaba Group, Microsoft Research Asia, etc.

Ye Mang , o autor correspondente do artigo, é professor e supervisor de doutorado na Escola de Ciência da Computação da Universidade de Wuhan, um jovem talento de alto nível de nível nacional e um jovem candidato recomendado pela Associação Chinesa de Ciência e Tecnologia. Ele atuou como cientista pesquisador no Emirates Origin Artificial Intelligence Research Institute e como pesquisador visitante na Universidade de Columbia, nos Estados Unidos. Suas principais direções de pesquisa incluem visão computacional, recuperação multimídia, aprendizagem federada, etc. Ele publicou mais de 80 artigos em periódicos e conferências internacionais, 10 artigos altamente citados do ESI e foi citado pelo Google Scholar mais de 5.600 vezes. Atuou como presidente de campo de conferências acadêmicas como CVPR24 e ACM MM23. Hospeda projetos de pesquisa científica, como o Plano Principal de P&D da Província de Hubei e a Fundação Nacional de Ciências Naturais da China. Ganhou a Google Excellent Scholarship, campeã do curso de reidentificação de alvos de drones na ICCV2021, a principal conferência internacional de visão computacional, "os 2% melhores cientistas do mundo" no ranking de Stanford de 2021-2022, e 2022 Baidu AI Chinese Young Scholar. .

A equipe de pesquisa MARS é dirigida pelo professor Ye Mang e se concentra na análise de vídeo de vigilância de pedestres/comportamento, aprendizagem não supervisionada/semi-supervisionada, compreensão e raciocínio intermodal e aprendizagem federada.

03

Introdução ao artigo

3.1 Introdução

Com base no histórico de pesquisa mencionado acima, este artigo propõe a aprendizagem de protótipo federado para resolver o problema da generalização federada de vários domínios: dados privados vêm de campos diferentes e clientes diferentes têm distribuições de recursos amplamente diferentes, uma vez que o modelo local irá superajustar a distribuição local. , o modelo privado não apresenta bom desempenho em outros domínios. Por exemplo, um modelo local A treinado em imagens em escala de cinza MNIST, após ser agregado pelo servidor, não pode funcionar normalmente em outro cliente, como o conjunto de dados SVHN de imagem colorida, porque este modelo local A não pode aprender informações do domínio SVHN, levando ao desempenho. degradação.

Uma vez que o sinal global não pode representar informação de conhecimento em múltiplos campos e pode ser tendencioso para informação no campo dominante, a capacidade de generalização é reduzida. A fim de permitir que o modelo aprenda conhecimento rico em vários domínios e use sinais compartilhados para fornecer informações em vários domínios para melhorar as capacidades de generalização, este artigo propõe usar protótipos de cluster para representar informações em diferentes domínios e usar aprendizagem contrastiva para aumentar a semelhança de as mesmas categorias em diferentes domínios e aumentar as diferenças entre diferentes categorias, chamadas Cluster Prototypes Contrastive Learning, a fim de evitar a otimização para o domínio dominante potencial e melhorar a capacidade em alguns domínios, este artigo usa protótipos imparciais para fornecer justo e estável; informação, que é chamada de regularização imparcial de consistência de protótipo (regularização consistente de protótipos imparciais).

3.2 Método

3.2.1 Preparação

aprendizagem federada

Num ambiente típico de aprendizagem federada, existem fotoparticipantes e os seus dados privados correspondentes, expressos como:

foto

Dentre eles, fotorepresenta a escala de dados local. Num ambiente de aprendizagem federado heterogéneo, a distribuição condicional de características fotoirá variar entre os participantes, mesmo que fotoseja consistente, o que leva à mudança de domínio. Defina o deslocamento do domínio como:

foto

Isto significa que há um deslocamento de domínio nos dados privados. Especificamente, para o mesmo espaço de rótulo, existem distribuições de características únicas entre diferentes participantes.

fotoFigura 1 O domínio da fonte de dados do cliente local é diferente e a diferença é grande.

Além disso, todos os participantes chegam a um consenso e compartilham um modelo com a mesma arquitetura. Este modelo pode ser visto como duas partes principais: extrator de recursos e classificador. O extrator de recursos, denotado como foto, codifica a amostra x em fotoum vetor de recursos unidimensional no espaço de recursos, expresso como:

foto

O classificador mapeia recursos para a saída de logits foto, que nas fórmulas subsequentes fotorepresenta as categorias de classificação. O objetivo da otimização é aprender um modelo global generalizável com bom desempenho em múltiplos domínios através do processo de aprendizagem federada.

protótipo de recurso

A fim de implementar métodos subsequentes relacionados ao protótipo, este artigo primeiro constrói a definição de protótipo:

foto

O protótipo fotoque representa fotoo rótulo do cliente-th é obtido fotocalculando a média dos vetores de características de todas as amostras fotocom o rótulo do cliente-th , que representa intuitivamente a informação do domínio representado pelo rótulo deste cliente.fotofoto

Se você ignorar o método neste artigo primeiro, o método mais geral será calcular diretamente a média das informações de domínio das tags de todos os clientes foto, permitir que todos os clientes aprendam essas informações e restringir as atualizações locais do cliente:

foto

Que fotorepresenta fotoa informação média do domínio de todas as amostras de diferentes campos rotulados como em todo o sistema federado. No entanto, esta visão global é tendenciosa. Não consegue representar corretamente a informação em vários campos, e pode também ser tendenciosa para campos dominantes e ignorar alguns campos, como mostra a Figura 2a.

fotoFigura 2 Representação de diferentes tipos de protótipos

3.2.2 Aprendizagem comparativa de protótipo de cluster

Para resolver o problema dos protótipos globais, este artigo primeiro usa o método FINCH para agrupamento não supervisionado para separar o extenso conhecimento do domínio (vetores de características de cada amostra) sem supervisão. vetores de recursos, campos diferentes serão agrupados em clusters diferentes e, em seguida, o protótipo deste cluster será calculado dentro do mesmo cluster, conforme mostrado na Figura 2b, para evitar que vários domínios fiquem longe de todo o conhecimento útil do domínio após calcular a média entre si .

foto

Na fórmula acima, representa o conjunto de protótipos de cluster de fotorótulos fotoque foram agrupados .foto

Com base nisso, este artigo implementa aprendizagem comparativa de protótipo de cluster adicionando um novo termo de perda. Para uma amostra pertencente fotoa uma determinada amostra foto, seu vetor de características é foto. Este artigo usa aprendizado comparativo para tentar encurtar fotoao máximo a distância entre a amostra e todos os protótipos que pertencem à mesma semântica, ou para melhorar a similaridade sob a mesma. rótulo de diferentes domínios Ao mesmo tempo, a semelhança com todos os protótipos que não pertencem a foto(marcados como foto) é reduzida tanto quanto possível. Através deste método, conhecimento rico em diferentes campos é aprendido durante a atualização local e a capacidade de generalização é. melhorou. O autor define a semelhança entre o vetor de características da amostra e o protótipo como:

foto

Em seguida, construa o termo de perda que implementa a aprendizagem comparativa do protótipo de cluster:

foto

Por que essa abordagem funciona? O autor faz a seguinte análise:

foto

Minimizar esta função de perda equivale a aproximar o vetor de características da amostra de seu protótipo de cluster positivo atribuído fotoe afastar o vetor de características de outros protótipos negativos foto. Isto não apenas mantém a invariância para várias distorções de domínio, mas também melhora as propriedades de difusão da semântica, garantindo que o espaço de recursos seja generalizável e discriminativo, alcançando assim um desempenho de generalização satisfatório na aprendizagem federada.

3.2.3 Regularização imparcial da consistência do protótipo

Como os protótipos de cluster trazem diversos conhecimentos de domínio para a plasticidade sob transferência de domínio, mas devido ao método de agrupamento não supervisionado, os protótipos de cluster são gerados dinamicamente a cada comunicação e sua escala muda. Portanto, o protótipo do cluster não pode fornecer uma direção de convergência estável em diferentes eras de comunicação. Este artigo propõe um segundo método para garantir a justiça sustentada em vários domínios, construindo um protótipo imparcial justo e estável e restringindo a distância entre vários protótipos de cluster e o protótipo imparcial.

Especificamente, é calculada a média de vários protótipos de cluster sob o mesmo rótulo que foram agrupados para representar a meta de convergência imparcial sob o rótulo foto, como mostrado na Figura 2c.

foto

Este artigo introduz um segundo termo de perda e usa o termo de regularização de consistência para aproximar o vetor de características da amostra do protótipo imparcial correspondente foto, fornecendo um ponto de otimização relativamente justo e estável para resolver o problema de instabilidade de convergência:

foto

3.2.4 Algoritmo geral

Além das duas perdas acima, a função de perda de entropia cruzada usada no treinamento de modelo convencional é usada como a função de perda do aprendizado de protótipo federado proposto neste artigo:

foto

processo de aprendizado:

foto

Algoritmo :

foto

04

Resultados experimentais

4.1 Comparação com resultados experimentais do estado da arte

Este artigo foi testado nos conjuntos de dados Digits e Office Caltech. O primeiro é um conjunto de dados digitais com quatro rótulos idênticos e fontes de dados diferentes, e o último é um conjunto de dados do mundo real com quatro rótulos iguais e fontes de dados diferentes. Experimentos mostram que o FPL proposto é melhor que o SOTA atual tanto no desempenho em um único campo quanto no desempenho médio em vários campos.

foto

 

4.2 Experimento de ablação

foto

Pode-se observar que na maioria dos casos CPCL e UPCR trabalham juntos para produzir melhor desempenho.

foto

A comparação dos resultados experimentais demonstrados pelos dois métodos usando protótipos globais comuns e o protótipo proposto demonstra a eficácia de protótipos agrupados e protótipos imparciais.

4.3 Exibição do código MindSpore

Esta estrutura é desenvolvida com base no MindSpore.

4.3.1 MindSpore implementa aprendizagem comparativa de protótipos 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 realiza regularização imparcial da consistência do protótipo **

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 Treinamento do modelo local do cliente

 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

Resumo e Perspectiva

Neste artigo, exploramos as questões de generalização e estabilidade na transferência de domínio na aprendizagem federada heterogênea. Nosso estudo apresenta um algoritmo de aprendizagem federado simples, mas eficaz, ou seja, Federated Prototype Learning (FPL). Utilizamos protótipos (representações canônicas de classes) para resolver esses dois problemas, aproveitando as vantagens complementares dos protótipos agrupados e dos protótipos imparciais: conhecimento de domínio diversificado e sinais de convergência estáveis. Implementamos a estrutura FPL usando a arquitetura Sunthink MindSpore e demonstramos suas vantagens em eficiência e precisão.

Ao usar o Shengsi MindSpore para desenvolver a estrutura FPL, notamos que a comunidade Shengsi MindSpore é muito ativa e muitos desenvolvedores e usuários da Huawei forneceram grande ajuda para as dificuldades que encontramos na construção da estrutura. Além disso, com a rica documentação e tutoriais fornecidos pela MindSpore, bem como casos reais e melhores práticas na comunidade, evitamos muitas armadilhas potenciais e atingimos nossos objetivos de pesquisa mais rapidamente.

Um programador nascido na década de 1990 desenvolveu um software de portabilidade de vídeo e faturou mais de 7 milhões em menos de um ano. O final foi muito punitivo! Google confirmou demissões, envolvendo a "maldição de 35 anos" dos programadores chineses nas equipes Flutter, Dart e . Python Arc Browser para Windows 1.0 em 3 meses oficialmente GA A participação de mercado do Windows 10 atinge 70%, Windows 11 GitHub continua a diminuir a ferramenta de desenvolvimento nativa de IA GitHub Copilot Workspace JAVA. é a única consulta de tipo forte que pode lidar com OLTP + OLAP. Este é o melhor ORM. Nos encontramos tarde demais.
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4736317/blog/11072527
Recomendado
Clasificación