VAE在3D点云上应用总结

文章结构

VAE基本原理

  1. 什么是autoencoder?
  2. 它的主要问题是什么?为什么要使用VAE
  3. VAE基本结构以及VAE的训练目标。

Autoencoder主要的结构就是一个encoder和decoder的形式,encoder主要是将输入的数据压缩整一个很小的latent vector。Decoder是解码或者还原latent vector。为什么Autoencoder不好,是因为在encoder学习到的latent space并不是uniformly distributed,而是在一些位置上会有 discrete data patches。这些discrete data patches在decoder解码的时候会出现毫无意义的输出。所以这也是为什么autoencoder只能在数据压缩或者数据重建上面取得不错的结果,但是在数据生成方面AE是结构上是明显不足的。

那么根据AE在latent space中出现的问题,VAE的出现就很自然,因为对于这种non-uniformly distributed的latent而言的话,最自然的想法就是去估计这个latent space的分布,但是对这样的分布又无法在数学上做到准确的计算,因为它是intractable的。VAE的目标就是去近似这个真实的分布,其实就是在最优它的marginal likelihood。自然的,这个marginal likelihood它有两个部分来组成,其中一个是KL Divergence,另外一个就是evidence lower bound (variational lower bound), 这两个项的关系就是 "你多我少,我少你多",换句话来说,最大化variational lower bound就是在最小化KL divergence。但是有一个问题是需要注意的,就是在训练VAE的时候,从pytorch的角度上来讲,decoder的输入是从encoder输出的分布中的采样得到的,但是采样会导致computational graph上出现nondeterminitic node, 从而导致无法最反向传播。 所以这也就有了 reparameteration trick,大白话来说,它就是把sample出来的东西放到另外一个node上,让反向传播可以做。(把nondeterministic变成deterministic)

VAE在3D点云上的应用

VAE在3D点云上的应用主要就是generation,completion。其中我认为比较有趣且相对有用的3D点云生成的VAE结构一个是componet, 2019年的文章,相对较老,它主要分两个板块,一个是Part synthesis unit, 一个是Part composition unit。这篇文章的做法就是把一个2D shape拆分开,然后生成若干个parts,然后在合并到一起。这种结构比较可以用到3D人物的点云生成上面,因为3D人体每个部分的细节分布是不一样的,比如身体的shape可以用稀疏点云就可以大致的描述出它的形状了,但是脸部和手部,如果使用同样分布的稀疏点云,就很难描述出脸部的细节,比如五官。

近期较新的文章, 就是EditVAE,发表于2022年,它也使用可上述这种part-aware的形式,同时实现了复杂shape的生成和editing。

相关推荐
木头左1 天前
LSTM模型入参有效性验证基于量化交易策略回测的方法学实践
人工智能·rnn·lstm
找方案1 天前
我的 all-in-rag 学习笔记:文本分块 ——RAG 系统的 “信息切菜术“
人工智能·笔记·all-in-rag
亚马逊云开发者1 天前
让 AI 工作空间更智能:Amazon Quick Suite 集成博查搜索实践
人工智能
腾讯WeTest1 天前
「低成本、高质高效」WeTest AI翻译限时免费
人工智能
Lucas555555551 天前
现代C++四十不惑:AI时代系统软件的基石与新征程
开发语言·c++·人工智能
言之。1 天前
Claude Code 专业教学文档
人工智能
Fuly10241 天前
大模型架构理解与学习
人工智能·语言模型
KG_LLM图谱增强大模型1 天前
[谷歌最新白皮书]嵌入与向量存储:打开AI多模态数据处理的钥匙
人工智能·大模型·知识图谱·向量存储·多模态
roman_日积跬步-终至千里1 天前
【人工智能导论】08-学习-如何让计算机理解序列数据——用RNN/LSTM建模时序依赖,用文本嵌入表示序列元素
人工智能·rnn·学习
技术吧1 天前
2025年AI不是宠物,是会思考的幽灵!
人工智能·宠物