深度学习--多源域文章之Aligning Domain-Specifific Distribution and Classififier for Cross-Domain Classifificat

《Aligning Domain-Specifific Distribution and Classififier for Cross-Domain Classifification from Multiple Sources》

*文章链接:https://arxiv.org/abs/2201.01003v1
代码链接:https://github.com/easezyc/deep-transfer-learning

这篇文章,结构非常清晰简洁明了,复现起来也很容易,觉得很适合初学者!

一、Abstract摘要

1、过去的方法需要解决的问题

(1)很难为MUDA中的所有域提取相同的域不变特征;
(2)以往的方法都是在不考虑类之间特定域的决策边界下的情况进行匹配分布的。

【决策边界】
参考学习链接:https://blog.csdn.net/jodie123456/article/details/88871466
①定义:决策边界或决策表面是超曲面,他是将基础向量空间划分为两个集合。即分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
②分类:决策边界主要有线性决策边界和非线性决策边界。
决策界限并不总是明确的。也就是说,从特征空间中的一个类别到另一个类的过渡是渐进的。

所以,

神经网络试图学习决策边界,最小化经验误差,指出向量机试图学习决策边界,最大化决策边界和数据点之间的经验边际。
举例:SVM是一种优化的分类算法
在这里插入图片描述
图中可以看到,H2和H3都可以正确的将training set进行分类,但,用H2进行分类的话,对于靠近蓝线的几个训练样例不敢说100%,但对于离蓝线最远的小球,是很有把握的。所以H3这条SVM红线,就是尽量让两侧的训练样例远离决策边界,从而让分类系统对每个球都有把握。

2、本文提出的
所以为了解决(一)中提到的这些问题,我们为MUDA提出了一个具有两个对齐阶段的新框架,不仅对齐多个特定特征空间中每队源和目标域的分布,还通过利用域特定的决策边界来对分类器的输出边界。

**

二、Introduction引言

**
近年来,大多数域适应的算法都集中在单源无监督域自适应(SUDA)的问题上,以往出现了很多不同的方法。

非常常见的一种方法就是,将所有的源域合并成一个单源域并且对齐分布(同SUDA方法一样),由于数据扩展的原因,这种方法也许会提高性能。但是提高的性能并不显著,所以有必要找一个更好的方法充分利用所有的源域。

当前存在的两个问题:
(1)尝试将所有的源域和目标域的数据映射到一个共同的特征空间中,来学习共同的域不变表示。 但是,学习单源域和一个目标域数据的域不变表示并不简单。就比如论文中的图1,我们无法消除一个单源和一个目标域之间的偏移。

【域不变特征】
领域泛化(domain generalization,DG),现有的DG方法可以分成三个类别:数据操作、表示学习、学习策略。数据操作,就是对数据输入输出进行操作,比如数据增量、数据生成;表示学习,就是学习域不变特征或者对特征进行解耦,获取更有意义的泛化特征;学习策略,就是涉及一些特定的策略增强模型泛化能力,比如集成或元学习。
域不变特征,可以从域内或域间两个角度进行学习:
域内不变特征(internally-invariant features),与分类有关的特征。产生与域的内部,不受其他域的影响,主要抓取数据的内在语义信息;
域间不变特征(mutually-invariant features),跨域迁移知识,通过多个域产生,共同学习的一些知识。
把这两种特征有效充分的结合起来,可以得到泛化性更好的模型。

(2)之前的方法都假设目标域数据可以被多域特定分类器正确分类,因为他们与源数据对齐。但是,这些方法也许会错误提取判别性特征。

于是,
这里提出的具有两个对齐阶段的新框架
第一个阶段,对齐特定域的分布。
分别将每对源域数据和目标域数据映射到不同特征空间中,并且对齐源域分布来学习多种域不变特征。
第二个阶段,对齐特定域的分类器。
由不同分类器预测的域特定决策边界附近的目标样本可能会得到不同的标签。因此,利用特定领域的决策边界,我们将分类器的输出对准目标样本。

**

三、Method方法

**
第一个对齐阶段,是对齐每对源域和目标域的特定域的分布。
为每对源域和目标域提取多个不变表示的方法就是将它们中的每一个映射到特定的特征空间中并匹配他们的分布。 要将每对源域和目标域映射到特定的特征空间,最简单的方法就是训练多个网络。

所以,这里就将网络分成2个部分第一个部分就是共享一个子网络来学习所有域的相同特征,第二个部分,包含N个特定域的子网,并且不为每队源域和目标域彼此共享权重。对于每个未共享的子网,我们学习一个特定域的分类器。

但是,通过不同分类器对靠近特定域的决策边界的目标样本的预测也许会得到不同的标签。

第二个对齐阶段,就是,利用特定域的决策边界,对齐目标样本的特定域分类器的输出。

**

四、Two-stage alignment Framework两个对齐阶段的框架

**
我们的框架包括三个部分:共同特征提取器、特定域的特征提取器、特定域的分类器。(如图论文中的图2)
①共同特征提取器:提出了共同子网络来对所有域提取共同特征,并将原特征空间中的图像映射到一个共同特征空间中。
②特定域的特征提取器:我们想要每对源域和目标域数据都能够映射到一个特定的特征空间中。
③特定域的分类器

在这里插入图片描述
**

补充:Resnet网络

**
参考学习链接:https://blog.csdn.net/wuzhuoxi7116/article/details/106309943

1、resnet解决了什么
首先,resnet解决了深度网络中,网络层数越深,在数据集上表现的性能越差的网络退化问题。
采用resnet网络结构的网络层数越深,性能越好。

2、resnet原理及结构
假设我们想要网络块学习到的映射为H(x),而直接学习H(x)是很难学习到的。若我们学习另一个残差函数F(x) = H(x) - x可以很容易学习,因为此时网络块的训练目标是将F(x)逼近于0,而不是某一特定映射。因此,最后的映射H(x)就是将F(x)和x相加,H(x) = F(x) + x,如图所示。

在这里插入图片描述
因此,这个网络块的输出y为
在这里插入图片描述
由于相加必须保证x与F()是同维度的,因此写成通式,Ws用于匹配维度。

在这里插入图片描述
有两种匹配维度的方法:①用Zero-padding增加维度 ②用1x1卷积增加维度
下面给出两种基础块结构,basicblock结构用于resnet34及以下的网络,botteneck结构用于resnet50及以上的网络。

2.1 basicblock结构
结构图如图所示:
在这里插入图片描述
两个3x3的卷积层,通道数是64,跳线,也就是shortcut connections,将输入x加到输出。

2.2 botteneck结构
结构图如图所示:
在这里插入图片描述
先是1x1的卷积层,然后是一个3x3的卷积层,然后又是一个1x1的卷积层。注意这里的通道数是变化的。
1x1的卷积层是用于改变特征图的通数,使得可以和恒等映射x相叠加,另外通过1x1卷积层改变维度的很重要的一点是可以降低网络参数量。

另外

复现出来的数据比论文本身还好哦 ,不过相差也不大,估计是正常范围吧。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值