Paper Reading: Neural random subspace
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《Neural random subspace》 |
作者 | Yun-Hao Cao, Jianxin Wua, Hanchen Wang b, Joan Lasenby |
发表期刊 | 《Pattern Recognition》 |
发表年份 | 2020 |
期刊等级 | 中科院 SCI 期刊分区(2022年12月最新升级版)1区、CCF-B |
论文代码 | https://github.com/CupidJay/NRS_pytorch |
作者单位:
State Key Laboratory for Novel Software Technology, Nanjing University, China;
Department of Engineering, University of Cambridge, UK
研究动机
深度卷积神经网络(CNN)在图像分类和 3D 识别等多种计算机视觉任务[10]中取得了显著的进展,但基于随机子空间的森林方法(如 RF、GBDTs)在表格型的数据集上仍然有良好的效果。但是它们的操作是预定义的,且输入数据的表示也是固定的,因此它们缺乏学习数据表示的机制。相比之下 CNN 可以有效地管理大规模数据集的计算,并且以端到端的方式集成了表示学习和分类器学习。
然而在深度学习背景下的随机子空间方法还没有得到全面的研究,在这个方面有以下 2 个值得探究的问题:
- 能否使随机子空间具有端到端表示学习能力,同时能更好地利用深度学习软件和硬件支持?
- 能否在线性 global average pooling 中加入非线性以实现高水平的精度和高效率?
文章贡献
本文中提出了一种基于深度学习的随机子空间模型——神经随机子空间模型(Neural Random subspace, NRS),实现了在 NN 中可使用的随机子空间方法。它可以充分地处理表格型的数据,并且相对于传统的基于随机子空间的森林方法实现了更高的精度和更快的推理速度。
此外 NRS 可以配置在 CNN 末端的 GAP 层之后,对 GAP 的输出进行非线性转换。NRS 可获得比标准GAP更高的精度,且在模型参数、FLOPs 和时间方面的额外成本可以忽略不计。
神经随机子空间算法
随机子空间方法
随机子空间(random subspace method, RSM)的方法首先从 d 维数据集中随机选择 r<d 个特征,得到原始特征空间的 r 维随机子空间,然后在对应的随机子空间中构造分类器。进行决策的时候,则需要结合所有分类器的结果。
因此如果要在神经网络环境下实现 RSM,有两个需要解决的问题:
- 如何构造不同的随机子空间;
- 如何构造相应的基学习器。
NRS 架构
本文目标是结合集成学习和深度学习的优点,建立一个基于随机子空间的神经分类器集成,所提出的NRS的新架构包含了2个主要部分。
Expansion
NRS 以 d 维特征向量 x∈rd 作为输入,输出一个 nH × nH × C 的张量 I,这些符号及其含义如下:
符号 | 说明 |
---|---|
nH | 方形输出张量的空间宽度和高度 |
C=nMul×d | 输出的通道数量 |
nMul | 深度的展开率 |
首先通过对输入向量 x 重新排序生成 M 个随机排列,其中 M = nH × nH × nMul。作者给出图中展示了 nH = 2、nMul = 2 的例子:
将 M 个排列元素的阶数表示为 σ1, …, σm,每个 σt 表示一个特征排序序列。通过如下的公式可以得到一个重排列后的向量 zt,第 t 个排列的第 i 项是 σti 对应的值,M 个 σ 得到了一组随机排列的向量 Z。一句话概括,其实就是将特征的顺序打乱后,生成一些新的特征向量。
对于张量 I 而言,其中的每一个元素 I(i,j,k) 与 Z 的对应关系如下面的公式所示。在图例中的 C=nMul×d=10,从张量的空间形状上看,看到的是 nMul 个长为 d、宽和高为 nH 的“立方体”。
Aggregation
在聚合部分使用了组卷积层处理张量 I,组卷积层的主要设置如下,其中 nPer 表示组卷积层中每个组的通道数。
组件 | 设置 |
---|---|
卷积核大小 | (nH, nH) |
输出通道数 | C |
组数 | c/nPer(向下取整) |
padding | 无 |
通过组卷基层之后得到一个新的一维张量 S∈r(1×1×c) 进入 ReLU,最后进入全连接层和用于分类任务的 softmax 层。
CNN 实现
张量 I 由一组二维特征映射 I={I^k}(k=1,…,C) 组成,ik 大小为 nH × nH。Ik 表示第 k 个通道的特征图,每个特征图由 nH × nH 个特征组成。IK 的特征是从原始特征向量 x 中随机选择的,即一个特征随机子空间。每组卷积滤波器随机选择 nH × nH × nPer 个特征和 ReLU 层能输出这些随机选择特征的线性组合,可视为一级斜决策树。
作者的图中显示了 nPer = 1 时群卷积层(即深度卷积)时的情况,
符号 | 说明 |
---|---|
Wk | 第 k 个卷积滤波器的权重 |
Sk | 张量 S 的第 k 个通道 |
S 的第 k 个通道在 I 的第 k 特征图上与内核 Wk 卷积为如下:
设 f(·)表示 ReLU 函数,NRS 的输出为如下,每个卷积滤波器 Wk 以及 ReLU 类似于一个一级树。每个一级树输出随机选择特征的线性组合然后进行决策,因此所有的卷积滤波器都是由 C 个不同的树组成的集合。
原文的 3.4 章节给出了 Computational complexity 分析,结论是用群卷积设计 NRS 有两个优势:
- 卷积中的不重叠思想与随机子空间方法一致。在标准卷积中每个卷积滤波器将利用所有特征,在组卷积中每个组卷积滤波器只利用自己组内的特征,组之间没有重叠,与随机子空间的思想一致。
- 群卷积在参数和计算复杂度方面都是有效的。
架构总结
随机排列进行特征重采样、群卷积用于聚合构建出随机子空间,每个基学习器从一个随机子空间中学习。最后通过全连接层将随机子空间的输出进行组合,进行分类。
基于随机子空间的决策森林使用自举生成特征子集,所有的特征不一定都被使用。NRS 中的每个特征出现相等的次数(M 次),因此保证了每个特征都有被使用的可能。
当增加 nMul 时,通道 C 的数量会变大,就能够得到更多的群卷积滤波器,更多的随机子空间被相应地集成到同形中。还可以进一步提高 nPer 和 nH,增加每个随机子空间中的特征量,最后通过叠加更多的群卷积层还可以使 NRS 更深入。
实验分析
数据集
实验使用了 34 个机器学习分类数据集、1 个多变量回归数据集 SARCOS 和 2 个文档检索任务 Microsoft 10K 和 Microsoft 30K 上进行评估,数据集的概况和一些实验设置如下表所示。除此之外,还在一些图像数据集和 3D 物体数据集上做了实验。
ML 数据集的结果
本文将 NRS 与森林方法进行了比较,例如随机子空间(RSs)、随机森林(RFs)和 GBDTs 的精度、训练/测试时间、模型大小。此外还和 MLP 进行了比较,MLP-2 和 MLP-3 分别表示具有 2 个 和 3 个 FC 层的 MLP,MLP-dropout 表示使用了 dropout。具体的模型参数和实验设置,可具体查看论文的 4.2 章节。评价指标方面,分类问题是 acc,回归问题使用 MSE。
首先选取了 satimage、GISETTE、MNIST、letter、USPS 和 yeast 6 个数据集,比较了 NRS 和几种 MLP 的性能。可以看出 MLP-3 的性能与 MLP-2 相当,NRS 在所有 6 个数据集上的精度都高于 MLP-2 和 MLP-3。
从下表可以看出,与 MLP、RSs、RFs、GBDTs、NDF 和 ANT 相比,在大部分情况下 NRS 的 acc 最高(MSE 最低),证明了 NRS 在不同维度和大小的数据集上的有效性。
在下表中比较了 NRS 与 RSs、RF 和 GBDTs 的速度和大小,基于 gpu 的方法 ThunderGBM 和 NRS 极大地加速了大规模数据集 SUSY 上的训练过程,与传统的森林方法相比效率要高得多。与 NDF 相比,NRS 的训练、推理速度更快且模型规模更小,表明 NRS 能更好地利用深度学习平台。
超参数设置
超参数实验中主要分析了展开率 nMul、每组通道数 nPer、扩展高度/宽度nH、组卷积层数这几个超参数,这些超参数的影响如下所示。
超参数 | 影响 |
---|---|
nMul | nMul 增大时平均精度增大,标准差变小。表明随着更多的随机子空间被集成时,性能会变得更好。 |
nPer | nPer增大时测试精度先增大,后趋于稳定或略有下降。意味着 nPer 增加时每个随机子空间的容量也会增加,整个模型的容量也会增加,因此精度也会先增加。但是当模型的 nPer 和模型容量较大时,模型更容易过拟合。 |
nH | 当 nH 很小(nH = 1)时结果很差,dH/dW 越大结果越好,超过 3 后不再继续改善 |
组卷积层数 | 不同的组卷积层数在数据集上的结果相当,但组卷积层数越多,计算开销越大 |
消融实验
特征随机排列操作是一个线性操作,可以等效地由一个具有两个特点——稀疏初始化、冻结权重的全连接层。为了进一步验证随机排列操作在 NRS 中的有效性,使用全连接层替代了随机排列进行消融实验。
下表表示在所用的数据集上,行(d)始终优于其他策略,表明随机排列中的稀疏初始化和冻结权重的特点具有有效性。同时随机排列操作不容易过拟合,且由于没有参数使得效率更高。
文档检索数据集
文档检索数据集使用的评价指标是 NDCG(Normalized discounted cumulative gain),基线方法是 ListNet、ApproxNDCG、RankCosine、WassRank,具体的实验设置见原文的 4.3 章节。
下表的实验数据表示,将 NRS 集成到各种基线模型中均能获得较好的性能,表明 NRS 与不同算法结合在文档检索任务中具有提高性能的潜力。
计算机视觉数据集
对于图像识别任务,在池化层之后使用 NRS 对网络输出向量进行非线性变换,并在细粒度视觉分类任务、ImageNet ILSVRC-12 数据集进行评估,此外还测试了 NRS 在 cnn 的所有层上设置的性能。
细粒度视觉分类
在鸟类、飞机和汽车数据集上使用 ResNet-50 和 VGG-16 来评估 NRS,与基线模型和三种具有代表性的高阶池化方法进行了比较,具体的实验设置见原文的 4.4.1 章节。
下表显示与基线模型相比,NRS 方法取得了显著的改进,且参数、FLOPs 和实际运行时间的增加可以忽略不计,在精度和效率之间取得了很好的平衡。
从学习曲线可以看出,与基线方法相比,NRS 可以大大加快收敛速度。表明 NRS 能够有效地学习非线性特征表示,在细粒度识别方面取得了良好的效果。
ImageNet ILSVRC-12
在大规模 ImageNet ILSVRC-12 任务上评估 NRS 与基线方法的比较,具体的实验设置见原文的 4.4.2 章节。
结果显示 NRS 比原始 MobileNetV2、ResNet-18 和 ResNet-50 模型分别产生 0.70%、1.92% 和 0.73% 的 top-1 误差,参数和 FLOPs 的增加可以忽略不计,表明 NRS 方法在大规模识别中也很有效。
跨所有层的 NRS
用 NRS 代替所有的 Squeeze-and-Excitation 模块,对 CIFAR-10、CIFAR-100 和 ImageNet ILSVRC-12 任务进行了实验,与基线方法和不同架构下的SENet进行了比较,具体的实验设置见原文的 4.4.3 章节。
在计算规模方面,NRS 模块比原始 SE 模块具有更少的参数和计算成本,并且随着 C 的增加,减少将变得更大。
与基线方法的比较,结果显示,在 ResNet-20 下的 SENet+NRS 在 CIFAR-10 和 CIFAR-100 上的精度最高,参数和 FLOPs 的增加可以忽略不计。SENet+NRS 能在使用更少的参数和 flop 的情况下,获得了与原始 SENet 相当或更好的精度。
下表显示在 ResNet-50下的 SENet+NRS 在保持相当精度的情况下,比原始 SENet 实现了更少的参数、FLOPs 和实际运行时间。表明 NRS 不仅可以集成在 CNN 的末端,而且可以集成在 CNN 的所有层。
3D 识别数据集
对于基于点云的三维物体识别任务,在全局特征编码器之后使用 NRS,并在 PointNet、pointnet++ 和 DGCNN 下的 ModelNet40 上评估其有效性。将 NRS 增强的模型与 PointConv 和 RSCNN 比较,具体的实验设置见原文的 4.5 章节。
实验数据显示 PointNet+NRS 和 (pointnet++)+NRS 在参数、flop 和推断时间上的增加可以忽略不计,都比基线获得了更高的精度。
优点和创新点
个人认为,本文有如下一些优点和创新点可供参考学习:
- 将基于随机子空间的森林方法的思想运用在 NN 系列的算法上,发挥了两种类型算法的优势;
- 使用了群卷积,在思想上与随机子空间方法一致,且在参数和计算复杂度方面;
- 算法的可扩展性强,不仅能在通过全连接层和 softmax 完成任务,也可以集成进其他算法的不同部分;
- 实验数据丰富有力,除了在多个数据集上进行了性能比较、参数实验和消融实验,还在文本检索、图像识别和 3D 识别问题上进行实验,说服力强。