深度子领域迁移网络(DSAN) 阅读笔记

本文介绍了一种新的深度学习方法DSAN,针对图像分类中的子领域自适应问题,通过局部最大均值差异(LMMD)对源域和目标域的子领域分布进行对齐,避免了全局对齐可能带来的信息混淆。DSAN无需复杂的对抗性训练,有效捕捉细粒度类别信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DSAN

深度子领域迁移网络

Deep Subdomain Adaptation Network for Image Classification

Code

总结:将源域/目标域的各子领域(根据标签划分)分别进行对齐,而非全局对齐。

以往大多数深度域自适应方法都进行全局对齐(不考虑任何细粒度的信息,比如标签),会混淆源域/目标域的数据,丢失每个类别的细粒度信息。

本文提出了一种深度子领域自适应网络(DSAN),基于局部最大均值差异(LMMD),通过对齐源域/目标域上域特定层(domain-specific layer)激活的相关子领域分布来学习迁移网络。(不需要收敛缓慢的对抗性训练)
在这里插入图片描述

Related Work

  • Domain Adaptation
  • Maximum Mean Discrepancy(MMD)
    TCA、DDC、DAN、[27]
    扩展:条件MMD(JDA)、联合MMD(JAN)、加权MMD[32]、CMMD(JDA、[23]、[33];LMMD的一个特例)
  • Subdomain Adaptation
    子领域自适应,也叫做语义对齐(semantic alignment)或匹配条件概率分布(matching conditional distribution,对齐全局特征实际上是匹配边缘概率分布)。
    以下方法均采用对抗损失,复杂,有多个损失,且收敛缓慢。

    NIPS-2018 Conditional adversarial domain adaptation(CDAN):根据分类器预测中传递的判别信息对对抗自适应模型进行约束。

    AAAI-2018 Multi-adversarial domain adaptation(MADA):捕获多模式结构,从而基于多域鉴别器实现不同数据分布的细粒度对齐。

    NIPS-2018 Co-regularized alignment for unsupervised domain adaptation(Co-DA):构建多个不同的特征空间,在每个特征空间中单独对齐源分布和目标分布,同时鼓励对齐在未标记的目标样本上的类别预测方面彼此一致。

    ICML-2018 Learning semantic representations for unsupervised domain adaptation(MSTN):通过对齐有标记的源质心和伪标记的目标质心来学习未标记目标样本的语义表示。

Method

