ICML2021 | RSD: 一种基于几何距离的可迁移回归表征学习方法

news2024/11/18 12:44:09

目录

    • 引言
    • 动机
    • 分析
    • 主角(Principal Angle)
    • 表征子空间距离
    • 正交基错配惩罚
    • 可迁移表征学习
    • 实验
      • 数据集介绍
    • 实验结果
    • 总结与展望

论文链接
相关代码已经开源

引言

深度学习的成功依赖大规模的标记数据,然而人工标注数据的代价巨大。域自适应(Domain Adaptation)意图利用已有源领域标记数据的有效信息学习得到一个可以泛化到目标领域无标记数据上的模型。因此域自适应方法是解决上述问题的方案之一。回归问题作为一个具有广泛应用的机器学习范式,和分类问题具备同等的重要性。然而,当前的研究缺乏一个针对回归问题的深度无监督域自适应方法:(1)已有很多基于实例加权和域不变表征学习的浅层域自适应回归方法,但他们没有办法利用深度网络的表征学习能力,因此不具备处理现实世界多种复杂结构数据的能力。同时,他们往往依赖目标领域中的少量有标数据才能取得理想的性能,即只能做成半监督域自适应方法;(2)已有很多基于深度表征学习的域自适应分类方法,在分类基准数据集上取得了突破性进展,但他们在回归数据集上的表现往往不够理想。因此,本文意在利用深度网络的表征能力,考虑回归问题的本质特点,提出一种适用于回归问题的无监督可迁移域自适应方法。

在这里插入图片描述

动机

为进一步探索域自适应回归问题,首先要回答的便是深度网络应用在回归问题上和分类问题上是否存在本质差别。为了给出该问题的其中一个答案,我们进行了初步的探索。最直观的一点,便是他们的损失函数有明显差异,分类问题中使用的往往是交叉熵(Cross-Entropy Loss,简称CE)损失函数,而在回归问题中使用的往往是平方差(Squared Loss,简称L2)损失函数。在分类问题中,往往需要将分类器最后一层的输出结果经过Softmax激活函数转化成类别概率,然后才能计算CE。这么做的一个好处就是,对于一个样本,只要分类器输出的激活值的相对大小顺序没有发生明显的变化,最后预测的结果就没有发生变化,因此分类结果理应具备快速适应特征尺度变化的能力。但在回归问题中,只要回归器输出的激活值发生变化,最后预测的结果就一定会发生变化。我们做实验分析了在两类问题中**,性能对特征尺度变化的鲁棒性**。
在这里插入图片描述
在图(a)中,我们探究了特征尺度变化对分类性能的影响;在图(b)中,我们探究了特征尺度(弗罗贝尼乌斯范数)变化对分类性能的影响;在图(c)中,我们探究了2类常见的域自适应方法对特征尺度的影响。 可以看到,和我们猜想的一样,在分类问题中,特征尺度变化,性能几乎不受影响,但在回归问题中特征尺度变化性能会受到严重的影响。 同时我们在上图中也展示了部分深度域自适应方法,对特征尺度会有明显的影响。 这说明,保持特征尺度不变,是解决域自适应回归问题的根本途径之一

分析

我们对特征矩阵进行奇异值分解(Singular Value Decomposition)后发现,特征可以分解为正交基和奇异值:
在这里插入图片描述
而特征尺度(Frobenius范数)仅仅与奇异值有关系:
在这里插入图片描述
这就说明,如果我们不使用奇异值,而是仅仅使用正交基来拉近领域之间的距离,就有可能不会改变特征尺度!后面,我们会先介绍一种基于正交基的相似度度量方式———主角(Principal Angle),然后针对性的提出一套基于正交基的迁移性表征学习框架。

主角(Principal Angle)

子空间是由一组正交基张成的(一个子空间的正交基可以不同,不同的正交基也可能张成相同的子空间)。 主角(Principal Angle)是子空间相似性度量中一种常见的度量方式。定义如下:
在这里插入图片描述
可以看到,第i个主角可以挖掘出两个子空间中夹角第i小的两个正交基,是一种合理的子空间度量方式,也是我们后续距离定义的基础。

