MCD算法及代码理解:《Maximum Classifier Discrepancy for Unsupervised Domain Adaptation》

MCD算法及代码理解

这次的内容回归到了我目前的研究领域 – 迁移学习,更细的范围是领域自适应,迁移学习中最简单、最基础的一种问题设置场景。本文是发表在CVPR 2018上的一篇论文,这篇论文从一个基础理论出发,去理解域适应这个问题,并在理解、分析理论的基础上设计了本文中的MCD算法,可以说算法思想有很好的insight,设计的算法也很合理,个人理解也可以用作迁移学习中的一个基础框架。

1.背景知识

机器学习或是深度学习在最近的十几年取得了非常大的成功,其应用领域包括音频、图像、视频、文本等各个方面,其成功的背后依靠大量的有标注数据。而在许多现实场景中,由于获取成本较高或条件受限,有标注的数据很难获得,更多的情况下,我们只能够获得少量的有标注数据甚至无有标注数据。因此,如何在具有少量有标注数据甚至在无有标注数据的情况下训练一个好的学习模型就成为一个有待探索的问题。解决上述问题的方式有很多学习范式,包括半监督学习,无监督学习,主动学习等。本文是通过迁移学习的方式来解决这个问题,其基本思想是将需要建立学习模型的领域叫做目标域,我们先找到一个和目标域相似但不同的领域,被称为源域,源域中含有大量的有标注数据,我们希望能够从源领域中学习到两个领域的共享知识并将其迁移到目标领域中,从而提高目标域的学习效果。这一过程也与人类学习知识的过程相似,形象来说就是能够达到举一反三的能力。

现有的域适用方法可以分为基于统计指标优化及基于对抗学习两种方式,从2014年对抗生成网络(GAN)兴起之后,这一方法也逐渐被人用于解决迁移学习问题,最早的基于对抗网络的算法结构如图1所示:本网络中包括一个生成器G,一个分类器F,一个判别器D,判别器用于将两个领域的数据进行判别(源域数据标记为1,目标域数据标记为0),特征提取器用于提取领域无关的特征从而迷惑判别器,分类器用于将源域数据进行分类,其损失函数为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.算法思想

针对于最初的基于对抗网络的算法,提出了各种的改进算法,本算法是通过对2010年的一个迁移学习理论出发,去发展出了新的算法。

首先,2010年有一篇经典的迁移学习理论文章,其给出了目标域上的泛化误差与两个域及特定分类器之间的关系,结果如下:从上述理论我们可以得出,目标域上的泛化出于由源域上的泛化误差及两个领域之间的差异进行界定,其中领域差异通过指标 d H δ H d_{H\delta H} dHδH距离进行测量,这也从理论上给出后续我们设计算法的思路,即寻找一个分类器h,使得其在源域上的误差及两个领域之间的差异最小。
在这里插入图片描述
针对于 d H δ H d_{H \delta H} dHδH距离,其具体的计算表达式为:
在这里插入图片描述
假定我们现在已经找到一个学习器使得其在源域上的误差很小,上式中的 R S ( h ) R_S(h) RS(h)可以省略,以及上式中的 λ \lambda λ项由于比较小也可以被省略,此时我们对于一个学习器,需要的目标为min d H δ H d_{H \delta H} dHδH, 由于一个分类器h由特征提取器G和分类器F构成,所以上述目标可以表达为最小化一个上界:
在这里插入图片描述

由于这时我们的优化目标是要最小化一个上界,因此这就隐含着一个最小最大化问题,我们将这个问题表述为:
在这里插入图片描述
由于存在一个最小最大的优化过程,我们可以采用对抗生成网络的思想来设计算法,设计一个特征提取器G,两个分类器 F 1 F_1 F1 F 2 F_2 F2, 在最大化阶段,我们最大化两个分类器之间的差异,使得当前的差异值逼近上述表达式的上界,也就是使其更加准确地近似 d H δ H d_{H \delta H} dHδH, 在最小化阶段,我们最小化两个分类器之间的差异,也就是上面逼近出来的上界,最终经过多轮迭代,使得两个领域间的差异变小

3.算法流程

该算法对应的模型结构如下图所示:
在这里插入图片描述
训练过程分为两个阶段:
第一阶段:
固定G,更新 F 1 F_1 F1, F 2 F_2 F2:在此阶段的损失函数为:
在这里插入图片描述
第二阶段:
固定 F 1 F_1 F1 F 2 F_2 F2,更新G,在此阶段的损失函数为:
在这里插入图片描述
注:上述的测量两个预测值的距离为 L 1 L_1 L1 distance,上述过程并没有真正的写成最大,最小两个过程,而是两个最小过程,使得训练过程可以直接靠神经网络来完成 。

4.代码理解

TBD

5.实验结果

在这里插入图片描述

6.思考

本算法是一个比较好的范例,其是从理论的角度进行出发,从而得出了比较好的insight,并且根据这个过程设计出了新的算法,本文呢在写作的时候,是从决策边界的角度进行解释和引入算法,之后在进行理论insight的理解,我认为这种写法正好将一般的过程反过来了,不是很认可这个做法,但这个方法本身还是有很好的性质,也可以从多视角的角度进行理解,可以用作之后许多算法的框架。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CD和MCD算法是两种常用的聚类算法,它们在许多方面都有所不同。下面是它们的一些比较: 1. 原理: CD(Chauvenet's Discriminant)算法是一种基于距离的聚类算法,它通过计算样本之间的距离来确定样本之间的相似性,并使用阈值将样本分为不同的聚类。 MCD(Minimum Contigency Discriminant)算法是一种基于判别分析的聚类算法,它通过构建一个判别函数,将样本分为不同的聚类。MCD算法使用的是变量判别分析,而CD算法则更侧重于样本间的相似性。 2. 优势: CD算法的优点在于它对数据集的要求较低,对样本量的大小和分布没有严格的要求,而且它的实现相对简单。此外,CD算法的聚类结果也比较直观,易于理解MCD算法的优点在于它能够处理多个类别的情况,并且对于不同特征的样本有较好的分类效果。此外,MCD算法的判别函数是基于变量判别分析的,因此它能够更好地捕捉样本之间的差异和相似性。 3. 适用场景: CD算法适用于数据分布比较均匀的情况,适合对样本进行粗略分类的情况。MCD算法则适用于需要精细分类的情况,特别是在需要处理多个类别的情况时。 4. 性能: 在性能方面,MCD算法通常比CD算法更加稳定和可靠。不过,具体的性能表现还取决于数据集的特征和类别分布情况。 总之,CD和MCD算法各有优缺点,它们适用于不同的场景。在选择聚类算法时,需要根据数据集的特点和需求来选择合适的算法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值