论文:《You Only Learn One Representation: Unified Network for Multiple Tasks》
论文地址:https://arxiv.org/pdf/2105.04206.pdf
代码地址:https://github.com/WongKinYiu/yolor
如图1所示,人类可以从不同的角度可以分析相同的数据。然而,经过训练的卷积神经网络(CNN)模型通常只能实现一个目标,一般来说,从训练有素的CNN中提取的特征不适用于其他类型的问题。产生上述问题的主要原因是我们只从神经元中提取特征,没有使用CNN中丰富的隐性知识。当真实的人来大脑在运行时,上述的隐性知识可以有效地协助大脑执行各种任务。
图1:人类可以从相同的输入回答不同的问题。我们的目标是训练一个单一的深度神经网络来完成许多任务。
隐性知识是指在潜意识学习地知识。然而没有系统去定义隐性知识如何运作,如何获得隐性知识。在神经网络定义中,从浅层获得的特征通常称为显性知识,从深层获得的特征称为隐性知识。本文将直接把观察到的知识称为显性知识,模型观察不到、与观察无关的知识称为隐性知识。
作者提出一个统一的网络来融合隐性知识(implicit knowledge)和显性知识(explicit knowledge),确保模型包含一个统一的表征(representation),这个统一的表征允许子表征(sub-representation)也适用于其他任务。
图2 ©展示了提议的统一网络体系结构。多用途神经网络架构。a)不同的任务有不同的模式;b)共享主干,不同的头用于不同的任务,c)我们提出的统一网络:一种包括显性知识和隐性知识的表示,适用于多个任务。
构建上述统一的网络的方法是压缩感知与深度学习结合,其主要理论基础可以是。证明了扩展字典法重构残差的有效性。在中,使用稀疏编码来重构CNN的特征图,使其更具有鲁棒性。
贡献:
我们阅读了关于这个课题的相关文献,文献主要分为三个方面;
属于隐性深度学习范畴的方法主要有隐性神经表征和深度均衡模型。
属于知识建模范畴的方法主要包括稀疏表示和记忆网络。
本研究的主要目的是建立一个能够有效训练隐性知识的统一网络,所以在后续的研究中,首先我们将重点关注如何快速训练隐性知识并进行推理。由于隐式表示zi与观测无关,我们可以把它看作是一个常数张量Z = {z1,z2,…,zk}的集合。在这一节中,我们将介绍隐式知识作为常数张量是如何应用于各种任务的。只需知道隐式表示zi与观测无关,我们可以把它看作是一个常数张量Z = {z1,z2,…,zk}的集合即可。
作者认为,一个好的代表应该能够在它所属的流形空间中找到一个适当的投影,并促进随后的客观任务取得成功。例如,如图3所示,如果在投影空间中可以通过超平面成功地对目标类别进行分类,那将是最好的结果。在上面的例子中,可以取投影向量与隐式表示的内积,以达到降维流形空间的目的,有效地完成各种任务。
在多任务多头神经网络中,核空间错位是一个常见问题,图4 (a)给出了多任务多头神经网络中核空间错位的一个例子。为了解决这个问题,可以对输出特征和隐式表示进行加法和乘法运算,使核空间可以进行平移、旋转和缩放,使神经网络的每个输出核空间对齐,如图4 (b)所示。上面的操作模式可广泛应用于不同的领域,如大型对象的功能定位和小对象特征金字塔网络(红外系统)[8],使用蒸馏的知识集成大型模型和小模型和处理zero-shot领域迁移等问题
除了可以应用于不同任务的功能外,隐性知识还可以扩展到更多的功能。如图5所示。
**
在本节中,作者将比较传统网络和提出的统一网络的目标函数,并解释为什么引入隐性知识对训练多用途网络是重要的。同时,也将详细阐述本工作中提出的方法。
Conventional Networks:
对于常规网络训练的目标函数,可以用表示为:
在传统神经网络的训练过程中,通常会将ε使f (x)尽可能接近目标。这意味着我们期望在fθ得到的子空间中,具有相同目标的不同观测是单个点,如图6 (a)所示。换句话说,我们期望得到的解空间仅对当前任务具有判别性,且对任务不变,而对各种潜在任务T \ ti不变,其中T = {t1, t2,…, tn}。
对于通用神经网络,我们希望得到的表征可以服务于所有属于t的任务,我们需要释放ε使每个任务在流形空间上同时求解成为可能,如图6 (b)所示。然而,上述要求使得我们无法使用简单的数学方法,如单热点向量的最大值,或欧氏距离的阈值,来得到ti的解。为了解决这一问题,必须对误差项?查找不同任务的解决方案,如图6所示。
Unified Networks:
为了训练所提出的统一网络,我们将显式和隐式知识结合起来对误差项进行建模,然后用它来指导多目标网络的训练过程。对应的训练方程为:
已有一些方法将显式知识集成到fθ中,因此可以将(2)改写为(3)。
对于不同的任务,我们可以使用下面的公式得到对所有z∈z的预测。
对于所有的任务,我们从一个统一的表示fθ(x)开始,经过任务特定的隐式表示gΦ(z),最后使用任务特定的鉴别器dΨ完成不同的任务。
作者提出的隐性知识可以通过以下方式建模
Vector / Matrix / Tensor(向量/矩阵/张量):
用向量z直接作为隐知识的先验,直接作为隐知识的表示。此时,必须假定每个维度都是相互独立的。
Neural Network(神经网络):
利用向量z作为隐式知识的先验,然后利用权值矩阵W进行线性组合或非线性化,得到隐式知识表示。此时,必须假定每个维度都是相互依赖的。我们也可以使用更复杂的神经网络来生成隐式表示。或者用马尔可夫链来模拟不同任务之间隐式表示的相关性。
Matrix Factorization(矩阵分解):
利用多个向量作为隐性知识的先验,这些隐性先验基于Z和系数c构成隐表示。还可以进一步对c进行稀疏约束,并将其转换为稀疏表示形式。此外,我们还可以对Z和c施加非负约束,将它们转化为非负矩阵分解(NMF)形式。
假设我们的模型一开始没有任何先验的隐式知识,也就是说,它对f (x)的显式表示没有任何影响。什么时候合并运算符☆∈{加法,拼接},初始隐先验z ~ N(0, σ),当梳理算子☆是乘法,z ~ N(1, σ)。这里,σ是一个非常小的值,接近于零。对于z和φ,在训练过程中都使用了反向传播算法进行训练。
由于隐式知识与观测x无关,无论隐式模型gφ多么复杂,在执行推断阶段之前,都可以将其简化为一组常数张量。换句话说,隐式信息的形成对算法的计算复杂度几乎没有影响。另外,当上面的算子是乘法时,如果后面的一层是卷积层,则用下面(9)积分。当遇到加法运算符时,如果前一层是卷积层且没有激活功能,则使用(10)如下所示进行积分。
https://blog.csdn.net/Q1u1NG/article/details/117023368?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163100860116780262575816%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163100860116780262575816&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v29_ecpm-10-117023368.first_rank_v2_pc_rank_v29&utm_term=YOLOR&spm=1018.2226.3001.4187
《You Only Learn One Representation: Unified Network for Multiple Tasks》