【点云系列】Unsupervised Multi-Task Feature Learning on Point Clouds

1. 概要

题目:Unsupervised Multi-Task Feature Learning on Point Clouds
论文:https://openaccess.thecvf.com/content_ICCV_2019/papers/Hassani_Unsupervised_Multi-Task_Feature_Learning_on_Point_Clouds_ICCV_2019_paper.pdf

2. 动机

传统手工设计特征主要捕获局部或全局统计属性,无法表征语义特性。
是否有一个针对需要语义特性这类任务的通用特征呢?

于是本文 提出了一个可以针对非监督多任务模型的特征表达,基于多尺度图的编码器。可端到端训练。

3. 算法

针对三个非监督学习任务:

  1. 聚类
  2. 重构
  3. 自监督分类

整体框架:

解码器: 多层尺度的(图卷积 + 卷积 + 池化)+ 扰动高斯噪声
本质上适用多任务,也是因为用了这些任务的损失来一起进行训练了,自然有了这个功能。
图卷积定义: 其实就是两个点之间的残差了;
在这里插入图片描述
在这里插入图片描述

算法描述:

训练集: S = { s 1 , s 2 , . . . , s N } S=\{s_1, s_2, ..., s_N\} S={s1,s2,...,sN},N个点。
一个点: s i = { p 1 i , p 2 i , . . , p M 1 } s_i =\{ p^i_1, p^i_2, .., p^1_M\} si={p1i,p2i,..,pM1}, M个无序点, p j i = ( x j i , y j i , z j i ) p^i_j=(x^i_j, y^i_j, z^i_j) pji=(xji,yji,zji)仅包括坐标
编码器: E θ : S ( R M × d i n ) → Z ( R d z ) E_{\theta}: S (\mathbb{R}^{M\times d_{in}})\rightarrow Z (\mathbb{R}^{d_z}) Eθ:S(RM×din)Z(Rdz), d z d_z dz 远大于 d i n d_in din

为了学习非监督多任务的 θ \theta θ,设计以下三个参数函数:
聚类函数 T c : Z → y \Tau_c:Z \rightarrow y TcZy,将隐码归类到 K K K个类别当中,其中 y = [ y 1 , y 2 , . . . , y n ] y=[y_1, y_2, ...,y_n] y=[y1,y2,...,yn], y i ∈ { 0 , 1 } K y_i\in\{0,1\}^K yi{0,1}K, 且 y n T 1 k = 1 y^T_n \mathbf{1}_k=1 ynT1k=1
分类函数 f ψ : Z → y ^ f_\psi: Z \rightarrow \hat{y} fψ:Zy^, 聚类后的类别预测,换言之,分类函数将隐变量映射到K个预测类 y ^ = [ y 1 ^ , y 2 ^ , . . . , y n ^ ] \hat{y}=[\hat{y_1}, \hat{y_2}, ...,\hat{y_n}] y^=[y1^,y2^,...,yn^],且 y i ^ ∈ { 0 , 1 } K \hat{y_i}\in\{0,1\}^K yi^{0,1}K。该函数使用由聚类函数产生的伪标签作为代理训练数据。
解码器函数 g ϕ : Z ( R d z ) → S ^ ( R M × d i n ) g_\phi: Z(\mathbb{R}^{d_z}) \rightarrow \hat{S} (\mathbb{R}^{M\times d_{in}}) gϕ:Z(Rdz)S^(RM×din),将隐变量重构回点云。如果仅使用聚类损失则会是的特征聚成单类,该函数的设计防止最后聚成了单类。

训练损失

  1. 聚类损失: 本质上是在学习聚类中心矩阵: C ∈ R d z × K C\in \mathbb{R}^{d_z \times K} CRdz×K, z n = E θ ( s n ) z_n=E_\theta(sn) zn=Eθ(sn) y n T 1 k = 1 y^T_n\mathbf{1}_k=1 ynT1k=1。其中,初始化 聚类中心矩阵为随机,是epoch更新的。
    在这里插入图片描述

  2. 分类损失:交叉熵衡量, y n = T c ( z n ) y_n=\Tau_c(z_n) yn=Tc(zn) y ^ n = f ψ ( z n ) \hat{y}_n=f_\psi(z_n) y^n=fψ(zn)
    在这里插入图片描述

  3. 重构损失:CD距离。 s ^ n = g ϕ ( z n ) \hat{s}_n=g_\phi (z_n) s^n=gϕ(zn)是重构的点集, s n s_n sn是GT。 N N N:训练集数量; M M M:在每个点集当中的点数量。
    在这里插入图片描述
    最终损失: 上面3个损失的加权求和
    在这里插入图片描述

具体描述流程如下图算法1所示:
在这里插入图片描述

4. 实验

模型收敛:88个类,实际55类别。

聚类可视化图如下:
在这里插入图片描述

在分类任务上,非监督与监督方法的比较: 在非监督方法里效果还是不错的;
在这里插入图片描述
半监督分割任务上的效果: 5%的训练集效果还是挺不错;
在这里插入图片描述
分割任务效果:
在这里插入图片描述
Encoder的作用,在分类任务上进行测试: 其实这里貌似在说,复杂的Encoder对重构后的提升并没有特别大,多类任务的提升是非常大的。
在这里插入图片描述

消融实验: 重构任务是关键,加上分类的效果>聚类的效果,因为这里聚类其实也是为了进一步用于分类,实现所谓的非监督。
在这里插入图片描述

5.结论及思考

失败案列:

  1. 适用K-Means来对聚类中心进行初始化,但并没有随机聚类中心方法有所提升;
  2. 在decoder和分类模型上适用soft共享参数机制,发现效果有所降低,因此将两者分离开来;
  3. 尝试迭代更多图卷积层,在每一层都重新计算近邻,发现这对分类与分割都不利;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值