YOLOR:You Only Learn One Representation: Unified Network for Multiple Tasks(2021.5)



原文链接
源代码

Abstract

人们通过视觉、听觉、触觉以及过去的经验来“理解”世界。人类的经验可以通过正常学习(我们称之为外显知识),也可以通过潜意识(我们称之为内隐知识)来学习。这些通过正常学习或潜意识习得的经验将被编码并储存在大脑中,将这些丰富的经验作为一个巨大的数据库,人类可以有效地处理数据,即使这些数据是事先看不见的
在本文中,我们提出了一个统一的网络,将内隐知识和外显知识编码在一起,就像人脑可以从正常学习和潜意识学习中学习知识一样。统一的网络可以生成统一的表示,同时服务于各种任务。我们可以在卷积神经网络中执行核空间对齐、预测细化和多任务学习
结果表明,在神经网络中引入隐式知识,有利于神经网络各任务的性能,我们进一步分析了从所提出的统一网络中学习到的隐式表示,它在捕捉不同任务的物理意义方面表现出了很强的能力

Introduction

人类可以从相同的输入中回答不同的问题。我们的目标是训练一个可以完成许多任务的深度神经网络

problem

如图1所示,人们可以从不同角度分析同一块数据。然而,一个训练好的卷积神经网络(CNN)模型通常只能完成一个单一的目标。一般来说,可以从训练好的CNN中提取的特征通常对其他类型的问题适应性较差。造成上述问题的主要原因是我们只从神经元中提取特征,而没有使用CNN中丰富的隐式知识。当真正的人脑运作时,上述内隐知识可以有效地辅助大脑执行各种任务

内隐知识是指在潜意识状态下习得的知识。然而,对于内隐学习如何运作以及如何获得内隐知识,目前还没有一个系统的定义。在神经网络的一般定义中,从浅层获得的特征通常被称为显式知识,从深层获得的特征被称为隐式知识
本文将与观测结果直接对应的知识称为显性知识。对于模型中隐含的、与观察无关的知识,我们称之为隐含知识

solve

我们提出了一个统一的网络来整合隐式知识和显式知识,并使学习到的模型包含一个通用的表示,而这个通用的表示又支持适合各种任务的子表示,图2 ©说明了提出的统一网络架构

多用途神经网络架构。(a)针对不同任务的不同模型;(b)共享骨干,不同任务不同负责人;©我们提出的统一网络:一个具有显式知识和隐式知识的表示,用于服务多个任务

构建上述统一网络的方法是将压缩感知和深度学习相结合我们证明了用扩展字典重构残差的有效性
本工作的贡献总结如下

  1. 我们提出了一个可以完成各种任务的统一网络,它通过整合隐式知识和显式知识来学习一个通用的表示,通过这个通用的表示可以完成各种任务。所提出的网络以非常少的额外成本(不到参数和计算量的十分之一)有效地提高了模型的性能
  2. 我们**将核空间对齐、预测细化和多任务学习引入到隐式知识学习过程中,**并验证了它们的有效性
  3. 我们分别讨论了使用向量、神经网络和矩阵分解作为工具来建模隐式知识的方法,同时验证了其有效性
  4. 我们证实了所提出的内隐表征可以准确地对应特定的物理特征,并以视觉方式呈现。我们还证实,如果符合客观的物理意义的算子,它可以用来整合隐性知识和显性知识,并且它将具有乘数效应
  5. 结合最先进的方法,我们提出的统一网络在目标检测上达到了与Scale - yolov4 - P7相当的精度,推理速度提高了88%

Related work

(1)显式深度学习:将涵盖一些可以根据输入数据自动调整或选择特征的方法
(2)隐式深度学习:将涵盖隐式深度知识学习和隐式微分导数的相关文献
(3)知识建模:将列出几种可以用来整合隐式知识和显式知识的方法

Explicit deep learning

显式深度学习可以通过以下方式进行:
其中Transformer是一种方式,主要使用query、key或value来获得自关注
非局部网络是另一种获取注意力的方法,它主要提取时间和空间上的成对注意力
另一种常用的显式深度学习方法[7,25]是根据输入数据自动选择合适的kernel