表征子空间距离

表征子空间距离(Representation Subspace Distance)是利用主角定义的一种几何距离:
在这里插入图片描述
作为子空间中的距离度量,必须满足距离三公理(正定性,对称性,三角不等式):
在这里插入图片描述
利用线性代数的相关知识,这三条公理在附录中已经给出了证明,这里不再赘述。

至此,最小化表征子空间距离已经用于学习可迁移表征了,剩下的问题是如何计算主角。 在公式(1)中,我们已经通过对特征矩阵进行SVD得到了正交基:
在这里插入图片描述
而主角可以用SVD分解两个子空间的正交基矩阵的矩阵乘积得到:
在这里插入图片描述

正交基错配惩罚

在主角和表征子空间距离的定义中,我们发现了一个不合理的事实:正交基的匹配和计算,完全是一视同仁的。这是什么意思呢?在获得正交基的过程中:
在这里插入图片描述
我们可以发现,每个正交基实际上都对应着一个特征值,也就是说,不同正交基实际上是有重要性差别的!显然最大特征值对应的正交基是该子空间中最重要的正交基,而较小特征值对应的正交基则是该子空间中不太重要的正交基,很多时候甚至可以忽略。(如在PCA主成分分析中,这部分不重要的正交基实际上是可以被忽略从而达到降维的目的。)但是,在主角和表征子空间距离的计算中,两个子空间中的正交基只要相似度高,就可以无视其重要性(特征值大小的顺序)被匹配在一起,这显然是不利于达成域自适应的目的的(如迁移了源领域中小特征值的正交基的知识给目标领域中大特征值的正交基,就等同于将源领域的噪声信息传达给了目标领域的主要信息,这显然是有害的)。因此,我们提出了正交基错配惩罚(Basis Mismatch Penalization)来缓解这一问题:
在这里插入图片描述
这里的P矩阵即为计算主角的SVD过程中得到的P矩阵:
在这里插入图片描述
为什么正交基错配惩罚是这样的形式呢?这需要我们深入理解主角的计算过程:
在这里插入图片描述
上图是主角的计算过程,传达了2个重要信息: 1.主角是由主向量(Principal Vector)计算余弦相似度匹配得到的。 2.主向量是原特征矩阵正交基的一个加权和,可以将其理解成变换后的新正交基,也就是说主向量和正交基都是张成相同子空间的正交基,只是原特征矩阵正交基是可以明确对应一个特征值的,而主向量则是原正交基做了一个利于计算主角的线性变换得到的。因此,P矩阵实际上存储了每个主向量需要用到的正交基的权重。且实际实验中观察发现,每个主向量往往都被某个正交基支配。如果该权重完全相等,则意味着正交基的匹配完全考虑了特征值大小。 实际中由于领域差异,两个子空间中同样重要的正交基未必具有相同的语义信息,因此完全按照特征值大小匹配也未必合理,利用正交基错配惩罚给一个较小的正则项就可以取得良好的效果。

可迁移表征学习

本文的方法和其他深度域自适应方法相同,即具备有监督学习项和可迁移表征学习项:

(1)在源领域上的有监督学习:
在这里插入图片描述

(2)在源领域和目标领域上的可迁移表征学习:

在这里插入图片描述

最终组成了一个基于可迁移表征学习的域自适应回归方法:
在这里插入图片描述
最终的网络架构如下图所示,利用了2阶SVD得到了基于正交基的领域适应方法:
在这里插入图片描述

实验

本文利用了已有解耦表征学习领域的2个数据集,首次建立了2个新的域自适应回归基准(Benchmark),他们分别是2D的合成形状图像数据集dSprites和3D的虚拟现实数据集MPI3D。同时,我们也在现实的人体头部姿势估计数据集Biwi Kinect上验证了我们方法的有效性。

数据集介绍

