笔记:Semi-supervised domain adaptation with subspace learning for visual recognition (cvpr15)

本文提出SDASL框架,利用子空间学习进行半监督的域自适应,减少domain shift影响。通过学习领域不变的低维结构,并结合目标域未标记样本,优化分类器。算法在源域和目标域上学习映射,使同类样本在子空间中表示相似,同时保持无标记样本的结构信息。目标函数包含结构化风险、结构保护和流形正则化三个损失项。实验基于decaf模型的FC8层特征进行。

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

本文基于子空间学习提出了一种半监督的域自适应框架(SDASL)。在这个框架中,一方面学习一个领域不变(domain invariant)的低维结构(low-dimension structure),也就是子空间,从而减少不同域上数据分布不同带来domain shift影响;另一方面通过正则项利用目标域上的unlabeled样本来学习目标域上的结构信息。具体而言,首先在源域和目标域上分别学习一个映射(这个映射用一个矩阵表示),可以将样本表示映射到一个低维的公共子空间上,然后在这个子空间上进行分类,使用线性分类器。整个流程可以用下图表示:
architecture
需要注意的是文章算法使用的并不是直接图像rgb特征,而是图像在decaf上第8层全连接层输出。
我们希望这个子空间首先具有这样的性质:对于属于同类的样本,不管来自于哪个域,它们的表示应该尽可能相似,这个通过拉普拉斯矩阵来构造损失;同时,为了充分利用目标域上丰富的无标记样本,我们要求相近的无标记样本最后得到的分类器输出也相似。这种相似关系在算法的输入空间上刻画,通过affinity matrix表示。本文针对上面的目标构造了三个损失项,一个在文章称为结构化风险(structural risk),它是分类损失;第二个称为结构保护(structure preservation),保证同类的样本(不管来自于哪个域)都有相近的表示;第三个称为流形正则(manifold regularization),它的假设是如果两个样本相似,那么最终分类器的输出也应该相似。这样就可以充分利用半监督条件下的不带标记的样本。最后目标函数的构成如下:
loss
本文对目标函数,优化方法对工作进行了介绍,下面具体分析。
目标函数
1. 结构化风险(structural risk)
这个损失可以看成一个子空间上线性分类器的分类损失,它的表示如下:

### STiL 方法概述 Semi-supervised Tabular-Image Learning (STiL) 是一种用于处理多模态数据的半监督学习方法[^1]。该方法旨在通过结合表格数据和图像数据来提升模型性能,特别是在标注数据有限的情况下。STiL 的核心目标是从不同模态的数据中提取任务相关信息并加以融合。 #### 多模态分类中的任务相关信息探索 在多模态分类场景下,任务相关信息通常分布在不同的数据源之间。STiL 方法通过设计特定机制,在训练过程中逐步识别哪些特征对于当前任务最为重要[^2]。具体而言: - **跨模态关联建模**:STiL 利用注意力机制捕获表格数据与图像数据之间的潜在关系。这种机制能够动态调整各模态的重要性权重,从而聚焦于最相关的部分[^3]。 - **自监督信号增强**:为了充分利用未标记样本的信息,STiL 引入了自监督学习策略。这些策略可以通过预测旋转角度、对比学习等方式生成额外的学习信号,进一步优化模型参数[^4]。 - **联合表示空间构建**:通过对齐两种模态的嵌入向量,STiL 创建了一个统一的任务相关表示空间。这使得即使某些模态缺失或质量较差时,模型仍能保持较高的鲁棒性和准确性[^5]。 以下是实现上述功能的一个简化代码框架: ```python import torch.nn as nn class STILModel(nn.Module): def __init__(self, tabular_dim, image_channels): super(STILModel, self).__init__() # 图像编码器初始化 self.image_encoder = ImageEncoder(image_channels) # 表格数据编码器初始化 self.tabular_encoder = TabularEncoder(tabular_dim) # 跨模态注意层 self.cross_modal_attention = CrossModalAttention() # 输出层定义 self.classifier = Classifier() def forward(self, table_data, image_data): img_features = self.image_encoder(image_data) tab_features = self.tabular_encoder(table_data) combined_features = self.cross_modal_attention(img_features, tab_features) output = self.classifier(combined_features) return output ``` 此代码展示了如何分别对图像和表格数据进行编码,并利用 `CrossModalAttention` 层完成两者间的交互操作[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值