人类的经验可以通过正常的学习(我们称之为外显知识),或者潜意识地(我们称之为内隐知识)来学习。这些通过正常学习或潜意识学到的经验将被编码并存储在大脑中。利用这些丰富的经验作为一个巨大的数据库,人类可以有效地处理数据,即使它们是事先没有看到的。在本文中,作者提出了一个统一的网络,将内隐知识和外显知识一起编码. 统一的网络可以生成一个统一的表示法,同时服务于各种任务。我们可以在卷积神经网络中执行核空间对齐、预测细化和多任务学习。结果表明,当将内隐知识引入神经网络时,它有利于所有任务的性能。作者进一步分析了从提出的统一网络中学习到的内隐式表示,它显示了捕捉不同任务物理意义的能力。
代码地址:https:// github.com/WongKinYiu/yolor.
如图1所示,人类可以从不同的角度分析同一条数据。然而,一个经过训练的卷积神经网络(CNN)模型通常只能满足一个目标。一般来说,可以从训练过的CNN中提取的特征通常很难适应其他类型的问题。造成上述问题的主要原因是我们只从神经元中提取特征,而没有使用CNN中丰富的隐式知识。
在神经网络的一般定义中,从浅层获得的特征通常被称为显式知识,而从深层获得的特征则被称为隐式知识。在本文中,作者将直接对应于观察的知识称为显式知识。对于模型中隐含的、与观察无关的知识,称之为隐含知识。
作者提出了一个统一的网络来整合隐式知识和显式知识,并使学习到的模型包含一个通用的表示,而这种通用的表示使子表示适合于各种任务。图2. (c)说明了所提出的统一网络架构。构建上述统一网络的方法是将压缩感知和深度学习相结合
这项工作的贡献总结如下:
本文献综述主要分为三个方面: (1)显式深度学习:它将涵盖一些方法,可以自动调整或选择特征基于输入数据,(2)隐式深度学习:它将涵盖内隐深度知识学习和隐式微分导数,和(3)知识建模:它将列出几种方法,可以用来整合内隐知识和外显知识。
显式深度学习可以通过以下方式进行。其中,transformer是一种方式,它主要使用query、key或value进行自注意力计算。非局部网络[21,4,24]是另一种获得注意的方式,它主要在时间和空间上提取成对的注意力。另一种常用的显式深度学习方法[7,25]是通过输入数据自动选择合适的内核。
属于内隐深度学习范畴的方法主要是内隐式神经表征[11]和深度平衡模型[2,3,19]。前者主要是获得离散输入的参数化连续映射表示,以执行不同的任务,而后者主要是将内隐学习转化为残差形式的神经网络,并对其进行平衡点计算。
对于属于知识建模范畴的方法,主要包括稀疏表示[1,23]和内存网络[22,12]。前者使用范例、预定义的完整字典或学习字典来执行建模,而后者依赖于结合各种嵌入形式来形成内存,并使内存能够动态地添加或更改内存。
因此我们首先关注如何快速训练内隐知识和推理。由于隐式表示zi与观测无关,可以把它看作是一组常数张量z={z1,z2,...,zk}。本节主要介绍如何将内隐知识作为常数张量应用于各种任务。
我们认为,一个好的表示法应该能够在它所属的流形空间中找到一个适当的投影,并促进后续的目标任务的成功。例如,如图3所示,如果在投影空间中的超平面能够成功地分类目标类别,这将是最好的结果。在上面的例子中,我们可以利用投影向量和隐式表示的内积来实现降低流形空间的降维,有效地实现各种任务的目标。
在多任务和多头神经网络中,核空间错位是一个常见的问题,图4。(a)举例说明了多任务和多头神经网络中核空间错位的一个例子。为了解决这个问题,我们可以对输出特征和隐式表示进行加法和乘法,从而对核空间进行平移、旋转和缩放,以对齐神经网络的每个输出核空间,如图4.(b).所示上述操作模式可以广泛应用于不同的领域,如特征对齐的大的对象和小的对象在特征金字塔网络(FPN)[8],使用知识蒸馏集成大模型和小模型,处理零镜头域转移等问题。
除了可以应用于不同任务的函数外,隐式知识还可以扩展到更多的函数中。如图5所示,通过引入加法,我们可以通过神经网络来预测中心坐标的偏移量。还可以引入乘法来自动搜索锚点的超参数集,这是基于锚点的对象检测器经常需要的。此外,还可以分别使用点乘法和连接法来进行多任务特征选择,并为后续计算设置先决条件。
本节将比较传统网络的目标函数和所提出的统一网络,并解释为什么引入隐式知识对于训练多用途网络很重要。
传统的网络:
对于传统的网络训练的目标函数,我们可以使用(1)来表示如下:
在传统的神经网络的训练过程中,我们常常采用最小化。此时,获得的仅仅是对当前任务的最优解,并且对以外的任务T \ ti不变,其中T = {t1,t2,...,tn} 。
因此,我们需要放松,以便在流形空间上同时找到每个任务的解,如图6.(b).所示但是,上述要求使得我们不可能使用一个简单的数学方法进行实现,如独热向量的最大值,或欧氏距离的阈值,来得到ti的解。为了解决这个问题,我们必须对误差项进行建模,以找到不同任务的解决方案,如图6所示。(c).
统一网络:
为了训练所提出的统一网络,我们同时使用显式知识和隐式知识来建模误差项,然后使用它来指导多用途网络训练过程。对应的训练公式如下:
其中和分别是建模的操作,显式错误和隐式错误。是一项特定任务的操作,用于结合外显性知识和隐式知识中的信息或选择信息。
有一些现有的方法可以将显式知识集成到fθ中,所以我们可以将(2)重写为(3)。
*为连接f和g的操作符,可以为加法、乘法、连接
如果我们将误差项的推导过程扩展到处理多个任务,我们可以得到以下公式:
其中Z = {z1,z2,...,zT }是T个不同任务的隐式潜在信息。Φ是可用于从z中生成隐式表示的参数。Ψ用于计算来自显式表示和隐式表示的不同组合的最终输出参数。
对于不同的任务,我们可以使用以下公式来得到对所有z∈Z的预测。
对于所有的任务,我们从一个共同的统一表示fθ(x)开始,通过特定任务的隐式表示gΦ(z),最后使用特定任务的鉴别器dΨ完成不同的任务。
我们提出的隐式知识可以用以下方式进行建模:
直接使用向量z作为隐式知识的先验,并直接作为隐式表示。此时,必须假定每个维度都是相互独立的。
利用向量z作为隐式知识的先验,然后利用权值矩阵W进行线性组合或非线性化,然后成为隐式表示。此时,必须假定每个维度都是相互依赖的。我们也可以使用更复杂的神经网络来生成隐式表示。或者使用马尔可夫链来模拟不同任务之间的隐式表示的相关性。
使用多个向量作为隐式知识的先验,这些隐式先验基Z和系数c将形成隐式表示。我们还可以进一步对c进行稀疏约束,并将其转换为稀疏表示形式。此外,我们还可以对Z和c施加非负约束,将它们转换为非负矩阵分解(NMF)形式。
假设我们的模型在开始时没有任何先验隐式知识,也就是说,它对显式表示fθ(x)没有任何影响。当组合操作为{加法,连接}时,初始隐式先验z∼N(0,σ),当组合操作为乘法时,z∼N(1,σ)。在这里,σ是一个非常小的值,它接近于零。对于z和φ,它们在训练过程中都采用了反向传播算法进行训练
推理看成一组常量即可
由于隐式知识与观测x无关,无论隐式模型gφ有多复杂,在推理阶段执行之前,都可以将其简化为一组常数张量。换句话说,隐式信息的形成对我们的算法的计算复杂度几乎没有影响。此外,当上面的算符是乘法时,如果后面的层是卷积层,那么我们使用下面的(9)来进行积分。当遇到一个加法运算符时,如果前一层是一个卷积层,并且它没有激活函数,那么可以使用下面所示的(10)进行积分。
采用MSCOCO数据集,使用Scale YOLOv4- CSP作为baseline
在每个FPN的特征映射中添加隐式表示,用于特征对齐
隐式表示被添加到YOLO输出层中,以进行预测细化。
当需要训练一个可以被多个任务同时共享的模型时,由于必须执行损失函数的联合优化过程,会导致最终的整体性能比单独训练多个模型然后整合更差。为了解决上述问题,作者建议为多任务处理训练一个规范表,通过向每个任务分支引入隐式表示来增强表示能力
上面表格中,JDC表示联合检测和分类,JDE表示联合检测和嵌入。下面的均是加入隐式表示的结果。
表4显示了使用图10中所示的不同操作符来结合显式表示和隐式表示的实验结果。在特征对齐实验的隐式知识中,我们看到添加和连接都提高了性能,而乘法实际上降低了性能。特征对齐的实验结果完全符合其物理特性,因为它必须处理全局位移和所有单独集群的缩放。 在预测细化实验的隐式知识中,由于连接的算子会改变输出的维数,因此只比较了在实验中使用加法和乘法算子的效果。在这组实验中,应用乘法的性能优于应用加法的性能。通过分析原因,发现中心偏移在执行预测时使用加法解码,而锚定缩放使用乘法解码。由于中心坐标以网格为界,影响较小,人为设置的锚点具有更大的优化空间,因此改进更显著。
基于上述分析,我们还设计了另外两组实验——{×iFA∗,×iPR∗}。在第一组实验中——×iFA∗中,我们将特征空间分割成锚定簇级,并与乘法相结合,而在第二组实验中——×iPR∗中,我们在预测中只对宽度和高度进行了乘法细化。上述实验结果见表5。从表5所示的图中我们发现,经过相应的修改,各指标的得分得到了全面的提高。实验表明,在设计如何结合显式知识和隐式知识时,必须首先考虑组合层的物理意义,以实现乘数效应。
我们试图用不同的方式建模隐式知识,包括向量、神经网络和矩阵分解。在使用神经网络和矩阵分解进行建模时,隐式先验维数的默认值是显式表示维数的两倍。本组实验的结果如表6所示。我们可以看出,无论是使用神经网络还是矩阵分解来建模隐式知识,它都将提高整体效果。其中,利用矩阵分解模型取得了最好的效果
我们发现,在具有隐式知识集的实验模型中,我们只增加了参数和计算量不到千分之一,这可以显著提高模型的性能,训练过程也可以快速、正确地收敛。
与最近的工作比较