dSprites中有4个回归任务和1个分类任务,如下表所示,但由于方向(Orientation)任务无法完全解耦(不同形状的物体,旋转角度的周期性不同),所以我们在此数据集中的回归任务为物体大小(Scale)和位置的横纵坐标(Position X, Position Y)。相关的图像示例如下图所示,由于共有3个领域,所以共可构建6个迁移任务。
在这里插入图片描述
在这里插入图片描述

MPI3D中有5个分类任务和2个回归任务,如下表所示,我们在此数据集中的回归任务也即为该数据集全部的回归任务(Horizontal Axis, Vertical Axis)。相关的图像示例如下图所示,由于共有3个领域,所以共可构建6个迁移任务。
在这里插入图片描述
在这里插入图片描述

Biwi Kinect中有3个回归任务,如下表所示,我们在此数据集中的回归任务也即为该数据集全部的回归任务(Pitch, Yaw and Roll)。相关的图像示例如下图所示,我们人为将其分为男性和女性两个领域,因此共有2个迁移任务。
在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述

可以看出,我们的方法在各数据集上均有明显的提升,而部分深度域自适应分类方法也可以用在回归任务上且取得一定的性能提升。

总结与展望

本文对深度域自适应回归方法进行了初步探索,基于深度回归里存在的本质问题:输出对特征尺度的变化极为敏感这一特点,提出了基于正交基的可迁移表征学习方法。本文作为对深度域自适应回归问题的初步探索,希望能对后续的域自适应回归工作提供思路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1099606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10种新型网络安全威胁和攻击手法

2023年,网络威胁领域呈现出一些新的发展趋势,攻击类型趋于多样化,例如:从MOVEit攻击可以看出勒索攻击者开始抛弃基于加密的勒索软件,转向窃取数据进行勒索;同时,攻击者们还减少了对传统恶意软件…

android U广播详解(二)

android U广播详解(一) 基础代码介绍 广播相关 // 用作单个进程批量分发receivers,已被丢弃 frameworks/base/services/core/java/com/android/server/am/BroadcastReceiverBatch.java // 主要逻辑所在类,包括入队、分发、结束…

Spacedrive:开源跨平台文件管理 | 开源日报 No.57

denoland/deno Stars: 91.2k License: MIT Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 运行时,使用 V8 引擎并用 Rust 构建。其主要功能包括: 默认情况下具有高度安全性,除非显式启用,否则无法访问文件、网络或环…

docker入门加实战—网络

docker入门加实战—网络 我们运行了一些容器,但是这些容器是否能够进行连通呢?那我们就来试一下。 我们查看一下MySQL容器的详细信息: 主要关注,Networks.bridge.IPAddress属性信息: docker inspect mysql # 或者过…

RT-Thread学习笔记(二):RT-Thread内核

RT-Thread内核 什么是RTOS?RTOS内核包含哪些内容?RT-Thread内核架构RT-Thread系统架构 RT-Thread内核文件RT-Thread系统启动流程RT-Thread 内核配置文件 什么是RTOS?RTOS内核包含哪些内容? RTOS(Real Time Operating System)指的…

PyTorch 深度学习之循环神经网络(基础篇)Basic RNN(十一)

0.Revision: DNN dense 重义层 全连接 RNN处理带有序列的数据 1. What is RNNs? linear layer 1.1 What is RNN? tanh (-1, 1) 1.2 RNN Cell in PyTorch 1.3 How to use RNNCell *先把维度搞清楚 多了一个序列的维度 2. How to use RNN 2.1 How to use RNN - numLayers…

nginx正反向代理,负载均衡

Nginx 正向代理,反向代理 ,负载均衡 Nginx有两种代理协议 七层代理(http协议) 四层代理(tcp/udp流量转发) 四层代理七层代理概念 四层代理 四层代理:基于tcp/ip协议层的转发代理方式&#…

grid网格布局,比flex方便太多了,介绍几种常用的grid布局属性