在这里插入图片描述

  • 源域 D s = { ( x i s , y i s ) } i = 1 n s \mathcal{D}_s=\{(\mathbf{x}_i^s,\mathbf{y}_i^s)\}_{i=1}^{n_s} Ds={(xis,yis)}i=1ns,其中 y i s ∈ R C \mathbf{y}_i^s\in\R^C yisRC x i s \mathbf{x}_i^s xis 的标签(one-hot编码), C C C 是类别数量。
    目标域 D t = { ( x j t } j = 1 n t \mathcal{D}_t=\{(\mathbf{x}_j^t\}_{j=1}^{n_t} Dt={(xjt}j=1nt
  • 源域和目标域采样自不同数据分布 p p p q q q p ≠ q p\ne q p=q)。

Subdomain Adaptation 子领域自适应

以往深度迁移学习方法:使用具有全局域自适应损失 d ^ ( p , q ) \hat{d}(p,q) d^(p,q) 的自适应层来学习域不变特征。
在这里插入图片描述
根据类别,将 D s \mathcal{D}_s Ds D t \mathcal{D}_t Dt 划分为 C C C 个子领域 D s ( c ) \mathcal{D}^{(c)}_s Ds(c) D t ( c ) \mathcal{D}^{(c)}_t Dt(c) ,其中类标签 c ∈ { 1 , 2 , … , C } c\in\{1,2,\dots,C\} c{1,2,,C} D s ( c ) \mathcal{D}^{(c)}_s Ds(c) D t ( c ) \mathcal{D}^{(c)}_t Dt(c) 的分布为 p ( c ) p^{(c)} p(c) q ( c ) q^{(c)} q(c)(类条件概率分布)。
结合分类损失和子领域自适应损失,子领域自适应方法的损失表述为
在这里插入图片描述

Local Maximum Mean Discrepancy(LMMD) 局部MMD

在这里插入图片描述
假设每个样本属于类别 c c c 的权重为 w c w^c wc,给出(5)的无偏估计:
在这里插入图片描述

  • w i s c w^{sc}_i wisc w j t c w^{tc}_j wjtc 分别表示 x i s \mathbf{x}_i^s xis x j t \mathbf{x}_j^t xjt 类别 c c c 的权重。
  • ∑ i = 1 n s w i s c = ∑ j = 1 n t w j t c = 1 \sum_{i=1}^{n_s}w^{sc}_i=\sum_{j=1}^{n_t}w^{tc}_j=1 i=1nswisc=j=1ntwjtc=1(均值)
  • ∑ x i ∈ D w i c ϕ ( x i ) \sum_{\mathbf{x}_i\in\mathcal{D}}w^{c}_i \phi(\mathbf{x}_i) xiDwicϕ(xi) 是类别 c c c 的加权和。

样本 x i \mathbf{x}_i xi 的权重 w i c w^{c}_i wic
在这里插入图片描述

  • y i c y_{ic} yic 是预测标签向量(one-hot编码) y i \mathbf{y}_i yi 的第 c c c 个元素。
    对于源域样本,使用真实标签 y i s \mathbf{y}_i^s yis;对于无标签的目标域样本,使用伪标签 y ^ i = f ( x i ) \hat{\mathbf{y}}_i=f(\mathbf{x}_i) y^i=f(xi)

深度网络在第 l l l 层( l ∈ L = { 1 , 2 , … , ∣ L ∣ } l\in L=\{1,2,\dots,|L|\} lL={1,2,,L})生成激活 { z i s l } i = 1 n s \{\mathbf{z}^{sl}_i\}^{n_s}_{i=1} {zisl}i=1ns { z j t l } j = 1 n t \{\mathbf{z}^{tl}_j\}^{n_t}_{j=1} {zjtl}j=1nt。另外,由于不能直接计算 ϕ ( ⋅ ) \phi(\cdot) ϕ(),将(6)写成
在这里插入图片描述

Deep Subdomain Adaptation Network

在这里插入图片描述

Experiment

  • 目标识别:ImageCLEF-DA、Office-31、OfficeHome、VisDA-2017
  • 数字分类:MNIST、USPS、SVHN

与其他对抗子领域自适应方法的比较

在这里插入图片描述

<think>好的,用户想了解如何可视化LMMD(最大均值差异)的代码。首先,我需要明确LMMD是什么。LMMD通常用于衡量两个分布之间的差异,尤其在迁移学习和领域适应中使用较多。用户可能希望看到如何通过图形展示两个分布的数据点以及它们之间的差异。 接下来,我需要确定用户的需求层次。他们可能已经有LMMD的实现代码,但不知道如何可视化结果,或者他们可能希望从零开始了解如何实现并可视化。考虑到用户直接询问“可视化lmmd代码”,可能已经有代码基础,需要可视化的部分。 然后,我应该考虑常见的可视化方法。对于分布差异,常用的方法包括直方图、核密度估计图、散点图(特别是高维数据降维后),以及直接绘制MMD值的图表。需要选择适合的方法,并结合代码示例进行说明。 另外,用户可能希望看到具体的代码示例,而不仅仅是理论解释。因此,我需要准备一个使用Python和常见库(如NumPy、Matplotlib、sklearn)的示例,展示如何生成两个分布的数据,计算MMD,并可视化结果。 需要注意的是,LMMD的实现可能涉及核函数的选择,比如高斯核,而计算MMD时需要处理两个样本集的内积矩阵。在可视化部分,可能需要降维技术如PCA或t-SNE来展示高维数据的分布情况。 还要检查是否需要解释代码的每一步,特别是涉及数学公式的部分,比如MMD的计算公式,确保用户理解背后的原理。同时,提醒用户在实际应用中可能需要调整参数,如核函数的带宽,或者使用更高效的计算方法。 最后,确保回答结构清晰,分步骤说明,并验证代码的正确性,避免语法错误。可能还需要讨论不同可视化方法的优缺点,帮助用户根据具体情况选择合适的方法。</think>以下是如何可视化LMMD(最大均值差异)代码的分步说明及实现示例: 1. **理解LMMD原理** LMMD = $\frac{1}{n^2}\sum_{i,j=1}^n k(x_i,x_j) + \frac{1}{m^2}\sum_{i,j=1}^m k(y_i,y_j) - \frac{2}{nm}\sum_{i=1}^n\sum_{j=1}^m k(x_i,y_j)$ 其中$k(\cdot,\cdot)$是核函数,常用于衡量两个分布的差异 2. **准备示例数据** ```python import numpy as np from sklearn.decomposition import PCA import matplotlib.pyplot as plt # 生成两个不同分布的数据 np.random.seed(42) X = np.random.normal(0, 1, (100, 2)) # 源分布 Y = np.random.normal(1, 1.5, (80, 2)) # 目标分布 ``` 3. **实现LMMD计算** ```python def mmd(X, Y, gamma=1.0): # 高斯核函数 def rbf_kernel(x, y): return np.exp(-gamma * np.linalg.norm(x-y)**2) # 计算核矩阵 XX = np.array([[rbf_kernel(x1, x2) for x2 in X] for x1 in X]) YY = np.array([[rbf_kernel(y1, y2) for y2 in Y] for y1 in Y]) XY = np.array([[rbf_kernel(x, y) for y in Y] for x in X]) return XX.mean() + YY.mean() - 2*XY.mean() ``` 4. **可视化实现方法** **方法一:分布对比图** ```python plt.figure(figsize=(10,4)) # 降维可视化 pca = PCA(n_components=1) X_pca = pca.fit_transform(X) Y_pca = pca.transform(Y) plt.subplot(121) plt.hist(X_pca, bins=20, alpha=0.5, label='Source') plt.hist(Y_pca, bins=20, alpha=0.5, label='Target') plt.title("Distribution Comparison") plt.legend() # 散点图可视化 plt.subplot(122) plt.scatter(X[:,0], X[:,1], alpha=0.5, label='Source') plt.scatter(Y[:,0], Y[:,1], alpha=0.5, label='Target') plt.title("Feature Space") plt.legend() plt.show() ``` **方法二:MMD值随参数变化** ```python gammas = np.logspace(-2, 2, 20) mmd_values = [mmd(X, Y, gamma=g) for g in gammas] plt.plot(gammas, mmd_values, 'bo-') plt.xscale('log') plt.xlabel('Gamma (log scale)') plt.ylabel('MMD Value') plt.title("MMD vs Kernel Bandwidth") plt.grid(True) plt.show() ``` 5. **结果解读** - 直方图显示分布偏移程度 - 散点图展示特征空间中的样本分布 - MMD曲线反映不同核参数对差异度量的影响 **注意事项** 1. 高维数据建议使用t-SNE替代PCA 2. 实际应用中建议使用矩阵运算优化计算速度 3. 可添加置信区间进行统计显著性检验 4. 领域自适应任务中建议结合迁移准确率分析 示例输出: - 左图显示两个分布的明显偏移 - 右图显示特征空间中样本的分布差异 - MMD曲线呈现典型的U型变化,显示核参数选择的重要性 这种可视化方法可以帮助理解: - 分布差异的直观表现 - 核函数参数的影响 - 特征空间中的领域适配效果
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值