【读点论文】MobileDets: Searching for Object Detection Architectures for Mobile Accelerators,适配不同硬件平台的搜索方案

MobileDets: Searching for Object Detection Architectures for Mobile Accelerators

Abstract

  • 建立在深度方向卷积上的反向瓶颈层已经成为移动设备上的最新对象检测模型中的主要构件。
  • 在这项工作中,本文通过重新考察常规卷积的有效性,研究了这种设计模式在各种移动加速器上的最优性。本文发现,常规卷积是一个有效的组件,可以提高加速器上对象检测的延迟-准确性权衡,前提是它们通过神经架构搜索被有策略得地放置在网络中
  • 通过在搜索空间中引入常规卷积并直接优化对象检测的网络架构,本文获得了一系列对象检测模型MobileDets,它们在移动加速器上实现了最先进的结果。在COCO对象检测任务上,MobileDets在可比的移动CPU推断延迟上比MobileNetV3+SSDLite高出1.7 mAP。在不增加延迟的情况下,MobileDets在移动CPU上也优于MobileNetV2+SSDLite 1.9 mAP,在Google EdgeTPU上优于3.7 mAP,在高通Hexagon DSP上优于3.4 mAP,在Nvidia Jetson GPU上优于2.7 mAP。
  • 此外,即使不使用特征金字塔,MobileDets也可以与移动CPU上最先进的MnasFPN相媲美,并在EdgeTPUs和DSP上获得更好的mAP分数,加速高达2倍。TensorFlow对象检测API中提供了代码和模型:models/research/object_detection at master · tensorflow/models (github.com)
  • 论文:[2004.14525] MobileDets: Searching for Object Detection Architectures for Mobile Accelerators (arxiv.org)
  • [Object Detection API 现已支持 TensorFlow 2](兼容性Up!Object Detection API 现已支持 TensorFlow 2 (qq.com))
  • 来自威斯康星大学麦迪逊分校和 Google 的研究人员发表了他们在 MobileDet 上所做的研究工作,发表在CVPR2021。他们在 MobileDet 的研究中提出了一种架构理念,用于设计专门在 DSP、Edge TPU 等移动加速器上运行的目标检测器。在加速推理时间相同的情况下,MobileDet 在 COCO 目标检测任务中的表现,相比 MobileNetV2+SSDLite 和 MobileNetV3+SSDLite 架构得到了重大提升。

