<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    ojapps
   </journal-id>
   <journal-title-group>
    <journal-title>
     Open Journal of Applied Sciences
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    2165-3917
   </issn>
   <issn publication-format="print">
    2165-3925
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/ojapps.2025.154067
   </article-id>
   <article-id pub-id-type="publisher-id">
    ojapps-141927
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Biomedical 
     </subject>
     <subject>
       Life Sciences, Chemistry 
     </subject>
     <subject>
       Materials Science, Computer Science 
     </subject>
     <subject>
       Communications, Engineering, Physics 
     </subject>
     <subject>
       Mathematics
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Federated Domain Generalization by Intra-Client Stable Feature Learning and Inter-Client Domain Adversarial Alignment
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Xin
      </surname>
      <given-names>
       Zhao
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff1"> 
      <sup>1</sup>
     </xref>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Wu
      </surname>
      <given-names>
       Ai
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff1"> 
      <sup>1</sup>
     </xref> 
     <xref ref-type="aff" rid="aff2"> 
      <sup>2</sup>
     </xref>
    </contrib>
   </contrib-group> 
   <aff id="aff1">
    <addr-line>
     aSchool of Mathematics and Statistics, Guilin University of Technology, Guilin, China
    </addr-line> 
   </aff> 
   <aff id="aff2">
    <addr-line>
     aGuangxi Colleges and Universities Key Laboratory of Applied Statistics, Guilin, China
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     27
    </day> 
    <month>
     03
    </month>
    <year>
     2025
    </year>
   </pub-date> 
   <volume>
    15
   </volume> 
   <issue>
    04
   </issue>
   <fpage>
    987
   </fpage>
   <lpage>
    1001
   </lpage>
   <history>
    <date date-type="received">
     <day>
      5,
     </day>
     <month>
      March
     </month>
     <year>
      2025
     </year>
    </date>
    <date date-type="published">
     <day>
      12,
     </day>
     <month>
      March
     </month>
     <year>
      2025
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      12,
     </day>
     <month>
      April
     </month>
     <year>
      2025
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    Federated Learning (FL), which serves as a distributed learning model focused on privacy protection, has received widespread attention due to its ability to collaboratively train models without exchanging clients’ raw data. However, since each client independently collects its local dataset, a single client may contain data from multiple domains, which leads to the existence of an agnostic distribution bias both intra-client and inter-client biases, and it is still a challenge to implement cross-domain generalization of the model in such an FL setting. In this paper, we propose a new stable federated adversarial domain generalization (Stable-FedADG) algorithm, which considers both intra-client and inter-client multi-domain distributions and through intra-client stable feature learning and inter-client domain adversarial alignment to learn domain-invariant features in federated scenarios. Experiments verify that the Stable-FedADG algorithm enhances the overall model performance across various federated environments.
   </abstract>
   <kwd-group> 
    <kwd>
     Federated Domain Generalization
    </kwd> 
    <kwd>
      Stable Feature Learning
    </kwd> 
    <kwd>
      Domain Adversarial Alignment
    </kwd> 
    <kwd>
      Agnostic Distribution Bias
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <p>In recent years, with the popularization of smart devices, the amount of global data has experienced explosive growth, and AI technology, as the core of intelligent Internet technology, needs to mine useful information from massive datasets to help the Internet system to provide more accurate and broader services and decisions <xref ref-type="bibr" rid="scirp.141927-1">
     [1]
    </xref>. However, due to the huge storage resources, computational overhead and privacy protection, the traditional centralized training method is no longer feasible, so federated learning has received widespread attention as a new distributed learning paradigm with privacy protection <xref ref-type="bibr" rid="scirp.141927-2">
     [2]
    </xref> <xref ref-type="bibr" rid="scirp.141927-3">
     [3]
    </xref>. In the federated architecture, data is stored in each client in a decentralized manner, and each client can collect data independently and has a certain computational capability. In every round of Federated Learning (FL), the client trains its local model using its own local data, leveraging the received global model as a foundation. Afterward, the client transmits the model updates back to the server. The server then aggregates these updates and uses them to refine the global model. Once the global model is updated, it is sent back to each client for the subsequent round of model refinement. Throughout this process, clients are not required to share their raw datasets.</p>
   <p>FL is able to utilize datasets from various clients for collaborative model training, while safeguarding data privacy. FedAvg proposed in <xref ref-type="bibr" rid="scirp.141927-4">
     [4]
    </xref> is a classical FL paradigm, which mainly utilizes the weighted average of client updates to learn a global model, and is widely used for its ability to conduct several local updates on each client, thereby significantly minimizing communication costs. However, due to the different environments, data collection methods and user preferences of each client, the distribution of data stored in different clients may be significantly different and violate the traditional IID assumption, which is one of the main challenges of FL: the statistical heterogeneity problem <xref ref-type="bibr" rid="scirp.141927-3">
     [3]
    </xref> <xref ref-type="bibr" rid="scirp.141927-5">
     [5]
    </xref>. Although traditional FedAvg exhibits efficient performance in homogeneous scenarios, its convergence and training speed are usually challenged when facing heterogeneous data <xref ref-type="bibr" rid="scirp.141927-6">
     [6]
    </xref>. There have been many works that study the statistical heterogeneity problem. FedProx in <xref ref-type="bibr" rid="scirp.141927-7">
     [7]
    </xref> adds a proximal term for FedAvg to limit the local update bias for reducing the dispersion of the local model; SCAFFOLD <xref ref-type="bibr" rid="scirp.141927-8">
     [8]
    </xref> solves the clients drift problem by designing control variables to correct the local update direction. To solve the data heterogeneity problem, another solution is to construct personalized models based on the local distribution <xref ref-type="bibr" rid="scirp.141927-9">
     [9]
    </xref> <xref ref-type="bibr" rid="scirp.141927-10">
     [10]
    </xref>. The studies mentioned above primarily aim to enhance the model’s performance within the participating clients, typically assuming that the test data is a subset of the client’s dataset. However, they often overlook the issue of generalization to federated domains that have not been encountered during training. In this paper, we aim to learn a global model that can be generalized to other unseen clients.</p>
   <p>Federated Domain Generalization (FDG) is an extension of FL that combines FL and Domain Generalization (DG) techniques to collaboratively train a model using multiple source domains (multiple clients). FDG, the same as DG, is mainly studied for the case that the distribution of the test set and training set is non-IID, with the aim of enhancing the model’s predictive performance in the unseen domains <xref ref-type="bibr" rid="scirp.141927-11">
     [11]
    </xref>. Many works have been developed in FDG. References <xref ref-type="bibr" rid="scirp.141927-12">
     [12]
    </xref> <xref ref-type="bibr" rid="scirp.141927-13">
     [13]
    </xref> studied the problems related to unsupervised domain adaptation in the FL paradigm, these methods usually need the data from target domain to adapt the model, but the data from the target domain are usually agnostic in real scenarios. COPA <xref ref-type="bibr" rid="scirp.141927-14">
     [14]
    </xref> solves FDG by aggregating the weights of domain-invariant feature extractors while maintaining an ensemble of domain-specific classifiers, where there may be a privacy leakage problem. FedDG <xref ref-type="bibr" rid="scirp.141927-15">
     [15]
    </xref> adapts local learning to domain distribution changes by exchanging data distribution information among different clients and utilizing a boundary-oriented episodic learning paradigm based on the obtained multi-source distributions. FedADG <xref ref-type="bibr" rid="scirp.141927-16">
     [16]
    </xref> uses a federated adversarial learning approach to learn domain-invariant features by aligning the distributions of different clients to a dynamic reference distribution. However, these methods typically treat each client as a source domain and align data distributions client by client, which only focuses on the inter-client domain distribution differences and ignores the multi-domain information that a single client might contain. When intra-client domain bias or unbalance also exists, merely considering inter-client domain distribution differences is insufficient for enhancing the model’s generalization performance.</p>
   <p>Stable Learning (SL) has been extensively studied in the field of out-of-distribution generalization. Reference <xref ref-type="bibr" rid="scirp.141927-17">
     [17]
    </xref> presents a causal regularization learning framework to mitigate agnostic data selection bias and enhance the robustness of predictive models. Additionally, it introduces the Causal Regularization Logistic Regression (CRLR) algorithm, which integrates causal techniques into traditional logistic regression models. Kuang et al. <xref ref-type="bibr" rid="scirp.141927-18">
     [18]
    </xref> propose a generalized Decorrelated Weighting Regression (DWR) algorithm designed to handle both multicategorical and continuous features. Cui et al. <xref ref-type="bibr" rid="scirp.141927-19">
     [19]
    </xref> <xref ref-type="bibr" rid="scirp.141927-20">
     [20]
    </xref> provide a theoretical explanation for the effectiveness of Stable Learning (SL) in addressing covariate bias generalization and its links to machine learning and causal inference, offering rigorous theoretical support. Zhang et al. <xref ref-type="bibr" rid="scirp.141927-21">
     [21]
    </xref> extend SL to deep learning models to better handle complex data types, introducing Deep Stable Learning (StableNet). Although SL has been rapidly developed in the centralized context, it has not been studied in the federated context where data are scattered and stored in different clients and restricted by privacy protection.</p>
   <p>Based on the above approach, the main contribution of this paper is to propose a new federated domain generalization algorithm, which simultaneously focuses on the multi-domain distributions of intra-clients and inter-clients to further enhance the generalization capability of the global model. In this paper, the SL idea is introduced into the FL architecture to eliminate the agnostic distributional bias that exists intra-client by extracting stable features using a sample reweighting scheme. In addition, this paper combines the federated adversarial learning network (FedALN) <xref ref-type="bibr" rid="scirp.141927-16">
     [16]
    </xref> to dynamically align the feature distributions of each client to the same reference distribution, which indirectly realizes the alignment of feature distributions between clients, and thus eliminates the differences of feature distributions between clients. This paper introduces the stable federated adversarial domain generalization (Stable-FedADG) method only needs to pass model parameters during training which protects data privacy.</p>
  </sec><sec id="s2">
   <title>2. Preliminaries</title>
   <sec id="s2_1">
    <title>2.1. Problem Statement</title>
    <p>The aim of this paper is to develop a generalized federated domain generalization mechanism that takes into account both intra-client and inter-client domain distributions to collaboratively train a model with strong generalization performance using unshared data from different clients. Assume that there are K clients, each of which collects data independently to form its own local dataset, where the local dataset of the k-th client is denoted as 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             X 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             Y 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           X 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
       </msub> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           × 
         </mo> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            X 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Y 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
       </msub> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           × 
         </mo> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            Y 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math>, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          X 
        </mi> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           k 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          Y 
        </mi> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           k 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denote the i-th sample data of the k-th client, each client can train the model independently and can transmit the information with the server. Let 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi mathvariant="script">
         X 
       </mi> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            X 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi mathvariant="script">
         Y 
       </mi> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            Y 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi mathvariant="script">
         Z 
       </mi> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            Z 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> denote respectively the input space, the output space and the feature space. 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mo>
         : 
       </mo> 
       <mi mathvariant="script">
         X 
       </mi> 
       <mo>
         → 
       </mo> 
       <mi mathvariant="script">
         Z 
       </mi> 
      </mrow> 
     </math> denotes the feature extractor, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mo>
         : 
       </mo> 
       <mi mathvariant="script">
         Z 
       </mi> 
       <mo>
         → 
       </mo> 
       <mi mathvariant="script">
         Y 
       </mi> 
      </mrow> 
     </math> denotes the classifier, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
       </msub> 
       <mo>
         ⊂ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           × 
         </mo> 
         <msub> 
          <mi>
            M 
          </mi> 
          <mi>
            Z 
          </mi> 
         </msub> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> denotes the sample features of the k-th client extracted through the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           i 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denotes the i-th feature variable in the feature space of the k-th client and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          N 
        </mi> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> denotes the sample size of the k-th client. Since each client collects data independently, the problem of agnostic distribution bias may exist both intra-client and inter-client, so we would like to give a generalized federated domain generalization mechanism that improves the generalization performance of model on unseen clients while observing federated learning privacy preservation.</p>
   </sec>
   <sec id="s2_2">
    <title>2.2. Federated Adversarial Learning Network (FedALN)</title>
    <p>FedALN is a network structure for aligning inter-client feature distributions in the federated context proposed in <xref ref-type="bibr" rid="scirp.141927-16">
      [16]
     </xref>, which is mainly based on Adversarial Learning Networks (ALNs), by generating a dynamic reference distribution and aligning the feature distributions of each client to this reference distribution to reduce the inter-clients’ domain distribution differences and improve the generalization performance of the global model. Its effectiveness has been verified by a large number of experiments. Our proposed method also adopts FedALN to eliminate the impact of inter-client domain bias on model performance and below we provide a brief review of FedALN.</p>
    <p>FedALN consists of 3 main components: the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> and the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. Among them, the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is used to extract real data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> from the local raw data and the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is used to generate the reference distribution and output the generated features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math>, the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is employed to differentiate between the real data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> and the generated features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math>.</p>
    <p>Specifically, each client has a local ALN and the data distribution differences between different clients are converted into feature distribution differences. Firstly, each client aligns the local feature distribution with the generated reference distribution by training the local ALNs, and then the model parameters of the local ALNs of all clients are passed to the server for model parameter aggregation to form a new FedALN to be passed to each client again. Through multiple interactions of the local clients and the server, the feature distributions of different clients will be aligned to the same reference distribution, thus indirectly realizing the alignment of the feature distributions between clients.</p>
    <p>Then we will describe specifically the three components of FedALN and the corresponding adversarial loss functions.</p>
    <p>Discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>: The discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is primarily responsible for distinguishing between the true data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math>, which are obtained from the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, and the false features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math>, generated by the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. To facilitate this task, one-hot encoded labels are used to ensure that the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> can discriminate between true and false features according to their respective categories.</p>
    <p>In the training process, the true data feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> is regarded as a negative sample and the false feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math> is regarded as a positive sample, input data features (true data feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math>, false feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math>) and one-hot encoded labels 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         y 
       </mi> 
      </mstyle> 
     </math>, and output the probability that the feature is judged as a positive sample, i.e., the probability that the feature comes from the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. The corresponding adversarial loss function is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           d 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mo>
         − 
       </mo> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi mathvariant="double-struck">
            E 
          </mi> 
          <mrow> 
           <mstyle mathvariant="bold" mathsize="normal"> 
            <mi>
              Z 
            </mi> 
           </mstyle> 
           <mo>
             ~ 
           </mo> 
           <mi>
             p 
           </mi> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mstyle mathvariant="bold" mathsize="normal"> 
             <mi>
               Z 
             </mi> 
            </mstyle> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
         </msub> 
         <mrow> 
          <mo>
            [ 
          </mo> 
          <mrow> 
           <msup> 
            <mrow> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <mn>
                 1 
               </mn> 
               <mo>
                 − 
               </mo> 
               <mi>
                 D 
               </mi> 
               <mrow> 
                <mo>
                  ( 
                </mo> 
                <mrow> 
                 <mstyle mathvariant="bold" mathsize="normal"> 
                  <mi>
                    Z 
                  </mi> 
                 </mstyle> 
                 <mo>
                   | 
                 </mo> 
                 <mstyle mathvariant="bold" mathsize="normal"> 
                  <mi>
                    y 
                  </mi> 
                 </mstyle> 
                </mrow> 
                <mo>
                  ) 
                </mo> 
               </mrow> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mn>
              2 
            </mn> 
           </msup> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi mathvariant="double-struck">
            E 
          </mi> 
          <mrow> 
           <mstyle mathvariant="bold" mathsize="normal"> 
            <msup> 
             <mi>
               Z 
             </mi> 
             <mo>
               ′ 
             </mo> 
            </msup> 
           </mstyle> 
           <mo>
             ~ 
           </mo> 
           <mi>
             p 
           </mi> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mstyle mathvariant="bold" mathsize="normal"> 
             <msup> 
              <mi>
                Z 
              </mi> 
              <mo>
                ′ 
              </mo> 
             </msup> 
            </mstyle> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
         </msub> 
         <mrow> 
          <mo>
            [ 
          </mo> 
          <mrow> 
           <mi>
             D 
           </mi> 
           <msup> 
            <mrow> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <msup> 
                 <mi>
                   Z 
                 </mi> 
                 <mo>
                   ′ 
                 </mo> 
                </msup> 
               </mstyle> 
               <mo>
                 | 
               </mo> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <mi>
                  y 
                </mi> 
               </mstyle> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mn>
              2 
            </mn> 
           </msup> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mtext>
         , 
       </mtext> 
      </mrow> 
     </math> (1)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mstyle mathvariant="bold" mathsize="normal"> 
        <mi>
          Z 
        </mi> 
       </mstyle> 
       <mo>
         = 
       </mo> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           X 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> denotes the real data features extracted from the feature extractor, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mstyle mathvariant="bold" mathsize="normal"> 
        <msup> 
         <mi>
           Z 
         </mi> 
         <mo>
           ′ 
         </mo> 
        </msup> 
       </mstyle> 
       <mo>
         = 
       </mo> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mi>
          ε 
        </mi> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> denotes the false features generated from the distribution generator and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ε 
      </mi> 
     </math> is a random noise sample from a uniform distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <mn>
           0 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           1 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> denotes the real feature distribution generated by the raw data 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         X 
       </mi> 
      </mstyle> 
     </math> through the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> denotes the reference distribution generated by random noise 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ε 
      </mi> 
     </math> through the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. This adversarial loss function is mainly used to measure the ability of the discriminator to correctly discriminate.</p>
    <p>Feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>: The feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is mainly used to extract real data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> from local raw data, and when it inputs local raw data 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         X 
       </mi> 
      </mstyle> 
     </math>, it outputs extracted feature information 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math>. During the ALNs training, the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> extracted by the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> needs to be progressively aligned to the reference distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, i.e., given a trained discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> with fixed parameters, when the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is closer to the reference distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, the more likely the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> fails to correctly discriminate the real data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> from the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. At this point the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is used to measure the gap between the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> and the reference distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. The corresponding adversarial loss function of the feature extractor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           f 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           f 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <msub> 
        <mi mathvariant="double-struck">
          E 
        </mi> 
        <mrow> 
         <mstyle mathvariant="bold" mathsize="normal"> 
          <mi>
            Z 
          </mi> 
         </mstyle> 
         <mo>
           ~ 
         </mo> 
         <mi>
           p 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
       </msub> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <msup> 
          <mrow> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <mn>
               1 
             </mn> 
             <mo>
               − 
             </mo> 
             <mi>
               D 
             </mi> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <mi>
                  Z 
                </mi> 
               </mstyle> 
               <mo>
                 | 
               </mo> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <mi>
                  y 
                </mi> 
               </mstyle> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </msup> 
        </mrow> 
        <mo>
          ] 
        </mo> 
       </mrow> 
       <mtext>
         , 
       </mtext> 
      </mrow> 
     </math> (2)</p>
    <p>where the discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> outputs the probability that the features come from the generated distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. This adversarial loss function indicates that the more likely the discriminator fails to correctly discriminate the true features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math> from the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, the closer the feature distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is to the reference distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>.</p>
    <p>Distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>: The distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is mainly used to generate the dynamic reference distribution 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         p 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <msup> 
          <mi>
            Z 
          </mi> 
          <mo>
            ′ 
          </mo> 
         </msup> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> and the corresponding generated features 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math> (also known as spurious features). It inputs random noise 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ε 
      </mi> 
     </math> and one-hot encoded true label 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         y 
       </mi> 
      </mstyle> 
     </math>, and it outputs false feature 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <msup> 
        <mi>
          Z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
      </mstyle> 
     </math> with the same dimension as the true feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math>. In the training process, given a trained discriminator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         D 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> with fixed parameters, the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           g 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is primarily employed to adjust the parameters of the distribution generator 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         G 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, and the specific distribution generator adversarial loss function 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           g 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           g 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mo>
         − 
       </mo> 
       <msub> 
        <mi mathvariant="double-struck">
          E 
        </mi> 
        <mrow> 
         <mstyle mathvariant="bold" mathsize="normal"> 
          <msup> 
           <mi>
             Z 
           </mi> 
           <mo>
             ′ 
           </mo> 
          </msup> 
         </mstyle> 
         <mo>
           ~ 
         </mo> 
         <mi>
           p 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <msup> 
            <mi>
              Z 
            </mi> 
            <mo>
              ′ 
            </mo> 
           </msup> 
          </mstyle> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
       </msub> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <msup> 
          <mrow> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <mn>
               1 
             </mn> 
             <mo>
               − 
             </mo> 
             <mi>
               D 
             </mi> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <msup> 
                 <mi>
                   Z 
                 </mi> 
                 <mo>
                   ′ 
                 </mo> 
                </msup> 
               </mstyle> 
               <mo>
                 | 
               </mo> 
               <mstyle mathvariant="bold" mathsize="normal"> 
                <mi>
                  y 
                </mi> 
               </mstyle> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </msup> 
        </mrow> 
        <mo>
          ] 
        </mo> 
       </mrow> 
       <mtext>
         . 
       </mtext> 
      </mrow> 
     </math> (3)</p>
    <p>The above three adversarial loss functions constitute the loss function of FedALN, which indirectly reduces the differences in feature distributions between clients by introducing reference distributions. Training federated prediction models on this basis will be beneficial to avoid the impact of inter-client domain distribution differences on model performance, the FedADG mechanism <xref ref-type="bibr" rid="scirp.141927-16">
      [16]
     </xref> is proposed based on FedALN. This mechanism sets the classifier 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> for constructing a complete prediction model. It inputs real data features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         Z 
       </mi> 
      </mstyle> 
     </math>, it outputs prediction labels 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, and uses the traditional cross-entropy loss as the loss function of the classifier for model training. The specific FedADG objective function is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mtext>
           FedADG 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           d 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         + 
       </mo> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           g 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         + 
       </mo> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <mi>
           f 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         + 
       </mo> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           e 
         </mi> 
         <mi>
           r 
         </mi> 
         <mi>
           r 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         , 
       </mo> 
      </mrow> 
     </math> (4)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           e 
         </mi> 
         <mi>
           r 
         </mi> 
         <mi>
           r 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mi>
          N 
        </mi> 
       </mfrac> 
       <mstyle displaystyle="true"> 
        <msubsup> 
         <mo>
           ∑ 
         </mo> 
         <mrow> 
          <mi>
            i 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mi>
           N 
         </mi> 
        </msubsup> 
        <mrow> 
         <mi>
           L 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             C 
           </mi> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <mi>
               F 
             </mi> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <msub> 
                <mi>
                  X 
                </mi> 
                <mi>
                  i 
                </mi> 
               </msub> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
           <mo>
             , 
           </mo> 
           <msub> 
            <mi>
              Y 
            </mi> 
            <mi>
              i 
            </mi> 
           </msub> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
       </mstyle> 
      </mrow> 
     </math> denotes the classifier loss function, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mo>
           ⋅ 
         </mo> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋅ 
         </mo> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> denotes the cross-entropy loss, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mn>
         0 
       </mn> 
       <mo>
         &lt; 
       </mo> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <mo>
         , 
       </mo> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <mo>
         &lt; 
       </mo> 
       <mn>
         1 
       </mn> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <mo>
         + 
       </mo> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         1 
       </mn> 
      </mrow> 
     </math>.</p>
   </sec>
  </sec><sec id="s3">
   <title>3. Stable Federated Adversarial Domain Generalization (Stable-FedADG)</title>
   <p>In this section, we will further improve on FedADG and propose a Stable-FedADG method, which combines FedALN and stable prediction loss function to further improve the generalization performance of the model through intra-client stable feature learning and inter-client domain adversarial alignment. This section describes the model and algorithm of Stable-FedADG in detail.</p>
   <sec id="s3_1">
    <title>3.1. Stable-FedADG Model</title>
    <p>Now consider that there are 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        K 
      </mi> 
     </math> clients, each of which collects its local data 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             X 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             Y 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> independently, then the objective function of the above FedADG can be reformulated into the following form:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mtext>
           FedADG 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mstyle displaystyle="true"> 
        <munderover> 
         <mo>
           ∑ 
         </mo> 
         <mrow> 
          <mi>
            k 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mi>
           K 
         </mi> 
        </munderover> 
        <mrow> 
         <mfrac> 
          <mrow> 
           <msub> 
            <mi>
              N 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
          <mi>
            N 
          </mi> 
         </mfrac> 
        </mrow> 
       </mstyle> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              d 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              g 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            λ 
          </mi> 
          <mn>
            0 
          </mn> 
         </msub> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              f 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            λ 
          </mi> 
          <mn>
            1 
          </mn> 
         </msub> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             e 
           </mi> 
           <mi>
             r 
           </mi> 
           <msub> 
            <mi>
              r 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         , 
       </mo> 
      </mrow> 
     </math> (5)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <msub> 
          <mi>
            d 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <msub> 
          <mi>
            g 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           a 
         </mi> 
         <mi>
           d 
         </mi> 
         <mi>
           v 
         </mi> 
         <mtext>
           _ 
         </mtext> 
         <msub> 
          <mi>
            f 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denote the corresponding local ALNs adversarial losses, which can be obtained by using the client’s local data, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           e 
         </mi> 
         <mi>
           r 
         </mi> 
         <msub> 
          <mi>
            r 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </mfrac> 
       <mstyle displaystyle="true"> 
        <msubsup> 
         <mo>
           ∑ 
         </mo> 
         <mrow> 
          <mi>
            i 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mrow> 
          <msub> 
           <mi>
             N 
           </mi> 
           <mi>
             k 
           </mi> 
          </msub> 
         </mrow> 
        </msubsup> 
        <mrow> 
         <mi>
           L 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             C 
           </mi> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <mi>
               F 
             </mi> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <msub> 
                <mi>
                  X 
                </mi> 
                <mrow> 
                 <mi>
                   i 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   k 
                 </mi> 
                </mrow> 
               </msub> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
           <mo>
             , 
           </mo> 
           <msub> 
            <mi>
              Y 
            </mi> 
            <mrow> 
             <mi>
               i 
             </mi> 
             <mo>
               , 
             </mo> 
             <mi>
               k 
             </mi> 
            </mrow> 
           </msub> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
       </mstyle> 
      </mrow> 
     </math> denotes the local classifier loss function.</p>
    <p>FedADG aligns the inter-client feature distributions based on FedALN, eliminating the impact of inter-client feature distribution differences on model performance, but this distribution alignment operation is performed on a client-by-client basis and does not take into account the domain bias and imbalance problems that may also exist within a single client. Since a single client may contain multiple source domain data and there usually is no significant domain labels for intra-client domain distribution alignment, we introduce the idea of SL <xref ref-type="bibr" rid="scirp.141927-21">
      [21]
     </xref> within a single client, which is used to extract stable features by removing spurious correlations between feature variables.</p>
    <p>Specifically, in the k-th client, we use the stable predictive loss function 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            S 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> instead of the traditional cross-entropy loss 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mi>
           e 
         </mi> 
         <mi>
           r 
         </mi> 
         <msub> 
          <mi>
            r 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> as the loss function of the local classifier 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, and the specific expression of the stable predictive loss function 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            S 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is as follows</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mtable columnalign="left"> 
       <mtr> 
        <mtd> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <msub> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           = 
         </mo> 
         <mfrac> 
          <mn>
            1 
          </mn> 
          <mrow> 
           <msub> 
            <mi>
              N 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </mfrac> 
         <mstyle displaystyle="true"> 
          <munderover> 
           <mo>
             ∑ 
           </mo> 
           <mrow> 
            <mi>
              i 
            </mi> 
            <mo>
              = 
            </mo> 
            <mn>
              1 
            </mn> 
           </mrow> 
           <mrow> 
            <msub> 
             <mi>
               N 
             </mi> 
             <mi>
               k 
             </mi> 
            </msub> 
           </mrow> 
          </munderover> 
          <mrow> 
           <msubsup> 
            <mi>
              w 
            </mi> 
            <mrow> 
             <mi>
               i 
             </mi> 
             <mo>
               , 
             </mo> 
             <mi>
               k 
             </mi> 
            </mrow> 
            <mo>
              * 
            </mo> 
           </msubsup> 
          </mrow> 
         </mstyle> 
         <mi>
           L 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             C 
           </mi> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <mi>
               F 
             </mi> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <msub> 
                <mstyle mathvariant="bold" mathsize="normal"> 
                 <mi>
                   X 
                 </mi> 
                </mstyle> 
                <mrow> 
                 <mi>
                   i 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   k 
                 </mi> 
                </mrow> 
               </msub> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
           <mo>
             , 
           </mo> 
           <msub> 
            <mi>
              y 
            </mi> 
            <mrow> 
             <mi>
               i 
             </mi> 
             <mo>
               , 
             </mo> 
             <mi>
               k 
             </mi> 
            </mrow> 
           </msub> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
        </mtd> 
       </mtr> 
       <mtr> 
        <mtd> 
         <msubsup> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
          <mo>
            * 
          </mo> 
         </msubsup> 
         <mo>
           = 
         </mo> 
         <munder> 
          <mrow> 
           <mi>
             arg 
           </mi> 
           <mi>
             min 
           </mi> 
          </mrow> 
          <mrow> 
           <msub> 
            <mstyle mathvariant="bold" mathsize="normal"> 
             <mi>
               w 
             </mi> 
            </mstyle> 
            <mi>
              k 
            </mi> 
           </msub> 
           <mo>
             ∈ 
           </mo> 
           <msub> 
            <mi>
              Δ 
            </mi> 
            <mrow> 
             <msub> 
              <mi>
                N 
              </mi> 
              <mi>
                k 
              </mi> 
             </msub> 
            </mrow> 
           </msub> 
          </mrow> 
         </munder> 
         <mstyle displaystyle="true"> 
          <munder> 
           <mo>
             ∑ 
           </mo> 
           <mrow> 
            <mn>
              1 
            </mn> 
            <mo>
              ≤ 
            </mo> 
            <mi>
              m 
            </mi> 
            <mo>
              &lt; 
            </mo> 
            <mi>
              h 
            </mi> 
            <mo>
              ≤ 
            </mo> 
            <msub> 
             <mi>
               M 
             </mi> 
             <mi>
               Z 
             </mi> 
            </msub> 
           </mrow> 
          </munder> 
          <mrow> 
           <msubsup> 
            <mrow> 
             <mrow> 
              <mo>
                ‖ 
              </mo> 
              <mrow> 
               <msub> 
                <mover accent="true"> 
                 <mi>
                   Σ 
                 </mi> 
                 <mo>
                   ^ 
                 </mo> 
                </mover> 
                <mrow> 
                 <msub> 
                  <mstyle mathvariant="bold" mathsize="normal"> 
                   <mi>
                     Z 
                   </mi> 
                  </mstyle> 
                  <mrow> 
                   <mi>
                     k 
                   </mi> 
                   <mo>
                     , 
                   </mo> 
                   <mo>
                     : 
                   </mo> 
                   <mo>
                     , 
                   </mo> 
                   <mi>
                     m 
                   </mi> 
                  </mrow> 
                 </msub> 
                 <msub> 
                  <mstyle mathvariant="bold" mathsize="normal"> 
                   <mi>
                     Z 
                   </mi> 
                  </mstyle> 
                  <mrow> 
                   <mi>
                     k 
                   </mi> 
                   <mo>
                     , 
                   </mo> 
                   <mo>
                     : 
                   </mo> 
                   <mo>
                     , 
                   </mo> 
                   <mi>
                     h 
                   </mi> 
                  </mrow> 
                 </msub> 
                 <mo>
                   ; 
                 </mo> 
                 <msub> 
                  <mstyle mathvariant="bold" mathsize="normal"> 
                   <mi>
                     w 
                   </mi> 
                  </mstyle> 
                  <mi>
                    k 
                  </mi> 
                 </msub> 
                </mrow> 
               </msub> 
              </mrow> 
              <mo>
                ‖ 
              </mo> 
             </mrow> 
            </mrow> 
            <mi>
              F 
            </mi> 
            <mn>
              2 
            </mn> 
           </msubsup> 
          </mrow> 
         </mstyle> 
         <mo>
           , 
         </mo> 
        </mtd> 
       </mtr> 
      </mtable> 
     </math> (6)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mtext>
          Δ 
        </mtext> 
        <mrow> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          { 
        </mo> 
        <mrow> 
         <msub> 
          <mstyle mathvariant="bold" mathsize="normal"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           ∈ 
         </mo> 
         <msubsup> 
          <mi>
            ℝ 
          </mi> 
          <mo>
            + 
          </mo> 
          <mrow> 
           <msub> 
            <mi>
              N 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msubsup> 
         <mo>
           | 
         </mo> 
         <mstyle displaystyle="true"> 
          <msubsup> 
           <mo>
             ∑ 
           </mo> 
           <mrow> 
            <mi>
              i 
            </mi> 
            <mo>
              = 
            </mo> 
            <mn>
              1 
            </mn> 
           </mrow> 
           <mrow> 
            <msub> 
             <mi>
               N 
             </mi> 
             <mi>
               k 
             </mi> 
            </msub> 
           </mrow> 
          </msubsup> 
          <mrow> 
           <msub> 
            <mi>
              w 
            </mi> 
            <mrow> 
             <mi>
               i 
             </mi> 
             <mo>
               , 
             </mo> 
             <mi>
               k 
             </mi> 
            </mrow> 
           </msub> 
          </mrow> 
         </mstyle> 
         <mo>
           = 
         </mo> 
         <msub> 
          <mi>
            N 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          } 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          w 
        </mi> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           k 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         ∈ 
       </mo> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           w 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> denotes the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        i 
      </mi> 
     </math>-th sample</p>
    <p>weight of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        k 
      </mi> 
     </math>-th client, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         F 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is the feature extractor, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is the classifier, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mo>
           ⋅ 
         </mo> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋅ 
         </mo> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> is the cross-entropy loss, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           m 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denotes the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        m 
      </mi> 
     </math>-th feature variable in the feature space of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        k 
      </mi> 
     </math>-th client, and similarly, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           h 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denotes the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        h 
      </mi> 
     </math>-th feature variable in the feature space of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        k 
      </mi> 
     </math>-th client, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mtext></mtext> 
        <mover accent="true"> 
         <mtext>
           Σ 
         </mtext> 
         <mo>
           ^ 
         </mo> 
        </mover> 
        <mrow> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             m 
           </mi> 
          </mrow> 
         </msub> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             h 
           </mi> 
          </mrow> 
         </msub> 
         <mo>
           ; 
         </mo> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denotes the weighted partial cross-covariance matrix of the feature variables 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           m 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           h 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>, which is used to measure the independence between 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           m 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           h 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>. The specific expression of 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mtext></mtext> 
        <mover accent="true"> 
         <mtext>
           Σ 
         </mtext> 
         <mo>
           ^ 
         </mo> 
        </mover> 
        <mrow> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             m 
           </mi> 
          </mrow> 
         </msub> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             h 
           </mi> 
          </mrow> 
         </msub> 
         <mo>
           ; 
         </mo> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is as follows:</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"> <mtable> 
       <mtr> 
        <mtd> 
         <msub> 
          <mover accent="true"> 
           <mi>
             Σ 
           </mi> 
           <mo>
             ^ 
           </mo> 
          </mover> 
          <mrow> 
           <msub> 
            <mstyle mathsize="normal" mathvariant="bold"> 
             <mi>
               Z 
             </mi> 
            </mstyle> 
            <mrow> 
             <mi>
               k 
             </mi> 
             <mo>
               , 
             </mo> 
             <mo>
               : 
             </mo> 
             <mo>
               , 
             </mo> 
             <mi>
               m 
             </mi> 
            </mrow> 
           </msub> 
           <msub> 
            <mstyle mathsize="normal" mathvariant="bold"> 
             <mi>
               Z 
             </mi> 
            </mstyle> 
            <mrow> 
             <mi>
               k 
             </mi> 
             <mo>
               , 
             </mo> 
             <mo>
               : 
             </mo> 
             <mo>
               , 
             </mo> 
             <mi>
               h 
             </mi> 
            </mrow> 
           </msub> 
           <mo>
             ; 
           </mo> 
           <msub> 
            <mstyle mathsize="normal" mathvariant="bold"> 
             <mi>
               w 
             </mi> 
            </mstyle> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           = 
         </mo> 
         <mfrac> 
          <mn>
            1 
          </mn> 
          <mrow> 
           <msub> 
            <mi>
              N 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </mfrac> 
         <mstyle displaystyle="true"> 
          <munderover> 
           <mo>
             ∑ 
           </mo> 
           <mrow> 
            <mi>
              i 
            </mi> 
            <mo>
              = 
            </mo> 
            <mn>
              1 
            </mn> 
           </mrow> 
           <mrow> 
            <msub> 
             <mi>
               N 
             </mi> 
             <mi>
               k 
             </mi> 
            </msub> 
           </mrow> 
          </munderover> 
          <mrow> 
           <mrow> 
            <mo>
              [ 
            </mo> 
            <mrow> 
             <msup> 
              <mrow> 
               <mrow> 
                <mo>
                  ( 
                </mo> 
                <mrow> 
                 <msub> 
                  <mi>
                    w 
                  </mi> 
                  <mrow> 
                   <mi>
                     i 
                   </mi> 
                   <mo>
                     , 
                   </mo> 
                   <mi>
                     k 
                   </mi> 
                  </mrow> 
                 </msub> 
                 <mstyle mathsize="normal" mathvariant="bold"> 
                  <mi>
                    u 
                  </mi> 
                 </mstyle> 
                 <mrow> 
                  <mo>
                    ( 
                  </mo> 
                  <mrow> 
                   <msub> 
                    <mi>
                      Z 
                    </mi> 
                    <mrow> 
                     <mi>
                       k 
                     </mi> 
                     <mo>
                       , 
                     </mo> 
                     <mi>
                       i 
                     </mi> 
                     <mo>
                       , 
                     </mo> 
                     <mi>
                       m 
                     </mi> 
                    </mrow> 
                   </msub> 
                  </mrow> 
                  <mo>
                    ) 
                  </mo> 
                 </mrow> 
                 <mo>
                   − 
                 </mo> 
                 <mfrac> 
                  <mn>
                    1 
                  </mn> 
                  <mrow> 
                   <msub> 
                    <mi>
                      N 
                    </mi> 
                    <mi>
                      k 
                    </mi> 
                   </msub> 
                  </mrow> 
                 </mfrac> 
                 <mstyle displaystyle="true"> 
                  <munderover> 
                   <mo>
                     ∑ 
                   </mo> 
                   <mrow> 
                    <mi>
                      j 
                    </mi> 
                    <mo>
                      = 
                    </mo> 
                    <mn>
                      1 
                    </mn> 
                   </mrow> 
                   <mrow> 
                    <msub> 
                     <mi>
                       N 
                     </mi> 
                     <mi>
                       k 
                     </mi> 
                    </msub> 
                   </mrow> 
                  </munderover> 
                  <mrow> 
                   <msub> 
                    <mi>
                      w 
                    </mi> 
                    <mrow> 
                     <mi>
                       j 
                     </mi> 
                     <mo>
                       , 
                     </mo> 
                     <mi>
                       k 
                     </mi> 
                    </mrow> 
                   </msub> 
                  </mrow> 
                 </mstyle> 
                 <mstyle mathsize="normal" mathvariant="bold"> 
                  <mi>
                    u 
                  </mi> 
                 </mstyle> 
                 <mrow> 
                  <mo>
                    ( 
                  </mo> 
                  <mrow> 
                   <msub> 
                    <mi>
                      Z 
                    </mi> 
                    <mrow> 
                     <mi>
                       k 
                     </mi> 
                     <mo>
                       , 
                     </mo> 
                     <mi>
                       j 
                     </mi> 
                     <mo>
                       , 
                     </mo> 
                     <mi>
                       m 
                     </mi> 
                    </mrow> 
                   </msub> 
                  </mrow> 
                  <mo>
                    ) 
                  </mo> 
                 </mrow> 
                </mrow> 
                <mo>
                  ) 
                </mo> 
               </mrow> 
              </mrow> 
              <mtext>
                T 
              </mtext> 
             </msup> 
            </mrow> 
           </mrow> 
          </mrow> 
         </mstyle> 
        </mtd> 
       </mtr> 
       <mtr> 
        <mtd> 
         <mtext>
             
         </mtext> 
         <mtext>
             
         </mtext> 
         <mtext>
             
         </mtext> 
         <mo>
           × 
         </mo> 
         <mrow> 
          <mrow> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <msub> 
              <mi>
                w 
              </mi> 
              <mrow> 
               <mi>
                 i 
               </mi> 
               <mo>
                 , 
               </mo> 
               <mi>
                 k 
               </mi> 
              </mrow> 
             </msub> 
             <mstyle mathsize="normal" mathvariant="bold"> 
              <mi>
                v 
              </mi> 
             </mstyle> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <msub> 
                <mi>
                  Z 
                </mi> 
                <mrow> 
                 <mi>
                   k 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   j 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   h 
                 </mi> 
                </mrow> 
               </msub> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
             <mo>
               − 
             </mo> 
             <mfrac> 
              <mn>
                1 
              </mn> 
              <mrow> 
               <msub> 
                <mi>
                  N 
                </mi> 
                <mi>
                  k 
                </mi> 
               </msub> 
              </mrow> 
             </mfrac> 
             <mstyle displaystyle="true"> 
              <munderover> 
               <mo>
                 ∑ 
               </mo> 
               <mrow> 
                <mi>
                  j 
                </mi> 
                <mo>
                  = 
                </mo> 
                <mn>
                  1 
                </mn> 
               </mrow> 
               <mrow> 
                <msub> 
                 <mi>
                   N 
                 </mi> 
                 <mi>
                   k 
                 </mi> 
                </msub> 
               </mrow> 
              </munderover> 
              <mrow> 
               <msub> 
                <mi>
                  w 
                </mi> 
                <mrow> 
                 <mi>
                   j 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   k 
                 </mi> 
                </mrow> 
               </msub> 
              </mrow> 
             </mstyle> 
             <mstyle mathsize="normal" mathvariant="bold"> 
              <mi>
                v 
              </mi> 
             </mstyle> 
             <mrow> 
              <mo>
                ( 
              </mo> 
              <mrow> 
               <msub> 
                <mi>
                  Z 
                </mi> 
                <mrow> 
                 <mi>
                   k 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   j 
                 </mi> 
                 <mo>
                   , 
                 </mo> 
                 <mi>
                   h 
                 </mi> 
                </mrow> 
               </msub> 
              </mrow> 
              <mo>
                ) 
              </mo> 
             </mrow> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
        </mtd> 
       </mtr> 
      </mtable> 
     </math> (7)</p>
    <p>where</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mstyle mathvariant="bold" mathsize="normal"> 
        <mi>
          u 
        </mi> 
       </mstyle> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            u 
          </mi> 
          <mn>
            1 
          </mn> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            u 
          </mi> 
          <mn>
            2 
          </mn> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋯ 
         </mo> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            u 
          </mi> 
          <mrow> 
           <msub> 
            <mi>
              n 
            </mi> 
            <mi>
              A 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         , 
       </mo> 
       <msub> 
        <mi>
          u 
        </mi> 
        <mi>
          j 
        </mi> 
       </msub> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         ∈ 
       </mo> 
       <msub> 
        <mi>
          ℋ 
        </mi> 
        <mrow> 
         <mtext>
           RFF 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         , 
       </mo> 
       <mo>
         ∀ 
       </mo> 
       <mi>
         j 
       </mi> 
       <mo>
         , 
       </mo> 
      </mrow> 
     </math></p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mstyle mathvariant="bold" mathsize="normal"> 
        <mi>
          v 
        </mi> 
       </mstyle> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            v 
          </mi> 
          <mn>
            1 
          </mn> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            v 
          </mi> 
          <mn>
            2 
          </mn> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋯ 
         </mo> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            v 
          </mi> 
          <mrow> 
           <msub> 
            <mi>
              n 
            </mi> 
            <mi>
              B 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         , 
       </mo> 
       <msub> 
        <mi>
          v 
        </mi> 
        <mi>
          j 
        </mi> 
       </msub> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         ∈ 
       </mo> 
       <msub> 
        <mi>
          ℋ 
        </mi> 
        <mrow> 
         <mtext>
           RFF 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         , 
       </mo> 
       <mo>
         ∀ 
       </mo> 
       <mi>
         j 
       </mi> 
       <mo>
         . 
       </mo> 
      </mrow> 
     </math></p>
    <p>here, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          Z 
        </mi> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           m 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> denotes the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        i 
      </mi> 
     </math>-th sample of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        m 
      </mi> 
     </math>-th feature variable from the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        k 
      </mi> 
     </math>-th client. The vectors 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         u 
       </mi> 
      </mstyle> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyle mathvariant="bold" mathsize="normal"> 
       <mi>
         v 
       </mi> 
      </mstyle> 
     </math> are the Random Fourier Features mapping functions from the Random Fourier Feature function space 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℋ 
        </mi> 
        <mrow> 
         <mtext>
           RFF 
         </mtext> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>, which is employed to capture the nonlinear dependence among the complex features, and the Random Fourier Feature function space 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℋ 
        </mi> 
        <mrow> 
         <mtext>
           RFF 
         </mtext> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℋ 
        </mi> 
        <mrow> 
         <mtext>
           RFF 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          { 
        </mo> 
        <mrow> 
         <mi>
           h 
         </mi> 
         <mo>
           : 
         </mo> 
         <mi>
           x 
         </mi> 
         <mo>
           → 
         </mo> 
         <msqrt> 
          <mn>
            2 
          </mn> 
         </msqrt> 
         <mi>
           cos 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             ω 
           </mi> 
           <mi>
             x 
           </mi> 
           <mo>
             + 
           </mo> 
           <mi>
             ϕ 
           </mi> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           | 
         </mo> 
         <mi>
           ω 
         </mi> 
         <mo>
           ~ 
         </mo> 
         <mi>
           N 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mn>
             0 
           </mn> 
           <mo>
             , 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mi>
           ϕ 
         </mi> 
         <mo>
           ~ 
         </mo> 
         <mtext>
           Uniform 
         </mtext> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mn>
             0 
           </mn> 
           <mo>
             , 
           </mo> 
           <mn>
             2 
           </mn> 
           <mi>
             π 
           </mi> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          } 
        </mo> 
       </mrow> 
       <mo>
         . 
       </mo> 
      </mrow> 
     </math> (8)</p>
    <p>The core of SL is to remove the dependency between features by sample reweighting, i.e., learning the sample weights 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           w 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> to make the weighted partial cross-covariance matrix 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mtext></mtext> 
        <mover accent="true"> 
         <mtext>
           Σ 
         </mtext> 
         <mo>
           ^ 
         </mo> 
        </mover> 
        <mrow> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             m 
           </mi> 
          </mrow> 
         </msub> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             h 
           </mi> 
          </mrow> 
         </msub> 
         <mo>
           ; 
         </mo> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> converge to 0. And the Frobenius norm is used to construct the independence test statistic, i.e., when</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          I 
        </mi> 
        <mrow> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             m 
           </mi> 
          </mrow> 
         </msub> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             Z 
           </mi> 
          </mstyle> 
          <mrow> 
           <mi>
             k 
           </mi> 
           <mo>
             , 
           </mo> 
           <mo>
             : 
           </mo> 
           <mo>
             , 
           </mo> 
           <mi>
             h 
           </mi> 
          </mrow> 
         </msub> 
         <mo>
           ; 
         </mo> 
         <msub> 
          <mstyle mathsize="normal" mathvariant="bold"> 
           <mi>
             w 
           </mi> 
          </mstyle> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <msubsup> 
        <mrow> 
         <mrow> 
          <mo>
            ‖ 
          </mo> 
          <mrow> 
           <msub> 
            <mtext></mtext> 
            <mover accent="true"> 
             <mtext>
               Σ 
             </mtext> 
             <mo>
               ^ 
             </mo> 
            </mover> 
            <mrow> 
             <msub> 
              <mstyle mathsize="normal" mathvariant="bold"> 
               <mi>
                 Z 
               </mi> 
              </mstyle> 
              <mrow> 
               <mi>
                 k 
               </mi> 
               <mo>
                 , 
               </mo> 
               <mo>
                 : 
               </mo> 
               <mo>
                 , 
               </mo> 
               <mi>
                 m 
               </mi> 
              </mrow> 
             </msub> 
             <msub> 
              <mstyle mathsize="normal" mathvariant="bold"> 
               <mi>
                 Z 
               </mi> 
              </mstyle> 
              <mrow> 
               <mi>
                 k 
               </mi> 
               <mo>
                 , 
               </mo> 
               <mo>
                 : 
               </mo> 
               <mo>
                 , 
               </mo> 
               <mi>
                 h 
               </mi> 
              </mrow> 
             </msub> 
             <mo>
               ; 
             </mo> 
             <msub> 
              <mstyle mathsize="normal" mathvariant="bold"> 
               <mi>
                 w 
               </mi> 
              </mstyle> 
              <mi>
                k 
              </mi> 
             </msub> 
            </mrow> 
           </msub> 
          </mrow> 
          <mo>
            ‖ 
          </mo> 
         </mrow> 
        </mrow> 
        <mi>
          F 
        </mi> 
        <mn>
          2 
        </mn> 
       </msubsup> 
      </mrow> 
     </math> tends to 0, the feature variables 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           m 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           Z 
         </mi> 
        </mstyle> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           , 
         </mo> 
         <mo>
           : 
         </mo> 
         <mo>
           , 
         </mo> 
         <mi>
           h 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math></p>
    <p>tend to be independent. Within a single client, for all feature variables, we learn the optimal 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mstyle mathvariant="bold" mathsize="normal"> 
         <mi>
           w 
         </mi> 
        </mstyle> 
        <mi>
          k 
        </mi> 
        <mtext>
          * 
        </mtext> 
       </msubsup> 
      </mrow> 
     </math> by equation (0) to minimize the linear and nonlinear dependencies of all features within the client, and learn the stable features to eliminate the impact of feature distribution bias of intra-client on the model performance.</p>
    <p>In summary, our proposed Stable-FedADG approach consists of two main aspects. First, within a single client, we use the stable prediction loss function 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <msub> 
          <mi>
            S 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> as the loss function of the local classifier 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         C 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mo>
          ⋅ 
        </mo> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> to learn stable features, and second, we base our method on FedALN to adversarially align inter-client domain distributions. The method simultaneously eliminates the effects caused by intra-client and inter-client domain distribution bias to learn domain-invariant features in the federated context and further improves the generalization performance of the model. The specific Stable-FedADG objective function is expressed as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ℒ 
        </mi> 
        <mrow> 
         <mtext>
           Stable-FedADG 
         </mtext> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mstyle displaystyle="true"> 
        <munderover> 
         <mo>
           ∑ 
         </mo> 
         <mrow> 
          <mi>
            k 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mi>
           K 
         </mi> 
        </munderover> 
        <mrow> 
         <mfrac> 
          <mrow> 
           <msub> 
            <mi>
              N 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
          <mi>
            N 
          </mi> 
         </mfrac> 
        </mrow> 
       </mstyle> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              d 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              g 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            λ 
          </mi> 
          <mn>
            0 
          </mn> 
         </msub> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <mi>
             a 
           </mi> 
           <mi>
             d 
           </mi> 
           <mi>
             v 
           </mi> 
           <mtext>
             _ 
           </mtext> 
           <msub> 
            <mi>
              f 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            λ 
          </mi> 
          <mn>
            1 
          </mn> 
         </msub> 
         <msub> 
          <mi>
            ℒ 
          </mi> 
          <mrow> 
           <msub> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
           </msub> 
          </mrow> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         . 
       </mo> 
      </mrow> 
     </math> (9)</p>
   </sec>
   <sec id="s3_2">
    <title>3.2. Stable-FedADG Algorithm</title>
    <p>The detailed training process of the Stable-FedADG method is shown in Algorithm 1. The training process of Stable-FedADG consists of two main parts: server aggregation and client update.</p>
    <fig id="fig1" position="float">
     <label>Figure 1</label>
     <caption>
      <title>Server aggregation: The server is mainly used to aggregate the model parameters uploaded by each client and update the global model. Once the global model is updated, it is sent back to each client for the next round of model training. Each client is required to upload only three network components: the feature extractor 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   F
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math>, the classifier 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   C
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> and the distribution generator 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   G
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math>, along with their respective model parameters 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   β
  
         </mi>
  
         <mo>
          
   =
  
         </mo>
  
         <mrow>
   
          <mo>
           
    {
   
          </mo> 
   
          <mrow> 
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mi>
              f 
            </mi> 
    
           </msub> 
    
           <mo>
            
     ,
    
           </mo>
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mi>
              c 
            </mi> 
    
           </msub> 
    
           <mo>
            
     ,
    
           </mo>
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mi>
              g 
            </mi> 
    
           </msub> 
   
          </mrow> 
   
          <mo>
           
    }
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math>. Specifically, before training, the server first initializes the model parameters 

       <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
         
  β
 
        </mi>

       </math> and passes them to each client. During the training process, the server receives the model parameters from each client and updates the global model with the received client parameters, and then passes the updated global model to each client, and after several server-client iterations, the trained global model can be obtained, in which the feature extractor 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   F
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> and classifier 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   C
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> constitute the prediction model that can be used for prediction of unknown clients.Client update: The client is mainly responsible for training local models using local data. In the training process, the client first receives the global model from the server, and then utilizes the local data and the local discriminator 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   D
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> to train the local model 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    β
   
          </mi> 
   
          <mi>
           
    k
   
          </mi> 
  
         </msub> 
 
        </mrow>

       </math>. Specifically, the classifier 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   C
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> and the feature extractor 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   F
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> are trained using the stable prediction loss function 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    ℒ
   
          </mi> 
   
          <mrow> 
    
           <msub> 
     
            <mi>
              S 
            </mi> 
     
            <mi>
              k 
            </mi> 
    
           </msub> 
   
          </mrow> 
  
         </msub> 
 
        </mrow>

       </math>, and the saving and reloading method proposed in <xref ref-type="bibr" rid="scirp.141927-21">
        [21]
       </xref> is used to learn the sample weights during the training process. Then aligning the feature distribution to the reference distribution, the loss 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    λ
   
          </mi> 
   
          <mn>
           
    0
   
          </mn> 
  
         </msub> 
  
         <msub> 
   
          <mi>
           
    ℒ
   
          </mi> 
   
          <mrow> 
    
           <mi>
            
     a
    
           </mi>
    
           <mi>
            
     d
    
           </mi>
    
           <mi>
            
     v
    
           </mi>
    
           <mtext>
            
     _
    
           </mtext>
    
           <msub> 
     
            <mi>
              f 
            </mi> 
     
            <mi>
              k 
            </mi> 
    
           </msub> 
   
          </mrow> 
  
         </msub> 
  
         <mo>
          
   +
  
         </mo>
  
         <msub> 
   
          <mi>
           
    λ
   
          </mi> 
   
          <mn>
           
    1
   
          </mn> 
  
         </msub> 
  
         <msub> 
   
          <mi>
           
    ℒ
   
          </mi> 
   
          <mrow> 
    
           <msub> 
     
            <mi>
              S 
            </mi> 
     
            <mi>
              k 
            </mi> 
    
           </msub> 
   
          </mrow> 
  
         </msub> 
 
        </mrow>

       </math> is minimized by updating both the feature extractor 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   F
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> and the classifier 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   C
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math>. Meanwhile, the losses 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    ℒ
   
          </mi> 
   
          <mrow> 
    
           <mi>
            
     a
    
           </mi>
    
           <mi>
            
     d
    
           </mi>
    
           <mi>
            
     v
    
           </mi>
    
           <mtext>
            
     _
    
           </mtext>
    
           <msub> 
     
            <mi>
              d 
            </mi> 
     
            <mi>
              k 
            </mi> 
    
           </msub> 
   
          </mrow> 
  
         </msub> 
 
        </mrow>

       </math> and 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    ℒ
   
          </mi> 
   
          <mrow> 
    
           <mi>
            
     a
    
           </mi>
    
           <mi>
            
     d
    
           </mi>
    
           <mi>
            
     v
    
           </mi>
    
           <mtext>
            
     _
    
           </mtext>
    
           <msub> 
     
            <mi>
              g 
            </mi> 
     
            <mi>
              k 
            </mi> 
    
           </msub> 
   
          </mrow> 
  
         </msub> 
 
        </mrow>

       </math> are minimized by updating the discriminator 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   D
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> and the distribution generator 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <mi>
          
   G
  
         </mi>
  
         <mrow>
   
          <mo>
           
    (
   
          </mo> 
   
          <mo>
           
    ⋅
   
          </mo> 
   
          <mo>
           
    )
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math>, respectively. At the end of local training, the client sends the local model parameters 

       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
  
         <msub> 
   
          <mi>
           
    β
   
          </mi> 
   
          <mi>
           
    k
   
          </mi> 
  
         </msub> 
  
         <mo>
          
   =
  
         </mo>
  
         <mrow>
   
          <mo>
           
    {
   
          </mo> 
   
          <mrow> 
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mrow> 
             <msub> 
              <mi>
                f 
              </mi> 
              <mi>
                k 
              </mi> 
             </msub> 
            </mrow> 
    
           </msub> 
    
           <mo>
            
     ,
    
           </mo>
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mrow> 
             <msub> 
              <mi>
                c 
              </mi> 
              <mi>
                k 
              </mi> 
             </msub> 
            </mrow> 
    
           </msub> 
    
           <mo>
            
     ,
    
           </mo>
    
           <msub> 
     
            <mi>
              β 
            </mi> 
     
            <mrow> 
             <msub> 
              <mi>
                g 
              </mi> 
              <mi>
                k 
              </mi> 
             </msub> 
            </mrow> 
    
           </msub> 
   
          </mrow> 
   
          <mo>
           
    }
   
          </mo>
  
         </mrow>
 
        </mrow>

       </math> to the server for model aggregation.4. Experiments4.1. Experimental SetupIn this section, we conducted experiments on PACS and OfficeHome datasets, which are both widely used benchmark datasets in the field of DG. The PACS dataset contains 9991 image data from four different domains, the four domains are art paintings, cartoons, photographs and sketches, and each domain contains 7 categories. And the OfficeHome dataset also contains images from four domains, Art, Clipart, Product and Real, each containing 65 categories and a total of 15,500 images.In addition, to further validate the model performance of Stable-FedADG in various federated scenarios, we set up three types of experiments, namely, the leave-one-domain-out setting (LODO), the unbalanced setting and the mixed setting. In all settings, one domain from the dataset is chosen as the target domain for model performance validation, while the remaining domains serve as source domains for model training. The detailed configurations are outlined as follows.LODO: LODO setting is a widely used validation strategy in FDG research, which treats each domain as a client, i.e., each client contains only data from the same domain. This setting simulates the scenario of small intra-client data distribution differences and large inter-client data distribution differences.Unbalanced: Unbalanced setting proposed by <xref ref-type="bibr" rid="scirp.141927-21">
        [21]
       </xref> is employed to simulate the federated scenario with large intra-client distribution differences and small inter-client distribution differences. Here, each client holds data from all source domains, with different source domains having distinct proportions, while the same source domain in different clients have consistent proportion shares.Mixed: Mixed setting is employed to simulate a more complex federated scenario with domain bias both within and between clients, we configured each client to hold only 2 source domains data, with one domain being dominant. Moreover, different clients contain distinct source domains.<xref ref-type="bibr" rid="scirp.141927-"></xref>Table 1. Initial learning rate for different datasets.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313056-rId296.jpeg?20250508104019" />
    </fig>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td acenter" width="90.44%" colspan="4"><p style="text-align:center">PACS</p></td> 
     </tr> 
     <tr> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center"></p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">LODO</p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">unbalanced</p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">mixed</p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             f 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             g 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             d 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
     </tr> 
     <tr> 
      <td class="custom-bottom-td acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             w 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="custom-bottom-td acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
      <td class="custom-bottom-td acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
      <td class="custom-bottom-td acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
     </tr> 
     <tr> 
      <td class="custom-bottom-td custom-top-td acenter" width="90.44%" colspan="4"><p style="text-align:center">OfficeHome</p></td> 
     </tr> 
     <tr> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center"></p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">LODO</p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">unbalanced</p></td> 
      <td class="custom-bottom-td custom-top-td acenter" width="22.61%"><p style="text-align:center">mixed</p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             f 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
      <td class="custom-top-td acenter" width="22.61%"><p style="text-align:center">0.001</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <mi>
            r 
          </mi> 
          <mi>
            g 
          </mi> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             d 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.005</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.05</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="22.61%"><p style="text-align:center"> 
        <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
          <mi>
            l 
          </mi> 
          <msub> 
           <mi>
             r 
           </mi> 
           <mi>
             w 
           </mi> 
          </msub> 
         </mrow> 
        </math></p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
      <td class="acenter" width="22.61%"><p style="text-align:center">0.1</p></td> 
     </tr> 
    </table>
    <p>Each of the three settings above simulates a different federated scenario. Following <xref ref-type="bibr" rid="scirp.141927-16">
      [16]
     </xref>, 70% of each client’s data is randomly chosen as the training set and 30% as the validation set. The network architecture in this paper is the same as that in FedADG <xref ref-type="bibr" rid="scirp.141927-16">
      [16]
     </xref>. For the PACS dataset, the feature extractor is constructed using ImageNet pretrained AlexNet and the OfficeHome dataset used ResNet50, and both without its last layer. Additionally, the classifier, distribution generator, and discriminator are all composed of two fully-connected layers. The output layer of the discriminator is configured to have a size of 1. In all experiments, the number of local iterations is set as 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          E 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         3 
       </mn> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          E 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         5 
       </mn> 
      </mrow> 
     </math> with a batch size of 64. The communication occurs 30 times. The local model is updated via the SGD method, with 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         0.85 
       </mn> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          λ 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         0.15 
       </mn> 
      </mrow> 
     </math>. The specific initial learning rates are shown in <xref ref-type="table" rid="table1">
      Table 1
     </xref>, where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         l 
       </mi> 
       <msub> 
        <mi>
          r 
        </mi> 
        <mi>
          f 
        </mi> 
       </msub> 
      </mrow> 
     </math> represents the learning rate of the feature extractor and the classifier, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         l 
       </mi> 
       <msub> 
        <mi>
          r 
        </mi> 
        <mi>
          g 
        </mi> 
       </msub> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         l 
       </mi> 
       <msub> 
        <mi>
          r 
        </mi> 
        <mi>
          d 
        </mi> 
       </msub> 
      </mrow> 
     </math> are for the distribution generator and discriminator respectively, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         l 
       </mi> 
       <msub> 
        <mi>
          r 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
      </mrow> 
     </math> is for learning sample weights within the client.</p>
   </sec>
   <sec id="s3_3">
    <title>4.2. Experimental Results</title>
    <p>In this paper, we present the experimental results of different algorithms in three settings, including the classic FL algorithms FedAvg <xref ref-type="bibr" rid="scirp.141927-4">
      [4]
     </xref>, FedProx <xref ref-type="bibr" rid="scirp.141927-7">
      [7]
     </xref> and SCAFFOLD <xref ref-type="bibr" rid="scirp.141927-8">
      [8]
     </xref>, and the existing FDG algorithms FedIIR <xref ref-type="bibr" rid="scirp.141927-22">
      [22]
     </xref>, FedSR <xref ref-type="bibr" rid="scirp.141927-23">
      [23]
     </xref> and FedADG <xref ref-type="bibr" rid="scirp.141927-16">
      [16]
     </xref>. Among them, FedADG is a method that improves the generalization performance of the model only by aligning the feature distributions among clients.</p>
    <p>
     <xref ref-type="table" rid="table2">
      Table 2
     </xref> and <xref ref-type="table" rid="table3">
      Table 3
     </xref> display the test accuracies of different models on the PACS dataset and OfficeHome dataset, respectively. Each result is the average of three repeats. Analysing <xref ref-type="table" rid="table2">
      Table 2
     </xref> and <xref ref-type="table" rid="table3">
      Table 3
     </xref>, it can be seen that the test accuracies of Stable-FedADG and FedADG outperform FedAvg significantly in both the LODO setting and the mixed setting, indicating that when inter-client feature distributions vary greatly, adversarial aligning inter-client feature distributions are conducive to the learning of domain-invariant features and boost model generalization. Meanwhile, Stable-FedADG outperforms FedAvg and FedADG in all three settings, indicating that intra-client stable feature learning can further improve the FL global model’s generalization. Besides, Stable-FedADG also outperforms other FL and FDG algorithms in all three settings, indicating that considering simultaneously intra-client and inter-client domain distribution differences facilitates further improving the generalization performance of the model in various federated scenarios.</p>
    <table-wrap id="table1">
     <label>
      <xref ref-type="table" rid="table1">
       Table 1
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141927-"></xref>Table 2. Experimental results of different algorithms on PACS dataset.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="13.24%"><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Art</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Cartoon</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Photo</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Sketch</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Avg</p></td> 
      </tr> 
      <tr> 
       <td rowspan="7" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*LODO</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">62.52</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">59.09</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">91.98</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">62.85</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">69.11</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.04</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">59.43</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">91.26</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.91</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">69.16</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.15</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">59.45</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">92.09</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.97</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">69.42</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.64</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">59.52</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">92.85</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.62</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.16</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">61.58</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">58.96</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">90.83</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.52</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">68.47</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.84</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">59.81</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">93.17</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">68.28</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">71.53</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">67.63</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">61.05</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">93.65</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">70.81</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">73.29</p></td> 
      </tr> 
      <tr> 
       <td rowspan="7" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*Unbalanced</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">68.95</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">63.44</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">88.26</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">61.95</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">70.65</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">68.71</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.81</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">88.23</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">61.42</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.29</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">69.38</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.67</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">88.38</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">62.64</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.77</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.09</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.53</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">89.13</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.46</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">72.55</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">71.39</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">61.82</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">86.22</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.73</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.79</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">70.02</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.78</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">88.82</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.57</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">71.8</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">73.73</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">64.29</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">91.87</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">65.49</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">73.85</p></td> 
      </tr> 
      <tr> 
       <td rowspan="3" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*Mixed</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">65.58</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">61.73</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">91.42</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">64.88</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">70.9</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.86</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">60.58</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">92.56</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.49</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">71.62</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.97</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">60.19</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">92.75</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.15</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">71.77</p></td> 
      </tr> 
     </table>
    </table-wrap>
    <p>Continued</p>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td rowspan="4" class="acenter" width="13.24%"><p style="text-align:center"></p></td> 
      <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">68.89</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">61.69</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">92.38</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">67.12</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">72.52</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">65.43</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">60.29</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">90.49</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">62.95</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">69.79</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">68.05</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">63.78</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">92.92</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">63.04</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">71.95</p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">70.19</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">63.94</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">92.97</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">66.58</p></td> 
      <td class="acenter" width="14.29%"><p style="text-align:center">73.42</p></td> 
     </tr> 
    </table>
    <table-wrap id="table2">
     <label>
      <xref ref-type="table" rid="table2">
       Table 2
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141927-"></xref>Table 3. Experimental results of different algorithms on OfficeHome dataset.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="13.24%"><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Art</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Clipart</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Product</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Real</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">Avg</p></td> 
      </tr> 
      <tr> 
       <td rowspan="7" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*LODO</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">65.42</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">45.36</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">75.74</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">78.93</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">66.36</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.59</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">46.67</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.32</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">78.74</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.83</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.34</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">47.09</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">75.89</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">78.97</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.82</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.87</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">46.71</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">75.94</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.38</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.23</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.05</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">45.98</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">74.75</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.06</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.21</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.16</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">46.6</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.55</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.21</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.38</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">68.23</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">49.42</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">76.59</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">79.52</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">68.44</p></td> 
      </tr> 
      <tr> 
       <td rowspan="7" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*Unbalanced</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">64.57</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">45.52</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">76.62</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">77.64</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">66.09</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.89</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">45.56</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.79</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.61</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.96</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.52</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">45.69</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.38</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.53</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.28</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.68</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">45.72</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.79</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.68</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.47</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">63.92</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">44.78</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.95</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.23</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.72</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">64.32</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">45.04</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.61</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.29</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.07</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">65.51</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">46.37</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">77.87</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">77.79</p></td> 
       <td class="custom-bottom-td acenter" width="14.29%"><p style="text-align:center">66.89</p></td> 
      </tr> 
      <tr> 
       <td rowspan="7" class="custom-top-td acenter" width="13.24%"><p style="text-align:center">*Mixed</p></td> 
       <td class="custom-top-td acenter" width="15.32%"><p style="text-align:center">FedAvg</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">64.94</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">47.93</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">75.63</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">78.91</p></td> 
       <td class="custom-top-td acenter" width="14.29%"><p style="text-align:center">66.85</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedProx</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.29</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">47.03</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">75.95</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.02</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.82</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">SCAFFOLD</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">65.98</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">47.83</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">75.71</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.32</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.21</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedIIR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.74</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">47.51</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.35</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.52</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.53</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedSR</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.17</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">46.99</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">75.59</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">78.97</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.93</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">66.96</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">47.19</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">77.09</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">79.64</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.72</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="15.32%"><p style="text-align:center">Stable-FedADG</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">67.86</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">48.41</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">76.89</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">80.1</p></td> 
       <td class="acenter" width="14.29%"><p style="text-align:center">68.32</p></td> 
      </tr> 
     </table>
    </table-wrap>
   </sec>
  </sec><sec id="s4">
   <title>5. Conclusion</title>
   <p>In this paper, we give a generalized federated domain generalization algorithm for agnostic distribution bias called Stable-FedADG. This algorithm focuses on both intra-client and inter-client multidomain distributions, and eliminates the intra-client feature bias by intra-client stable feature learning, meanwhile, the algorithm incorporates FedALN to adversarially align the inter-client feature distribution. The experimental results show that the Stable-FedADG algorithm outperforms both the traditional FL algorithm and the FedADG algorithm in different federated scenarios, and can further improve the generalization performance of the model. In addition, the proposed algorithm still has some limitations, firstly, the proposed algorithm is mainly for feature drift, i.e., each client is required to contain the same label categories, and future work can be developed on the basis of label drift. Second, the proposed algorithm is an FDG algorithm that requires a centralized server, and future work considers investigating decentralized FDG algorithms.</p>
  </sec><sec id="s5">
   <title>Acknowledgements</title>
   <p>This work was supported in part by the National Natural Science Foundation of China (No. 62166013), the Natural Science Foundation of Guangxi (No. 2022GXNSFAA035499) and the Foundation of Guilin University of Technology (No. GLUTQD2007029).</p>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.141927-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Xu, H., Seng, K.P., Ang, L.M. and Smith, J. (2024) Decentralized and Distributed Learning for AIoT: A Comprehensive Review, Emerging Challenges, and Opportunities. IEEE Access, 12, 101016-101052. &gt;https://doi.org/10.1109/access.2024.3422211
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Li, Y., Wang, X., Zeng, R., Yang, M., Li, K., Huang, M., et al. (2023) VARF: An Incentive Mechanism of Cross-Silo Federated Learning in Mec. IEEE Internet of Things Journal, 10, 15115-15132. &gt;https://doi.org/10.1109/jiot.2023.3264611
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Liu, B., Lv, N., Guo, Y. and Li, Y. (2024) Recent Advances on Federated Learning: A Systematic Survey. Neurocomputing, 597, Article 128019. &gt;https://doi.org/10.1016/j.neucom.2024.128019
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     McMahan, B., Moore, E., Ramage, D., Hampson, S. and y Arcas, B.A. (2017) Communication-Efficient Learning of Deep Networks from Decentralized Data. Proceedings of the 20th International Conference on Artificial Intelligence and Statistics (AISTATS), Fort Lauderdale, 20-22 April 2017, 1273-1282. &gt;https://api.semanticscholar.org/CorpusID:14955348 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Ye, M., Fang, X., Du, B., Yuen, P.C. and Tao, D. (2023) Heterogeneous Federated Learning: State-of-the-Art and Research Challenges. ACM Computing Surveys, 56, 1-44. &gt;https://doi.org/10.1145/3625558
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Lu, Z., Pan, H., Dai, Y., Si, X. and Zhang, Y. (2024) Federated Learning with Non-IID Data: A Survey. IEEE Internet of Things Journal, 11, 19188-19209. &gt;https://doi.org/10.1109/jiot.2024.3376548
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Li, T., Sahu, A.K., Zaheer, M., Sanjabi, M., Talwalkar, A. and Smith, V. (2020) Federated Optimization in Heterogeneous Networks. Proceedings of the 3rd MLSys Conference, Austin, 2-4 March 2020, 429-450. &gt;https://proceedings.mlsys.org/paper_files/paper/2020/file/1f5fe83998a09396ebe6477d9475ba0c-Paper.pdf 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref8">
    <label>8</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Karimireddy, S.P., Kale, S., Mohri, M., Reddi, S., Stich, S. and Suresh, A.T. (2020) Scaffold: Stochastic Controlled Averaging for Federated Learning. Proceedings of the 37th International Conference on Machine Learning, Virtual Event, 13-18 July 2020, 5132-5143. &gt;http://proceedings.mlr.press/v119/karimireddy20a.html 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref9">
    <label>9</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Tan, A.Z., Yu, H., Cui, L. and Yang, Q. (2023) Towards Personalized Federated Learning. IEEE Transactions on Neural Networks and Learning Systems, 34, 9587-9603. &gt;https://doi.org/10.1109/tnnls.2022.3160699
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref10">
    <label>10</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Lin, S., Yang, G. and Zhang, J. (2020) A Collaborative Learning Framework via Federated Meta-Learning. 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS), Singapore, 29 November-1 December 2020, 289-299. &gt;https://doi.org/10.1109/icdcs47774.2020.00032
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref11">
    <label>11</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Li, Y., Wang, X., Zeng, R., Donta, P.K., Murturi, I., Huang, M. and Dustdar, S. (2024) Federated Domain Generalization: A Survey. arXiv: 2306.01334. &gt;https://arxiv.org/abs/2306.01334 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref12">
    <label>12</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Li, X., Gu, Y., Dvornek, N., Staib, L.H., Ventola, P. and Duncan, J.S. (2020) Multi-Site fMRI Analysis Using Privacy-Preserving Federated Learning and Domain Adaptation: ABIDE Results. Medical Image Analysis, 65, Article 101765. &gt;https://doi.org/10.1016/j.media.2020.101765
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref13">
    <label>13</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Peng, X., Huang, Z., Zhu, Y. and Saenko, K. (2020) Federated Adversarial Domain Adaptation. &gt;https://openreview.net/forum?id=HJezF3VYPB 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref14">
    <label>14</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Wu, G. and Gong, S. (2021) Collaborative Optimization and Aggregation for Decentralized Domain Generalization and Adaptation. 2021 IEEE/CVF International Conference on Computer Vision (ICCV), Montreal, 10-17 October 2021, 6464-6473. &gt;https://doi.org/10.1109/iccv48922.2021.00642
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref15">
    <label>15</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Liu, Q., Chen, C., Qin, J., Dou, Q. and Heng, P. (2021) FedDG: Federated Domain Generalization on Medical Image Segmentation via Episodic Learning in Continuous Frequency Space. 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, 20-25 June 2021, 1013-1023. &gt;https://doi.org/10.1109/cvpr46437.2021.00107
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref16">
    <label>16</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Zhang, L., Lei, X., Shi, Y., Huang, H. and Chen, C. (2023) Federated Learning for IoT Devices with Domain Generalization. IEEE Internet of Things Journal, 10, 9622-9633. &gt;https://doi.org/10.1109/jiot.2023.3234977
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref17">
    <label>17</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Shen, Z., Cui, P., Kuang, K., Li, B. and Chen, P. (2018) Causally Regularized Learning with Agnostic Data Selection Bias. Proceedings of the 26th ACM international conference on Multimedia, Seoul, 22-26 October 2018, 411-419. &gt;https://doi.org/10.1145/3240508.3240577
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref18">
    <label>18</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Kuang, K., Xiong, R., Cui, P., Athey, S. and Li, B. (2020) Stable Prediction with Model Misspecification and Agnostic Distribution Shift. Proceedings of the AAAI Conference on Artificial Intelligence, 34, 4485-4492. &gt;https://doi.org/10.1609/aaai.v34i04.5876
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref19">
    <label>19</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Cui, P. and Athey, S. (2022) Stable Learning Establishes Some Common Ground between Causal Inference and Machine Learning. Nature Machine Intelligence, 4, 110-115. &gt;https://doi.org/10.1038/s42256-022-00445-z
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref20">
    <label>20</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Xu, R., Cui, P., Shen, Z., Zhang, X. and Zhang, T. (2021) Why Stable Learning Works? A Theory of Covariate Shift Generalization. arXiv: 2111.02355. &gt;https://arxiv.org/abs/2111.02355v1 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref21">
    <label>21</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Zhang, X., Cui, P., Xu, R., Zhou, L., He, Y. and Shen, Z. (2021) Deep Stable Learning for Out-of-Distribution Generalization. 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, 20-25 June 2021, 5368-5378. &gt;https://doi.org/10.1109/cvpr46437.2021.00533
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref22">
    <label>22</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Guo, Y., Guo, K., Cao, X., Wu, T. and Chang, Y. (2023) Out-of-Distribution Generalization of Federated Learning via Implicit Invariant Relationships. Proceedings of the 40th International Conference on Machine Learning, Honolulu, 23-29 July 2023, 11905-11933. &gt;https://dl.acm.org/doi/10.5555/3618408.3618886 
    </mixed-citation>
   </ref>
   <ref id="scirp.141927-ref23">
    <label>23</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Nguyen, A.T., Torr, P. and Lim, S.N. (2022) FedSR: A Simple and Effective Domain Generalization Method for Federated Learning. Proceedings of the 36th International Conference on Neural Information Processing System, New Orleans, 28 November-9 December 2022, 38831-38843. &gt;https://dl.acm.org/doi/10.5555/3600270.3603084
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>