当前位置:网站首页>【点云系列】Unsupervised Multi-Task Feature Learning on Point Clouds
【点云系列】Unsupervised Multi-Task Feature Learning on Point Clouds
2022-04-23 06:11:00 【^_^ 晅菲】
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. 算法
针对三个非监督学习任务:
- 聚类
- 重构
- 自监督分类
整体框架:
解码器: 多层尺度的(图卷积 + 卷积 + 池化)+ 扰动高斯噪声
本质上适用多任务,也是因为用了这些任务的损失来一起进行训练了,自然有了这个功能。
图卷积定义: 其实就是两个点之间的残差了;
算法描述:
训练集: 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 Tc:Z→y,将隐码归类到 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ψ:Z→y^, 聚类后的类别预测,换言之,分类函数将隐变量映射到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),将隐变量重构回点云。如果仅使用聚类损失则会是的特征聚成单类,该函数的设计防止最后聚成了单类。
训练损失:
-
聚类损失: 本质上是在学习聚类中心矩阵: C ∈ R d z × K C\in \mathbb{R}^{d_z \times K} C∈Rdz×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更新的。
-
分类损失:交叉熵衡量, 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)。
-
重构损失: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.结论及思考
失败案列:
- 适用K-Means来对聚类中心进行初始化,但并没有随机聚类中心方法有所提升;
- 在decoder和分类模型上适用soft共享参数机制,发现效果有所降低,因此将两者分离开来;
- 尝试迭代更多图卷积层,在每一层都重新计算近邻,发现这对分类与分割都不利;
版权声明
本文为[^_^ 晅菲]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43882112/article/details/108547694
边栏推荐
- [dynamic programming] different paths 2
- adb shell常用模拟按键keycode
- 【2021年新书推荐】Red Hat Certified Engineer (RHCE) Study Guide
- Record WebView shows another empty pit
- ThreadLocal, just look at me!
- 第2章 Pytorch基础1
- MySQL笔记5_操作数据
- torch_geometric学习一,MessagePassing
- [dynamic programming] triangle minimum path sum
- Reading notes - activity
猜你喜欢
Google AdMob advertising learning
[2021 book recommendation] learn winui 3.0
一款png生成webp,gif, apng,同时支持webp,gif, apng转化的工具iSparta
【2021年新书推荐】Artificial Intelligence for IoT Cookbook
谷歌AdMob广告学习
免费使用OriginPro学习版
./gradlew: Permission denied
MySQL的安装与配置——详细教程
Component based learning (1) idea and Implementation
第2章 Pytorch基础1
随机推荐
Viewpager2 realizes Gallery effect. After notifydatasetchanged, pagetransformer displays abnormal interface deformation
Bottomsheetdialogfragment conflicts with listview recyclerview Scrollview sliding
Itop4412 HDMI display (4.4.4_r1)
素数求解的n种境界
MySQL笔记5_操作数据
【 planification dynamique】 différentes voies 2
微信小程序 使用wxml2canvas插件生成图片部分问题记录
第2章 Pytorch基础1
Google AdMob advertising learning
Using stack to realize queue out and in
this. getOptions is not a function
BottomSheetDialogFragment 与 ListView RecyclerView ScrollView 滑动冲突问题
MySQL笔记4_主键自增长(auto_increment)
.net加载字体时遇到 Failed to decode downloaded font:
[2021 book recommendation] effortless app development with Oracle visual builder
Component learning (2) arouter principle learning
Tiny4412 HDMI display
Pytorch best practices and coding style guide
谷歌AdMob广告学习
基于BottomNavigationView实现底部导航栏