Implicit deep learning

属于隐式深度学习范畴的方法主要有内隐神经表征和深度均衡模型
前者主要是获得离散输入的参数化连续映射表示,以执行不同的任务,后者则是将隐式学习转化为残差形式的神经网络,并对其进行平衡点计算

Knowledge modeling

属于知识边缘建模范畴的方法主要包括稀疏表示记忆网络
前者使用范例、预定义的over complete或学习的字典来进行建模,而后者依赖于组合各种形式的嵌入来形成记忆,并使记忆能够动态添加或更改

How implicit knowledge works?

本研究的主要目的是构建一个能够有效训练内隐知识的统一网络,因此我们将首先关注如何快速训练和推断内隐知识
由于隐式表示zi与观测无关,我们可以将其视为一组常数张量Z = {z1, z2,…zk}

Manifold space reduction

我们认为,一个好的表述应该能够在它所属的多元空间中找到一个适当的投影,并促进随后的客观任务取得成功
例如,如图3所示,如果可以通过投影空间中的超平面成功地对目标类别进行分类,那将是最好的结果。在上面的例子中,我们可以采用投影向量与隐式表示的内积来达到降低流形空间维数的目的,从而有效地完成各种任务

Kernel space alignment


在多任务和多头神经网络中,核空间偏差是一个常见的问题,图4 (a)展示了多任务和多头神经网络中核空间偏差的一个例子。为了解决这个问题,我们可以对输出特征和隐式表示进行加法和乘法运算从而可以对核空间进行平移、旋转和缩放,以对齐神经网络的每个输出核空间,如图4 (b)所示

More functions


除了可以应用于不同任务的功能外,隐性知识还可以扩展到更多的功能中。如图5所示,通过引入加法,可以使神经网络预测中心坐标的偏移量。还可以引入乘法来自动搜索锚点的超参数集,这是基于锚点的目标检测器经常需要的。此外,还可以分别使用点乘法和点串联进行多任务特征选择,并为后续计算设置前提条件

Implicit knowledge in our unified networks

在本节中,我们将比较传统网络和提出的统一网络的目标函数,并解释为什么引入隐性知识对于训练多用途网络很重要。同时,我们还将详细阐述本工作中提出的方法

Formulation of implicit knowledge

传统的网络:
对于传统网络训练的目标函数,我们可以用(1)表示为

式中x为观测值,θ为神经网络的参数集,fθ为神经网络的运算,∊为误差项,y为给定任务的目标

在传统神经网络的训练过程中,通常会最小化ε使fθ(x)尽可能靠近目标。这意味着我们期望具有相同目标的不同观测值是fθ获得的子空间中的单个点,如图6 (a)所示。换句话说,我们期望得到的解空间仅对当前任务ti具有判别性,对各种潜在任务T \ ti中除ti以外的任务具有不变性,其中T = {t1,t2,…, tn}
对于通用神经网络,我们希望得到的表示可以服务于所有属于t的任务。因此,我们需要Relax ε,使得在流形空间上同时找到各任务的解成为可能,如图6 (b)所示
然而,上述要求使得我们无法使用简单的数学方法,如单热向量的最大值或欧氏距离的阈值来得到ti的解。为了解决这个问题,我们必须对误差项进行建模。寻找不同任务的解决方案,如图6 ©所示

Unified Networks

为了训练所提出的统一网络,我们使用显式和隐式知识共同对误差项进行建模,然后用它来指导多用途网络的训练过程。相应的训练方程如下

其中εex和εim分别是对观测值x和潜在代码z的显式误差和隐式误差进行建模的操作。gφ是用于组合或选择显式知识和隐式知识信息的任务特定操作

已有一些将显式知识集成到fθ中的方法,因此我们可以将(2)重写为(3)

★表示可以组合fθ和gφ的一些可能算子

如果将误差项的推导过程扩展到处理多个任务,可以得到

其中Z = {z1, z2,…, zT}是T个不同任务的隐式潜码集合。Φ是用于从Z生成隐式表示的参数。Ψ用于计算显式表示和隐式表示的不同组合的最终输出参数

