作者认为单纯从点云上提取特征(单模态)已经达到瓶颈,应该从多模态入手(例如点云的渲染图),而这个方法先前也有人做过,但都有一个缺点——不仅在训练过程需要图片,推理过程同样需要图片作为输入,于是作者认为这是不合理的,于是就想仅在训练时用起多模态,而推理过程仍然只需要输入点云即可,受知识蒸馏启发,作者提出了PointCMT。在此之前,先来了解一下什么叫知识蒸馏,这里考虑其最简单的基本思想,其它多种变体有兴趣可以自行了解。
-
知识蒸馏
先看其基本架构

这里对原图做了些许改进(说明了输入是同一分布的,模型具体长什么样不用管,黑匣子完事了)。可以看到,整体包含一个蓝色的Teacher model以及绿色的Student model(顾名思义Teacher是学识渊博的,即一个预训练好而且规模较大的;相反Student是一个等着老师教的,即待学习,规模较小的)。可以看到,这里值得注意的有两个地方:
(1)softmax多了一个参数T。
(2)除了平时和label之间的Loss,还有一个和老师输出的做Loss。
下面分别讲解:
带有参数T的softmax:上公式
相当于就是每项除了一个T,再看随着T变化,输出会有什么变化

这是一个one hot vec,T=1时候就是平常的softmax,随着t增大,标签值会被慢慢拉下来,而其他会被慢慢拉高,当T趋于无穷时候每个都相等。所以前文的soft就是T>1时候的输出,而hard就是T=1时候的输出。那这有什么用呢?别急。
Teacher的作用

这个图依旧是加了点东西的,看上面,非常简介易懂。看回那个T,T越大,说明我越要模型去关注负标签,这个自然就是一个自己控制的超参了。因为T叫温度系数,所以高温蒸馏,也是顾名思义,T取大点。
为什么要知识蒸馏?在基本架构那里说过,Teacher是一个规模大精度高的模型,Student是一个待学习的小规模模型,所以知识蒸馏作用就是压缩模型,训练时可以搞大模型,
本文提出PointCMT方法,利用知识蒸馏在训练时结合图像信息提升点云模型性能。通过Image Priors、Cross-Modal Point Generator和Image Priors Assisted Training,仅在训练阶段使用图像,推理时仍使用点云数据。实验表明,该方法在ModelNet40分类、ScanObjectNN和ShapeNet部件分割任务上取得良好效果。
最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