使用flex布局的痛点 如果使用justify-content: space-between;让子元素两端对齐,自动分配中间间距,假设一行4个,如果每一行都是4的倍数那没任何问题,但如果最后一行是2、3个的时候就会出现下面的状况: /* flex布局 两…

Android versionCode会变成指定数值加001、002、003等后缀

“活久见”—今天遇到个奇怪的问题,指定的versionCode最终在打包出来的apk中,versionCode变成(指定数值 00X的形式) 如下所示: 注:当前build.gradle中的versionCode为26 后来搜索代码,发现原来是这个配置导…

系统架构与Tomcat的安装和配置

2023.10.16 今天是学习javaweb的第一天,主要学习了系统架构的相关知识和原理,下载了web服务器软件:Tomcat,并对其进行了配置。 系统架构包括:C/S架构 和 B/S架构。 C/S架构: Client / Server(…

052:mapboxGL同一个图层,设置每个feature不同的颜色

第052个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中同一个图层,设置每个feature不同的颜色。 这里的数据都是点,通过每个geojson数据的属性中color的值,来同通过get的方式将颜色值挂在到circle-color上。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实…

JavaFX:控件边框设置

JavaFX中控件的边框也可以进行设置。主要有两种方式,一种是Java方式,一种是CSS方式。 JavaFX中控件继承自Region类。setBorder方法用来设置边框属性。 // The border of the Region, which is made up of zero or more BorderStrokes, and zero // or …

Python制作PDF转Word工具(Tkinter+pdf2docx)

一、效果样式 二、核心点 1. 使用pdf2docx完成PDF转换Word 安装pdf2docx可能会报错,安装完成引入from pdf2docx import Converter运行也可能报错,可以根据报错提示看缺少那些库,先卸载pip uninstall xxx,使用pip install python-docx -i htt…

[架构之路-238]:目标系统 - 纵向分层 - 网络通信 - 网络规划与设计框架

目录 一、需求分析 二、网络规划与设计 三、逻辑网络设计 四、物理设计 五、分层网络设计 5.1 接入层交换机 5.2 汇聚层交换机 5.3 核心层交换机 六、网络存储技术 七、IPV6 八、综合布线系统 九、物联网 十、云计算 十一、云存储 一、需求分析 二、网络规划与设…

Hadoop3教程(十五):MapReduce中的Combiner

文章目录 (103)Combiner概述什么是CombinerCombiner有什么用处Combiner有什么特点如何自定义Combiner (104)Combiner合并案例实操如何从日志里查看Combiner如果不存在Reduce阶段,会发生什么自定义Combiner的两种方式 参…

error=‘Cannot allocate memory‘ (errno=12)

Bug信息 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000080000000, 716177408, 0) failed; error=Cannot allocate memory (errno=12)Bug本质原因 服务器内存不足,Java程序无法启动 查看服务器剩余内存 free -h常用的解决思路 减小服务中对JVM的…

基于vue实现滑块动画效果

主要实现:通过鼠标移移动、触摸元素、鼠标释放、离开元素事件来进行触发 创建了一个滑动盒子,其中包含一个滑块图片。通过鼠标按下或触摸开始事件,开始跟踪滑块的位置和鼠标/触摸位置之间的偏移量。然后,通过计算偏移量和起始时的…

2023年10月工作经验及问题整理总结

目录 1.window自带的base64加密解密 2.ElementUI修改鼠标移动到表格的背景色 3.vscode保存时几万个eslint错误 4.Git 拉取Gitee仓库报错:“fatal: unable to access ": Failed to connect to 127.0.0.1 port 1080: Connection r... 4.1本地查看Git是否使用…

Python爬虫-雪球网

前言 本文是该专栏的第8篇,后面会持续分享python爬虫案例干货,记得关注。 地址:aHR0cHM6Ly94dWVxaXUuY29tLw== 需求:根据目标搜索词,获取搜索结果数据 废话不多说,跟着笔者直接往下看详细内容。(附带完整代码) 正文 1. 请求方式和参数分析 使用浏览器打开链接之后,…

【深度学习实验】循环神经网络(四):基于 LSTM 的语言模型训练

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. RNN与梯度裁剪 2. LSTM模型 3. 训练函数 a. train_epoch b. train 4. 文本预测 5. GPU判断函数 6. 训练与测试 7. 代码整合 经验是智慧之父,记忆…