对于不同的任务,我们可以使用下面的公式来得到对所有z∈Z的预测
对于所有任务,我们从一个通用的统一表示fθ(x)开始经过特定于任务的隐式表示gΦ(z),最后使用特定于任务的鉴别器dΨ完成不同的任务

Modeling implicit knowledge

我们提出的隐性知识可以通过以下方式建模:

使用向量z直接作为隐式知识的先验,直接作为隐式表示。此时,必须假定每个维度是相互独立的

使用向量z作为隐式知识的先验,然后使用权矩阵W进行线性组合或非线性化,从而成为隐式表示

此时,必须假设每个维度都是相互依赖的。我们也可以使用更复杂的神经网络来生成隐式表示,或者使用马尔可夫链来模拟不同任务之间隐式表示的相关性

使用多个向量作为隐式知识的先验,这些隐式先验基Z和系数c形成隐式表示

我们还可以进一步对c进行稀疏约束,并将其转化为稀疏表示形式。此外,我们还可以对Z和c施加非负约束,将它们转化为非负矩阵分解(NMF)形式

Training

假设我们的模型一开始没有任何先验的隐性知识,也就是说,它不会对显式表征fθ(x)产生任何影响。当组合运算符★∈{addition, concatation},初始隐式先验z ~ N(0,σ),并且当组合运算符★是乘法,z ~ N(1,σ)这里,σ是一个非常小的值,接近于零。对于z和φ,在训练过程中都使用反向传播算法进行训练

Inference

由于隐式知识与观测值x无关,因此无论隐式模型gφ多么复杂,在执行推理阶段之前都可以将其简化为一组常数张量。换句话说,隐式信息的形成对我们算法的计算复杂度几乎没有影响。另外,当上述算子为乘法时,如果后续层为卷积层,则使用下面的(9)进行积分。当遇到加法运算符时,如果前一层是卷积层,并且没有激活函数,则可以使用下面的(10)进行积分

Experiments

我们的实验采用了MSCOCO数据集,因为它为许多不同的任务提供了基础真相,包括1个目标检测,2个实例分割,3个全景分割,4个关键点检测,5个材料分割,6个图像标题,7个多标签图像分类和8个长尾目标识别。这些具有丰富注释内容的数据可以帮助训练一个统一的网络,既可以支持计算机视觉相关的任务,也可以支持自然语言处理任务









Conclusions

在本文中,我们展示了如何构建一个集成了隐式知识和显式知识的统一网络,并证明了它在单一模型架构下仍然是非常有效的多任务学习。在未来,我们将把训练扩展到多模态和多任务,如图所示

Appendix

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation是一个Spring框架中的异常,表示无法找到可接受的表示形式。这个异常通常在处理HTTP请求时出现,当客户端请求的媒体类型与服务器支持的媒体类型不匹配时,就会抛出这个异常。 这个异常的出现可能有以下几种原因: 1. 客户端请求的媒体类型与服务器支持的媒体类型不匹配。 2. 服务器没有配置适当的消息转换器来处理请求的媒体类型。 3. 请求的媒体类型不在服务器支持的媒体类型列表中。 解决这个异常的方法有以下几种: 1. 确保客户端请求的媒体类型与服务器支持的媒体类型匹配。 2. 在服务器端配置适当的消息转换器来处理请求的媒体类型。 3. 在服务器端添加支持请求媒体类型的配置。 以下是一个示例代码,演示了如何处理这个异常: ```java @RestController public class MyController { @GetMapping(value = "/example", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<String> example() { // 处理请求 // 如果无法找到可接受的表示形式,抛出HttpMediaTypeNotAcceptableException异常 throw new HttpMediaTypeNotAcceptableException("Could not find acceptable representation"); } @ExceptionHandler(HttpMediaTypeNotAcceptableException.class) public ResponseEntity<String> handleHttpMediaTypeNotAcceptableException(HttpMediaTypeNotAcceptableException ex) { // 处理异常 return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body("Could not find acceptable representation"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值