Introduction

  • 在许多计算机视觉应用中,可以观察到更高容量的网络会催生更好的性能[InceptionV4, SENet,Learning transferable architectures for scalable image recognition,Regularized evolution for image classifier architecture search]。然而,它们通常消耗更多的资源。这使得在推理预算有限的情况下,寻找具有合适精度-速度权衡的模型以部署在边缘设备上具有挑战性。

  • 大量的工作已经投入到边缘设备的轻量级神经架构的手动设计中[MobilenetV1,V2,shufflenet,Antnets]。大失所望得是,依靠人类的专业知识是非常耗时的,并且可能不是最佳的。新硬件平台发布的速度让这个问题变得更加严重。在许多情况下,这些较新的平台具有不同的性能特征,这使得以前开发的模型不是最佳的。

  • 为了解决自动调整神经网络结构的需要,已经提出了许多方法。特别是,神经架构搜索(NAS)方法[ProxylessNAS,Chamnet, MobileNetV3, MnastNet, EfficientNet]已经证明了在特定硬件平台上寻找不仅准确而且有效的模型的卓越能力。

  • 尽管NAS算法取得了许多进步,但值得注意的是,反向瓶颈(IBN) [MobilenetV2,逆残差结构]仍然是最先进的移动模型中的主要构建模块。仅限IBN的搜索空间也是大多数相关NAS工作的首选设置[ProxylessNet,mobilnetV3,MnasNet,EfficientNet]。IBN层严重依赖于深度方向和深度方向可分离卷积。由此产生的模型具有相对较低的FLOPS和参数计数,并且可以在CPU上高效地执行。

  • 然而,对于在移动设备上越来越流行的硬件加速器,如DSP或EdgeTPUs,深度卷积在移动推理中的优势并不明显。例如,对于某些张量形状和核维数, 常 规 卷 积 的 运 行 速 度 可 以 是 E d g e T P U 上 深 度 方 向 变 化 的 3 倍 , 尽 管 常 规 卷 积 比 深 度 卷 积 有 7 倍 多 的 F L O P s \textcolor{#ff0000}{常规卷积的运行速度可以是EdgeTPU上深度方向变化的3倍,尽管常规卷积比深度卷积有7倍多的FLOPs} EdgeTPU37FLOPs。这一观察使本文质疑在大多数当前最先进的移动架构中仅使用IBN搜索空间。

  • 本文的工作旨在重新思考在现代移动加速器上只使用IBN搜索空间的问题。为此,本文提出了MobileDet搜索空间族,它不仅包括IBN,还包括由张量分解结构激发的灵活的全卷积序列[Analysis of individual differences in multidimensional scaling via an n-way generalization of “eckart-young” decomposition,Scaling recurrent models via orthogonal approximations in tensor trains,Some mathematical notes on three-mode factor analysis]。以对象检测任务为例(最受欢迎的移动视觉应用之一),本文展示了MobileDet搜索空间系列使nas方法能够在移动CPU、DSP、EdgeTPUs和edge GPUs上以更好的延迟-准确性权衡来识别模型。

  • 为了评估本文提出的MobileDet搜索空间,本文针对一组不同的移动平台,执行了用于对象检测的延迟感知NAS。实验结果表明,通过使用本文的MobileDet搜索空间系列并直接搜索检测任务, 本 文 可 以 在 所 有 硬 件 平 台 上 持 续 提 高 性 能 \textcolor{#00ff00}{本文可以在所有硬件平台上持续提高性能}

  • 通过利用网络中选定位置的全卷积,本文的方法明显优于仅IBN模型。本文的搜索模型MobileDets在可比的推理延迟下, 在 C P U 上 比 M o b i l e N e t V 2 分 类 主 干 高 出 1.9 m A P , 在 E d g e T P U 上 高 出 3.7 m A P , 在 D S P 上 高 出 3.4 m A P , 在 e d g e G P U 上 高 出 2.7 m A P \textcolor{blue}{在CPU上比MobileNetV2分类主干高出1.9mAP,在EdgeTPU上高出3.7mAP,在DSP上高出3.4mAP,在edge GPU上高出2.7mAP} CPUMobileNetV21.9mAPEdgeTPU3.7mAPDSP3.4mAPedgeGPU2.7mAP

  • 在类似的CPU推理效率下,MobileDets也比最先进的MobileNetV3分类主干高出1.7mAP。此外,搜索到的型号实现了与最先进的移动CPU检测器MnasFPN 相当的性能,而没有利用可能会使部署复杂化的NAS-FPN头。在EdgeTPUs和DSP上,MobileDets都比MnasFPN更准确,但速度却是后者的两倍多。

  • 本文的主要贡献可以总结如下:

    • 不同于许多现有的专门关注移动应用的IBN层的工作,本文提出了一个基于常规卷积的构造块的扩充搜索空间族。本文表明,NAS方法可以充分受益于这种扩大的搜索空间,以在各种移动设备上实现更好的延迟-准确性权衡。
    • 本文提供MobileDets,这是一套移动对象检测模型,在多种硬件平台上具有最先进的质量-延迟权衡,包括移动CPU、EdgeTPUs、DSP和edge GPUs。代码和模型将被发布,以使广泛的ondevice对象检测应用受益。
  • 在这里插入图片描述

  • Platform-aware NAS and our MobileDet search space work synergistically to boost object detection performance on accelerators.

    • 在具有不同主干设计的Pixel-4 DSP上的SSDLite对象检测性能:手动设计的MobileNetV2,使用仅IBN搜索空间进行搜索,以及使用建议的MobileDet空间进行搜索(使用IBN和完全基于conv的构建块)。层被可视化为竖条,其中颜色指示层类型,长度指示扩展比率。C4和C5标记SSDLite头的特征输入。
    • 虽然在仅限IBN的搜索空间中执行平台感知NAS比手工基线实现了1.6的mAP提升,但在MobileDet空间中进行搜索又带来了1.6的mAP提升。
  • 在移动端上的目标检测架构,目前比较流行的三大派系分别为:谷歌出品的MobileNet系列(v1-v3)、旷视科技产品的ShuffleNet系列(v1-v2)、Facebook出品的FBNet(v1-v3)系列。最近移动端的目标检测通过结合神经网络架构搜索,又新出了三篇移动端目标检测SOTA模型:一篇出自谷歌大牛Quoc V. Le的MixNet;另一篇出自Facebook 出品的FBNet 的升级版本 FBNetV2,就在6月3日,Facebook又推出了FBNetV3。[引用](超越MobileNetV3,谷歌提出MobileDets:移动端目标检测新标杆 - 知乎 (zhihu.com))

  • 这篇论文可以说有着史上最强豪华作者阵营,包括了DARTS的作者-HanXiao Liu、Tan Mingxing(MixNet、MobileNetV3、MnasNet、EfficientNet、EfficientDet都出自他之手)。

Related Work

Mobile Object Detection

  • 对象检测是一个经典的计算机视觉挑战任务,目标是学习识别图像中感兴趣的对象。现有的物体检测器可分为两类:两级检测器和一级单次检测器。

    • 对于两级检测器,包括更快的RCNN 、R-FCN 和ThunderNet ,在检测器可以进行任何后续预测之前,必须首先生成区域建议。由于这种多级性质,两级检测器在推断时间方面效率不高。
    • 另一方面,一级单次检测器,如SSD 、SSDLite 、YOLO 、SqueezeDet和Pelee,只需要单次通过网络来预测所有的边界框,使它们成为边缘设备上高效推断的理想候选。因此,在这项工作中,本文主要关注一级检测器。
  • SSDLite 是SSD的一种高效变体,已成为最受欢迎的轻型检测头之一。它非常适合移动设备上的用例。高效的骨干网络,如MobileNetV2 和MobileNetV3 ,与SSDLite配对,实现最先进的移动检测结果。这两个模型都将被用作基线来证明本文提出的搜索空间在不同移动加速器上的有效性。

Mobile Neural Architecture Search (NAS)

  • NetAdapt和AMC率先尝试利用延迟感知搜索来微调预训练模型的通道数量。MnasNet 和MobileNetV3 扩展了这一思想,在NAS框架内寻找资源高效的架构。通过多种技术的结合,MobileNetV3在移动CPU上提供了最先进的架构。作为一个补充方向,最近有许多旨在提高NAS搜索效率的努力[Understanding and simplifying one-shot architecture search,Smash,ProxylessNAS,Once for all: Train one network and specialize it for efficient deployment,Darts,Efficient neural architecture search via parameter sharing,FBNet]。

NAS for Mobile Object Detection

  • 大多数NAS文献关注于分类,并且仅将学习到的特征提取器重新用作对象检测的主干,而没有进一步的搜索。最近,多篇论文[MnasFPN,DetNas,NasFocs]表明,通过直接搜索对象检测模型,可以获得更好的延迟-准确性权衡。
  • 移动检测模型的一个强大的检测特定NAS基线是MnasFPN ,它使用移动友好的搜索空间搜索特征金字塔头部,该搜索空间大量利用深度方向可分离卷积。几个因素限制了它对移动加速器的推广:
    • (1)到目前为止,深度方向卷积和特征金字塔在这些平台上的优化程度较低
    • (2) MnasFPN不搜索主干,这是延迟的瓶颈。相比之下,本文的工作依赖于SSD头,并提出了一种新的基于全卷积的主干搜索空间,这更适合移动加速。
  • 虽然开发一个跨越一系列多样化和动态发展的移动平台的通用搜索空间家族具有挑战性,但本文朝着这一目标迈出了第一步,从最常见的平台开始,如移动CPU、DSP和EdgeTPUs。

Revisiting Full Convolutions for Mobile Search Spaces

  • 在本节中,本文首先解释为什么IBN层可能不足以处理移动CPU之外的移动加速器。然后,本文提出了基于常规卷积的新构建模块来丰富本文的搜索空间,并讨论了这些构建模块与 T u c k e r / C P 分 解 \textcolor{blue}{Tucker/CP分解} Tucker/CP之间的联系
  • Are IBNs all we need?
    • 反向瓶颈(IBN)的布局如下图所示。
      • 在这里插入图片描述

      • Inverted bottleneck layer: 1 × 1逐点卷积将输入通道从C1变换到输入扩展比s > 1的s × C1,然后K × K深度卷积将输入通道从s × C1xH1xW1变换到s × C1xH2xW2,最后1 × 1逐点卷积将通道从s × C1变换到C2。IBN中高亮显示的C1、s,K和C2图层是可搜索的。

    • I B N 旨 在 减 少 参 数 和 F L O P S 的 数 量 \textcolor{blue}{IBN旨在减少参数和FLOPS的数量} IBNFLOPS,并利用深度和点(1x1)卷积内核在移动CPU上实现高效率。然而,并不是所有的FLOPS都是一样的,尤其是对于EdgeTPU和DSP等现代移动加速器来说。
    • 例如,即使使用7倍数量的FLOPS,常规卷积在EdgeTPUs上的运行速度也可能是其深度变化的3倍。观察表明,广泛使用的仅IBN搜索空间对于现代移动加速器来说可能是次优的。这促使本文提出新的构建模块,通过重新考量了常规(完全)卷积来丰富移动加速器的IBN专用搜索空间。具体来说,本文提出两个灵活的层来分别执行信道扩展和压缩。
  • IBN模块旨在降低参数量与减少FLOPS,虽然利用深度分离卷积可以实现在终端CPU平台的推理加速。然而,在其他终端加速器(如EdgeTPU、DSP)上,尽管具有更多的FLOPS,常规卷积往往比深度分离卷积更快(3x)。这就意味着,对于现代移动加速器而言,广泛使用的IBN-only搜索空间可能不是最佳选择。鉴于此,作者提出另外两种用于通道扩展和压缩的灵活层

Fused Inverted Bottleneck Layers (Expansion)

  • 深度方向可分离卷积是倒置瓶颈的关键元素(上图)。深度方向可分离卷积背后的思想是用深度方向卷积(对于空间维度)和1 × 1点方向卷积(对于通道维度)的组合来代替“昂贵的”全卷积
  • 然而,昂贵的概念在很大程度上是基于FLOPs或参数的数量来定义的,这与现代移动加速器上的推理效率不一定相关。为了合并常规卷积,本文建议修改IBN层,将其第一个1 × 1卷积和随后的K × K深度方向卷积融合为一个K × K常规卷积(下图)。
    • 在这里插入图片描述

    • Fused inverted bottleneck layer:K × K常规卷积将输入通道从C1变换到输入扩展比s > 1的s × C1,最后1 × 1逐点卷积将通道从s×C1变换到C2。融合反向瓶颈图层中高亮显示的C1、K、s、C2是可搜索的。

  • 像标准的反向瓶颈层一样,本文的融合反向瓶颈中的初始卷积将滤波器的数量增加了s > 1倍。该层的扩展比率将由NAS算法确定

Tucker Convolution Layers (Compression)

  • ResNet中引入的瓶颈层降低了高维特征映射上的大型卷积的成本。压缩比s < 1的瓶颈层包括与C1输入滤波器和C1输出滤波器的1 × 1卷积,接着是与C1输出滤波器的K × K卷积,接着是与C2输出滤波器的1 × 1卷积。
  • 本文概括了这些瓶颈(下图),允许初始1 × 1卷积可能具有不同于K × K卷积的输出滤波器数量,并让NAS算法决定最佳配置。
    • 在这里插入图片描述

    • Tucker layer: 1 × 1逐点卷积将输入通道C1变换到s × C1,输入压缩比s < 1,然后K × K正则卷积将输入通道从s × C1变换到e × C2,输出压缩比e < 1,最后1 × 1逐点卷积将通道从e × C2变换到C2。Tucker layer中高亮显示的C1、s、K、e和C2是可搜索的。

  • 本文将这些 新 的 构 件 称 为 T u c k e r c o n v o l u t i o n l a y e r s \textcolor{pink}{新的构件称为Tucker convolution layers} Tuckerconvolutionlayers,因为它们与Tucker decomposition有关。

Architecture Search Method

  • Search Algorithm.

    • 本文提出的搜索空间是先前神经结构搜索算法的补充。在本文的实验中,本文使用TuNAS [Can weight sharing outperform random architecture search? an investigation with tunas]是因为它的可伸缩性和相对于随机基线的可靠改进

    • TuNAS构建了一个一次性模型,包含给定搜索空间中的所有架构选择,以及一个控制器,其目标是选择一个优化平台感知奖励函数的架构。在搜索期间,一次性模型和控制器被一起训练。在每个步骤中,控制器从跨越选择的多项式分布中采样随机架构,然后更新与采样的架构相关联的单次模型的权重部分,最后计算采样的架构的奖励,该奖励用于更新控制器。通过对以下奖励函数应用增强算法[Simple statistical gradient-following algorithms for connectionist reinforcement learning]来进行更新:

      • R ( M ) = m A P ( M ) + τ ∣ c ( M ) c 0 − 1 ∣ , ( 1 ) R(M)=mAP(M)+\tau|\frac{c(M)}{c_0}-1|,(1) R(M)=mAP(M)+τc0c(M)1,(1)

      • 其中mAP(M)表示架构M的mAP,c(M)是推理成本(在这种情况下是延迟), c 0 c_0 c0是给定的成本预算, τ < 0 \tau < 0 τ<0是一个超参数,它平衡了准确性和推理成本的重要性。搜索质量往往对 τ \tau τ 不敏感,如[Can weight sharing outperform random architecture search? an investigation with tunas]所示。

  • Cost Models.

    • 本文训练一个成本模型,c(·)-一个线性回归模型,其特征由每一层的输入/输出通道大小和层类型之间的叉积指标组成。该模型跨平台保真度高(r2 ≥ 0.99)。线性成本模型与先前提出的基于查找表[AMC,MnasNet,NatAdapt]的方法相关,但只要求对搜索空间内随机选择的模型的延迟进行基准测试,而不要求测量各个网络操作(如卷积)的成本
    • 因为R(M)是在每个更新步骤中计算的,所以效率是关键。在搜索过程中,本文基于小批量评估mAP (M)的效率,并使用回归模型作为设备上延迟c(M)的替代。为了收集成本模型的训练数据,从本文的搜索空间中随机抽取了几千种网络架构,并在设备上对每种架构进行了基准测试
    • 每个硬件只需在搜索之前完成一次,无需服务器级ML硬件和手机之间的直接通信。对于最终评估,找到的体系结构以实际硬件而不是成本模型为基准。

Experiments

  • 本文使用COCO数据集进行目标检测实验。在320×320图像尺寸的加速器上,本文报告了目标检测的平均精度(mAP)和搜索模型的实际延迟。本文实现分两个阶段进行实验:体系结构搜索最优体系结构和通过从头开始重新训练找到的体系结构进行体系结构评估

Implementation Details

  • **Standalone Training:**本文使用320×320的图像尺寸进行训练和评估。该训练使用32个云TPU v2核心进行。为了与现有模型进行公平的比较,本文在Tensorflow对象检测API中使用标准的预处理,而没有额外的增强,如drop-block或 auto-augment。

  • 本文使用动量为0.9、重量衰减为 5 × 1 0 − 4 5×10^{-4} 5×104的SGD。学习率在前2000步预热,然后遵循余弦衰减。所有模型都是从零开始训练的,没有任何ImageNet预训练检查点。本文还考虑两种不同的训练计划:

    • Short-schedule: 每个模型训练50K步,批量1024,初始学习率4.0。
    • Long-schedule: 每个模型训练400K步,批量512,初始学习率0.8。
  • short schedule 比 long schedule快4倍,但质量稍差。除非另有说明,否则本文使用short schedule进行消融研究,使用长方案获得下表中的最终结果。

    • 在这里插入图片描述

    • Test AP scores are based on COCO test-dev.“†”:通过挤压激励和h-Swish(仅限CPU)增强;“*”:硬件平台没有很好的支持;“♦”:仅3×3内核大小(DSP友好);“▲”:增加了NAS-FPN头;“‡”:端点C4位于IBN的1×1扩展之后。

  • Architecture Search.为了避免过度拟合真实的验证数据集,本文分离出10%的COCO训练数据来评估模型并计算搜索期间的奖励。用于训练共享重量的超参数遵循独立训练的短期计划。至于强化学习,我们使用Adam优化器,初始学习率为 5 × 1 0 − 3 5 × 10^{−3} 5×103,β = ( 0,0.999), ε = 1 0 − 8 \varepsilon=10^{-8} ε=108 。本文在消融研究中搜索50K步,在主结果表中搜索100K步以获得最佳候选值。

Latency Benchmarking

  • 本文报告了所有主要结果的设备延迟。本文使用TF-Lite对CPU、EdgeTPU和DSP进行基准测试,它依靠NNAPI将计算委托给加速器。对于所有的基准测试,本文使用单线程,批处理大小为1。在Pixel 1 CPU中,只使用一个大核。对于Pixel 4 EdgeTPU和DSP,模型根据需要进行伪量化[Quantization and training of neural networks for efficient integer-arithmetic-only inference]。GPU模型使用从中间ONNX格式转换而来的TensorRT 7.1进行优化和基准测试。

Search Space Definitions

  • 本文的搜索空间的整体布局类似于ProxylessNAS和TuNAS。本文考虑三种尺寸递增的变型:

    • IBN: 仅包含IBN层的最小搜索空间。每层可以从内核大小(3,5)和扩展因子(4,8)中选择。
    • IBN+Fused: 一个扩大的搜索空间,不仅包含上述所有IBN变体,还融合了卷积层,此外还有可搜索的核大小(3,5)和扩展因子(4,8)。
    • IBN+Fused+Tucker: 进一步扩大搜索空间,包含Tucker (compression) layers。每个Tucker层允许在(0.25,0.75)范围内可搜索的输入和输出压缩比。
  • 对于上面的所有搜索空间变体,本文还在基本通道大小的(0.5、0.625、0.75、1.0、1.25、1.5、2.0)倍的选项中搜索每个层的输出通道大小(四舍五入到8的倍数,以更加硬件友好)。

  • 同一块中的层共享相同的基本通道大小,尽管它们可能以不同的扩展因子结束。所有块的基本通道大小(从茎到头)是32-16-32-48-96-96-160-192-192。乘法器和基本信道大小被设计为大致包含文献中的几种代表性架构,例如MobileNetV2和MnasNet。

  • Hardware-Specific Adaptations.

    • 上述搜索空间根据目标硬件略有调整。具体来说:
      • (a)针对CPU时,所有构建模块都增加了SE模块以及h-Swish激活功能(以取代ReLU-6)。这对于获得与MobileNetV3+SSDLite基线的公平比较是必要的,后者也包括这些操作。EdgeTPUs或DSP都不支持这两种原语;
      • (b)当以DSP为目标时,从搜索空间中排除5×5卷积,因为它们由于硬件/软件的限制而非常低效。

Search Space Ablation

  • 有了一个完美的架构搜索算法,最大的搜索空间肯定优于较小的搜索空间,因为它包含了后者的解。然而,实际情况不一定如此,因为算法可能以次优解结束,特别是当搜索空间很大时[MnasFPN]。在这项工作中,搜索空间被认为是有用的,如果它使NAS方法能够识别足够好的架构,即使它们不是最佳的。
  • 在下文中,本文通过将不同的搜索空间与TuNAS配对来评估它们的有用性,TuNAS是一种scalable latencyaware NAS实现。
CPU.
  • 下图显示了Pixel-1 CPU的NAS结果。正如预期的那样,MobileNetV3+SSDLite是一个强大的基准,因为其主干的效率已经针对ImageNet上的分类任务针对相同的硬件平台进行了大量优化。
    • 在这里插入图片描述

    • NAS在Pixel-1 CPU上使用不同搜索空间变量的结果。

    • 在同等推理延迟下,MobileDet以1.7mAP指标优于MobileNetV3+SSDLite;在不采用NAS-FPN中的head情况下,取得了媲美MnasFPN的性能。因此可以得出:IBN确实是可以适用于终端CPU平台的模块

  • 本文还注意到,在这种特殊情况下,常规卷积的存在并没有提供明显的优势,因为仅IBN在FLOPS/CPU延迟下已经很强了。然而,进行特定领域的体系结构搜索关于对象检测任务在COCO上提供了不小的收益(在150-200ms的范围内+1mAP)。
EdgeTPU.
  • 下图显示了以Pixel-4 EdgeTPUs为目标时的NAS结果。
    • 在这里插入图片描述

    • NAS使用不同的搜索空间变量在Pixel-4 EdgeTPU上产生结果。

    • 在同等推理延迟下,MobileDet以3.7mAP指标优于MobileNetV2+SSDLite。这种性能增益源自:域相关NAS、全卷积序列模块(Fused、Tucker)。

  • 使用三个搜索空间中的任何一个进行硬件感知架构搜索都可以显著提高整体质量。这主要是因为基线架构(MobileNetV2)针对CPU延迟进行了大量优化,这与FLOPS/madd密切相关,但与EdgeTPU延迟没有很好地校准。
  • 值得注意的是,虽然仅IBN仍然提供了最佳的准确度-MAdds权衡(中间曲线),但是在搜索空间中具有规则卷积(either IBN+Fused or IBN+Fused+Tucker)在准确度-延迟权衡方面提供了明显的进一步优势。结果证明了全卷积在EdgeTPUs上的有用性。
DSP.
  • 下图显示了Pixel-4 DSP的搜索结果。与EdgeTPUs类似,很明显,在搜索空间中包含正则卷积会在相当的推理等待时间下导致显著的mAP改进。
    • 在这里插入图片描述

    • NAS在Pixel-4 DSP上使用不同搜索空间变量的结果。

    • MobileDet取得28.5mAP@12.ms的性能,以3.2mAP指标优于MobileNetV2+SSDLite;以2.4mAP指标优于MnasFPN,同时具有更快的推理速度。

Main Results

  • 本文将通过latencyaware NAS获得的架构与COCO 上最先进的移动检测模型进行了比较。对于每个目标硬件平台,本文报告通过搜索三个搜索空间变量中的每一个获得的结果。结果如表Test AP scores are based on COCO test-dev所示。
  • 在CPU上,可以发现直接在检测任务上搜索允许本文方法在MobileNetV3上改进mAP 1.7倍,但是没有发现提出的融合IBNs和Tucker瓶颈是获得高质量模型所必需的证据。然而,在DSP和EdgeTPUs上,发现本文的新原语允许显著改善模型速度和准确性之间的权衡
  • 在移动CPU上,MobileDet在可比的延迟下比MobileNetV3+SSDLite高出1.7 mAP,MobileNetV3+SSDLite是基于最先进的图像分类主干的强大基线。结果证实了检测特异性NAS的有效性。这些型号还取得了与MnasFPN(最先进的移动CPU检测器)竞争的结果,而没有利用可能会使部署过程复杂化的NAS-FPN头。有趣的是,全卷积的引入对移动CPU的质量没有影响,这表明IBN确实是这种特定硬件平台的有前途的构建模块
  • 在EdgeTPUs上,MobileDet在COCO测试开发上的性能比MobileNetV2+SSDLite高出3.7倍,延迟相当。本文将这种收益归因于特定任务搜索(w.r.t. COCO和EdgeTPU)和完全卷积的存在。具体来说,与仅IBN搜索空间相比,IBN+Fused+Tucker导致0.8的mAP改进以及7%的延迟减少。
  • 在DSP上,MobileDet在COCO上以12.3 ms的延迟实现了28.5的mAP,在可比的延迟下比MobileNetV2+SSDLite (×1.5)高出3.2的mAP。同型号也比MnasFPN快2.4 mAP,加速超过2倍。同样值得注意的是,在搜索空间中包括全卷积明显地将架构搜索结果从26.9 mAP @ 12.2 ms提高到28.5 mAP @ 11.9ms
  • 这些结果支持了一个事实,即移动搜索空间传统上以CPU为目标,这非常有利于可分离卷积,并且需要重新考虑针对其他硬件加速器的网络的这一决定。

Cross-Hardware Transferability of Searched Architectures.

  • 下图比较了不同硬件平台的移动小程序(通过瞄准不同加速器获得的)。本文的结果表明,在EdgeTPUs和DSP上搜索到的架构是可以相互转换的。事实上,两种搜索到的体系结构都广泛利用了常规卷积。另一方面,专用于w.r.t. EdgeTPUs或DSP(倾向于FLOPS密集型)的架构不能很好地移植到移动CPU。
    • 在这里插入图片描述

    • 跨硬件平台的架构可移植性(搜索不同的目标平台)。对于每个给定的架构,本文报告原始模型及其通道乘数为1.5倍的缩放版本。

Generalization to New Hardware.

  • 提出的搜索空间族是专门为CPU、EdgeTPUs和DSP开发的。这仍然是一个有趣的问题,搜索空间是否可以推广到新的硬件。为了回答这个问题,本文对作为“holdout”设备的NVIDIA Jetson GPUs进行了架构搜索。

  • 本文遵循表Test AP scores are based on COCO test-dev中的DSP设置,只是滤波器数量四舍五入为16的倍数。结果见下表。在本文扩展的搜索空间中搜索的模型比MobileNetV2实现了+3.7倍的mAP提升,同时速度更快。

    • 在这里插入图片描述

    • 将MobileDet搜索空间系列推广到还没有遇到过得的硬件(edge GPU)。

  • 结果证实了所提出的搜索空间族足够通用以处理新的硬件平台。

Architecture visualizations.

  • 下图通过使用最大的搜索空间瞄准不同的移动硬件平台,示出了本文的搜索对象检测架构MobileDets。一个有趣的观察结果是,移动节点在EdgeTPU和DSP上广泛使用规则卷积,尤其是在网络的早期阶段,深度卷积往往效率较低。结果证实,仅IBN搜索空间对于这些加速器不是最优的
    • 在这里插入图片描述

    • 不同的移动加速器在IBN+Fused+Tucker空间搜索最佳架构。SSDLite头使用端点C4和C5。上图中,e指的是扩展因子,s指的是步距,“Tucker 3×3,0.25-0.75”指的是一个内核大小为3×3,输入压缩比为0.25,输出压缩比为0.75的Tucker层。

Conclusion

  • 在这项工作中,本文质疑主要的设计模式,即使用深度反转瓶颈作为边缘视觉模型的唯一构建模块。使用对象检测任务作为案例研究,本文重新审视了常规卷积在各种移动加速器上的有用性,包括移动CPU、EdgeTPUs、DSP和edge GPUs。本文的结果表明,当全卷积被放置在网络中的正确位置时,它可以显著改善几个加速器上的准确性-延迟权衡,这可以通过神经架构搜索来有效地识别。由此产生的体系结构MobileDets在各种硬件平台上实现了优越的检测结果,大大优于现有技术。产生得到的新架构MobileDets可以在不同硬件平台下取得比以往更优异的检测结果。

Tucker/CP分解

  • 这两种张量分解算法可以被看做是张量奇异值分解(SVD)的高阶扩展:CP分解将张量分解为秩一张量之和,Tucker分解是主成成分分析(PCA)的高阶形式。

  • 【张量分解(一)】符号与基础知识_BQW_的博客-CSDN博客_张量符号

  • 张量:向量是一维,矩阵是二维,张量就代表三维及以上,也可以将张量理解为高阶矩阵

  • Fiber:是矩阵行和列在高阶张量中的类似物。通过固定一个张量的大部分维度只保留其中的一个维度所形成的子数组

    • 在这里插入图片描述
  • Slice:通过固定一个张量的大部分维度只保留其中的两个维度所形成的子数据,称为Slice。和Fiber类似,张量的不同维度也是对应着不同的切片方式:水平切片、侧面切片、正面切片

    • 在这里插入图片描述
  • 如果扩展到更 n 阶的张量,那么Fiber是固定张量的 n-1 个维度,切片是固定张量的 n-2 个维度

  • 范数:张量的范数类似于矩阵的Frobenius范数,即对张量中所有元素平方求和后再开方:

    • ∣ ∣ x ∣ ∣ = ∑ i 1 = 1 I 1 ∑ i 2 = 1 I 2 . . . ∑ i N = 1 I N x i 1 i 2 . . . i N 2 ||x||=\sqrt{\sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}...\sum_{i_N=1}^{I_N}x_{i_1i_2...i_N}^2} x=i1=1I1i2=1I2...iN=1INxi1i2...iN2
  • 内积:两个形状相同的张量的各个分量相乘并求和称为张量的内积,设 X , Y ∈ R I 1 × I 2 . . . × I N \mathcal{X},\mathcal{Y}\in\mathbb{R}^{I_1\times I_2...\times I_N} X,YRI1×I2...×IN,则两张量的内积为:

    • < X , Y > = ∑ i 1 = 1 I 1 ∑ i 2 = 1 I 2 . . . ∑ i N = 1 I N x i 1 i 2 . . . i N y i 1 i 2 . . . i N <\mathcal{X},\mathcal{Y}>=\sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}...\sum_{i_N=1}^{I_N}x_{i_1i_2...i_N}y_{i_1i_2...i_N} <X,Y>=i1=1I1i2=1I2...iN=1INxi1i2...iNyi1i2...iN
  • 单秩张量(Rank-one):如果一个N阶张量 X ∈ R I 1 × I 2 . . . × I N \mathcal{X}\in\mathbb{R}^{I_1\times I_2...\times I_N} XRI1×I2...×IN ,能够写成N个向量的外积,即:

    • X = a ( 1 ) ∘ a ( 2 ) ∘ . . . ∘ a ( N ) , 即 x i 1 i 2 . . . i N = a i 1 ( 1 ) a i 2 ( 2 ) . . . a i N ( N ) X=a^{(1)}∘a^{(2)}∘...∘a^{(N)},即x_{i_1i_2...i_N}=a_{i_1}^{(1)}a_{i_2}^{(2)}...a_{i_N}^{(N)} X=a(1)a(2)...a(N),xi1i2...iN=ai1(1)ai2(2)...aiN(N)

    • 张量的每一个元素都是由对于向量的分量相乘得到的,可以理解为,每个向量表示最终张量的一个维度,向量的分量则是张量维度取值乘积中的一项

  • 张量对称:如何一个张量的 所 有 维 度 均 相 同 \textcolor{#ff0000}{所有维度均相同} ,则称该张量为cubical,例如 X ∈ R I × I × . . . × I \mathcal{X}\in\mathbb{R}^{I\times I\times ... \times I} XRI×I×...×I,如何一个cubical张量中一组下标任意组合所对应的元素均相等则称该张量超对称。

  • 对角张量(Diagonal tensors):对于张量 X ∈ R I 1 × I 2 . . . × I N \mathcal{X}\in\mathbb{R}^{I_1\times I_2...\times I_N} XRI1×I2...×IN ,如果所有下标满足 i 1 = i 2 = . . . = i N i_1=i_2=...=i_N i1=i2=...=iN的元素值不为0,其他元素均为0,则该张量为对角张量。特别地,当对角张量中不为0的元素值均为1时,称为单位张量(identity tensor),用符号 J \mathcal{J} J表示。三阶单位张量间下图:

    • 在这里插入图片描述
  • 张量矩阵化(Matricization):张量矩阵化也称为张量展开(unfolding)或者拉平(flattening),是一种将n阶张量中的元素重新排列为矩阵的过程。

  • 张量的n模积乘法:即张量在维度n处乘以矩阵或者向量。

  • 张量与矩阵相乘

    • 给定一个N阶张量 X ∈ R I 1 × I 2 . . . × I N \mathcal{X}\in\mathbb{R}^{I_1\times I_2...\times I_N} XRI1×I2...×IN和矩阵 U ∈ R J × I n \textbf{U}\in\mathbb{R}^{J\times I_n} URJ×In,则二者的n模积可以表示为$ \mathcal{X}\times_n\textbf{U} , 其 结 果 是 一 个 维 度 为 ,其结果是一个维度为 I_1\times … \times I_{n-1} \times J \times I_{n+1}\times … \times I_N 的 张 量 , 即 将 维 度 的张量,即将维度 I_n$ 转变为 J J J。n模积的结果与乘积的顺序无关,即

    • X × m A × n B = X × n B × m A X×_mA×_nB=X×_nB×_mA X×mA×nB=X×nB×mA

    • 从slice的角度来看,由于n模slice是一个矩阵,因此n模积可以看做张量 X \mathcal{X} X的所有n模slice乘以矩阵$ \textbf{U} 。 设 。设 \mathcal{Y}=\mathcal{X}\times_n\textbf{U} , 则 张 量 ,则张量 \mathcal{Y} 的 n 模 s l i c e , 等 于 的n模slice,等于 nslice\mathcal{X} 的 n 模 s l i c e 乘 以 矩 阵 的n模slice乘以矩阵 nslice\textbf{U} , 即 ,即 Y_{(n)}=UX_{(n)}$。

  • 张量与向量相乘

    • 给定一个N阶张量 X ∈ R I 1 × I 2 . . . × I N \mathcal{X}\in\mathbb{R}^{I_1\times I_2...\times I_N} XRI1×I2...×IN和向量 v ∈ R I n \textbf{v}\in\mathbb{R}^{I_n} vRIn,则二者的n模积可以表示为 X ∙ n v \mathcal{X}\bullet_n\textbf{v} Xnv,其结果是一个维度为$ I_1\times … \times I_{n-1} \times I_{n+1}\times … \times I_N$的N-1阶张量,即将消除原张量的第n维。

    • 从fiber的角度来看,由于n模fiber是一个向量,因此n模积可以看做张量 X \mathcal{X} X的所有n模fiber乘以向量 v \textbf{v} v。由于向量间乘法使用的是内积,因此导致最终结果为维度为N-1。从微观的角度来看,可以得到:

    • ( X ∙ n v ) i 1 i 2 . . . i n − 1 i n + 1 . . . i N = ∑ i n = 1 I n x i 1 . . . i N v i n (\mathcal{X}∙_nv)_{i_1i_2...i_{n-1}i_{n+1}...i_N}=\sum_{i_n=1}^{I_n}x_{i_1...i_N}v_{i_n} (Xnv)i1i2...in1in+1...iN=in=1Inxi1...iNvin

    • 与n模矩阵乘法不同,n模向量乘法的顺序会影响最终的结果,例如:

    • X ∙ m a ∙ n b = ( X ∙ m a ) ∙ n − 1 b = ( X ∙ n b ) ∙ m a , 其 中 m < n \mathcal{X}∙ _ma∙_nb=(\mathcal{X}∙_ma)∙_{n−1}b=(\mathcal{X}∙_nb)∙_ma,其中m<n Xmanb=(Xma)n1b=(Xnb)ma,m<n

    • 由于m<n,如果先进行$ \mathcal{X}\bullet_m\textbf{a} , 那 么 会 导 致 前 m 维 度 缩 减 为 m − 1 维 , 因 此 需 要 ∙ ,那么会导致前m维度缩减为m-1维,因此需要∙ mm1 \bullet_{n-1}\textbf{b}$。

  • 矩阵的Kronecker、Khatri-Rao、Hadamard积

    • Kronecker积:Kronecker积是将一个矩阵的所有元素与另一个矩阵相乘,拼接得到更大的矩阵。矩阵$ \textbf{A}\in\mathbb{R}^{I\times J}$ 和 B ∈ R K × L \textbf{B}\in\mathbb{R}^{K\times L} BRK×L的Kronecker积表示为$A ⊗ B , 其 结 果 是 一 个 大 小 为 , 其结果是一个大小为 , (IK)\times(JL)$的矩阵,即:

      • KaTeX parse error: Expected 'EOF', got '&' at position 202: …atrix}=[a_1⊗b_1&̲a_1⊗b_2&a_1⊗b_3…

    • Khatri-Rao积:类似Kronecher积,矩阵$ \textbf{A}\in\mathbb{R}^{I\times K} 和 和 \textbf{B}\in\mathbb{R}^{J\times K} 的 K h a t r i − R a o 积 表 示 为 的Khatri-Rao积表示为 KhatriRao\textbf{A}\odot\textbf{B} , 其 结 果 是 一 个 大 小 为 ,其结果是一个大小为 (IJ)×K$的矩阵,详细原理如下:

      • A ⊙ B = [ a 1 ⊗ b 1   a 2 ⊗ b 2   ⋯ a K ⊗ b K ] A⊙B=[a_1⊗b_1\space a_2⊗b_2\space \cdots a_K⊗b_K ] AB=[a1b1 a2b2 aKbK]

      • 两个向量的Kronecher积和Khatri-Rao积是完全等价的,例如$a ⊗ b = a ⊙ b $。

    • Hadamard积:Hadamard积就是两个形状相同的矩阵对应元素相乘得到的矩阵。给定两个矩阵 A,B ∈ R I × J \textbf{A,B}\in\mathbb{R}^{I\times J} A,BRI×J,则Hadamard积表示为 A ∗ B \textbf{A}*\textbf{B} AB,其结果仍然是一个大小为 I × J I × J I×J的矩阵。详细原理如下:

      • A ∗ B = [ a 11 b 11 a 12 b 12 ⋯ a 1 J b 1 J a 21 a 21 a 22 a 22 ⋯ a 2 J b 2 J ⋮ ⋮ ⋱ ⋮ a I 1 b I 1 a I 2 b I 2 ⋯ a I J b I J ] A*B=\begin{bmatrix} a_{11}b_{11} & a_{12}b_{12} & \cdots & a_{1J}b_{1J} \\ a_{21}a_{21} & a_{22}a_{22} & \cdots & a_{2J}b_{2J} \\ \vdots & \vdots &\ddots & \vdots\\ a_{I1}b_{I1} & a_{I2}b_{I2} & \cdots & a_{IJ}b_{IJ} \\ \end{bmatrix} AB=a11b11a21a21aI1bI1a12b12a22a22aI2bI2a1Jb1Ja2Jb2JaIJbIJ
    • 基本性质:

      • ( A ⊗ B ) ( C ⊗ D ) = A C ⊗ B D ( A ⊗ B ) − 1 = A − 1 ⊗ B − 1 A ⊙ B ⊙ C = ( A ⊙ B ) ⊙ C = A ⊙ ( B ⊙ C ) ( A ⊙ B ) T ( A ⊙ B ) = A T A ⊙ B T B ( A ⊙ B ) − 1 = ( ( A T A ) ∗ ( B T B ) ) − 1 ( A ⊙ B ) T (A⊗B)(C⊗D)=AC⊗BD\\ (A⊗B)^{-1}=A^{-1}⊗B^{-1}\\ A⊙B⊙C=(A⊙B)⊙C=A⊙(B⊙C)\\ (A⊙B)^T(A⊙B)=A^TA⊙B^TB\\ (A⊙B)^{-1}=((A^TA)*(B^TB))^{-1}(A⊙B)^T (AB)(CD)=ACBD(AB)1=A1B1ABC=(AB)C=A(BC)(AB)T(AB)=ATABTB(AB)1=((ATA)(BTB))1(AB)T

CP分解

  • [CP分解](Tensor Decompositions and Applications | SIAM Review)就是将一个张量分解成多个单秩张量的和。例如,给定一个三阶张量$ \mathcal{X}\in\mathbb{R}^{I\times J\times K}$,则CP分解可以写为:

    • X ≈ ∑ i = 1 R a r ∘ b r ∘ c r 其 中 , ∘ 是 指 向 量 外 积 , R 是 正 整 数 且 a r ∈ R I , b r ∈ R J , c r ∈ R K \mathcal{X}≈\sum_{i=1}^Ra_r∘b_r∘c_r\\ 其中,∘ 是指向量外积,R是正整数且a_r ∈\Bbb R^I ,b_r ∈\Bbb R^J ,c_r ∈\Bbb R^K Xi=1RarbrcrRarRI,brRJ,crRK

    • 下图展示了三阶张量的CP分解:

      • 在这里插入图片描述
    • 将上面的CP分解展开,也可以写作

      • x i j k ≈ ∑ r = 1 R a i r b j r c k r , i = 1 , 2 , . . . , I ; j = 1 , 2 , . . . , J ; k = 1 , 2 , . . . , K ; x_{ijk}≈\sum_{r=1}^Ra_{ir}b_{jr}c_{kr},i=1,2,...,I;j=1,2,...,J;k=1,2,...,K; xijkr=1Rairbjrckr,i=1,2,...,I;j=1,2,...,J;k=1,2,...,K;
  • 张量矩阵化后的CP分解

    • 首先,定义因子矩阵(factor matrices)为CP分解中组成单秩张量的同一维度的向量合并成的矩阵,就是把所有的 a \textbf{a} a向量合并成一个矩阵$ \textbf{A}=[\textbf{a}_1\quad\textbf{a}_2\quad\dots\quad\textbf{a}_R] 。 同 理 , 还 可 以 合 成 因 子 矩 阵 。同理,还可以合成因子矩阵 \textbf{B} 和 和 \textbf{C}$。那么矩阵化后的张量CP分解形式如下:

      • X ( 1 ) ≈ A ( B ⊙ C ) T X ( 2 ) ≈ B ( C ⊙ B ) T X ( 3 ) ≈ C ( A ⊙ A ) T 其 中 , ⊙ 表 示 K h a t r i − R a o 积 , X ( i ) 表 示 张 量 X 的 模 i 矩 阵 化 后 的 矩 阵 。 X_{(1)}≈A(B⊙C)^T\\ X_{(2)}≈B(C⊙B)^T\\ X_{(3)}≈C(A⊙A)^T\\ 其中,⊙ 表示Khatri-Rao积,\textbf{X}_{(i)}表示张量\mathcal{X}的模i矩阵化后的矩阵。 X(1)A(BC)TX(2)B(CB)TX(3)C(AA)TKhatriRaoX(i)Xi
    • CP分解则是将待分解张量分解成R个单秩张量,其中R就是待分解张量的秩。因此,计算CP分解的第一个问题就是如何确定张量的秩。

    • 大多数的CP求解思路是尝试不同的R 值来拟合待分解张量,直至找到一个最佳的分解。对于无噪声的数据,那么可以对R的值从1,2,…这样逐步尝试,从而得到一个最优的CP分解。但是,对于张量的低秩近似,一个张量可以被一个更低秩的张量任意逼近。

Tucker分解

  • Tucker分解可以看作是主成分分析(PCA)的一种高阶版本,其将张量分解为一个核张量与每一维度上对应矩阵的乘积。具体来说,以三阶张量$ \mathcal{X}\in\mathbb{R}^{I\times J\times K}$为例,其Tucker分解写为:

    • X ≈ G × 1 A × 2 B × 3 C = ∑ p = 1 P ∑ q = 1 Q ∑ r = 1 R g p q r a p ∘ b q ∘ c r = ⟮ G ; A , B , C ⟯ X≈\mathcal{G}×_1A×_2B×_3C=\sum_{p=1}^P\sum_{q=1}^Q\sum_{r=1}^Rg_{pqr}a_p∘b_q∘c_r=⟮\mathcal{G};A,B,C⟯ XG×1A×2B×3C=p=1Pq=1Qr=1Rgpqrapbqcr=G;A,B,C

    • 其中,$ \textbf{A}\in\mathbb{R}^{I\times P},\textbf{B}\in\mathbb{R}^{J\times Q},\textbf{C}\in\mathbb{R}^{K\times R} 是 不 同 维 度 上 的 因 子 矩 阵 , 这 些 矩 阵 通 常 被 认 为 是 不 同 维 度 上 的 主 成 分 。 是不同维度上的因子矩阵,这些矩阵通常被认为是不同维度上的主成分。 \mathcal{G}\in\mathbb{R}^{P\times Q\times R}$ 称为核张量,其中的每个元素代表了不同成分之间的交互程度。

  • 从元素的角度看,Tucker分解可以写为:

    • x i j k ≈ ∑ p = 1 P ∑ q = 1 Q ∑ r = 1 R g p q r a p b q c r , i = 1 , . . . , I , j = 1 , . . . , J , k = 1 , . . . , K x _{ijk} ≈\sum_{p=1}^P\sum_{q=1}^Q\sum_{r=1}^Rg_{pqr}a_pb_qc_r ,i=1,...,I,j=1,...,J,k=1,...,K xijkp=1Pq=1Qr=1Rgpqrapbqcr,i=1,...,I,j=1,...,J,k=1,...,K

    • P,Q和R是因子矩阵$ \textbf{A,B,C} 的 成 分 数 ( 例 如 因 子 矩 阵 的 列 数 ) 。 如 果 P , Q 和 R 小 于 I , J , K 那 么 张 量 的成分数(例如因子矩阵的列数)。如果P , Q 和 R 小于I , J , K那么张量 ()P,QRI,J,K\mathcal{G} 可 以 被 认 为 是 张 量 可以被认为是张量 \mathcal{X}$的压缩版本。在某些情况下,压缩版本的张量可以节省大量的存储空间。Tucker分解形象展示如下图:

    • 在这里插入图片描述

    • 张量矩阵化后的Tucker分解

      • X ( 1 ) ≈ A G ( 1 ) ( B ⊙ C ) T X ( 2 ) ≈ B G ( 2 ) ( C ⊙ B ) T X ( 3 ) ≈ C G ( 3 ) ( A ⊙ A ) T 其 中 , ⊙ 表 示 K h a t r i − R a o 积 , X ( i ) 表 示 张 量 X 的 模 i 矩 阵 化 后 的 矩 阵 。 X_{(1)}≈AG_{(1)}(B⊙C)^T\\ X_{(2)}≈BG_{(2)}(C⊙B)^T\\ X_{(3)}≈CG_{(3)}(A⊙A)^T\\ 其中,⊙ 表示Khatri-Rao积,\textbf{X}_{(i)}表示张量\mathcal{X}的模i矩阵化后的矩阵。 X(1)AG(1)(BC)TX(2)BG(2)(CB)TX(3)CG(3)(AA)TKhatriRaoX(i)Xi
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值