ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Neural Discrete Representation Learning(VQ-VAE)

2021-08-10 07:01:46  阅读:433  来源: 互联网

标签:latent Neural VAE 离散 VQ vector embedding 向量



发表时间:2018(NIPS 2017)
文章要点:文章设计了一个新的基于VAE的自编码器Vector Quantised-Variational AutoEncoder (VQ-VAE)。区别在于之前的自编码器去学latent representation的时候都是去学一个连续的向量,这篇文章学了一个离散的表示。注意,离散并不意味着one-hot,只要是离散的数字就ok。
比如图中这个图像的例子,最后学到的z(latent feature spaces)就是一个32x32的矩阵,每个位置都是一个取值范围为1-K的数字。这个K表示的是embedding space的向量个数。z的每个数字就对应一个latent embedding vector \(e_i\)。然后要解码的时候,就用这个z去embedding space里面去找对应的\(e_i\)然后组装成紫色那个方块\(z_q (x)\),然后解码出图像。这里embedding space里面的\(e_i\)是一个D维的向量,我个人感觉这个向量是个实值向量,不是one-hot的,文章的离散主要指的是一共只有K个embedding vectors,不管多少张图片,他的representation都是这K个vectors组合起来的,所以z是离散的。那么z的每个位置的数字是怎么得到的呢?就是从绿色的方块\(z_e (x)\)得到的。\(z_e (x)\)的每个向量去和embedding vector计算距离,取距离最近的embedding vector对应的index就行。然后这会导致一个小问题,中间这个地方的梯度是断了的,不能直接PB。文章中的方式也很暴力,就是后面BP到\(z_q (x)\)之后,直接将这个梯度信息对应到\(z_e (x)\)上去。最后还加了个正则项之类的东西,最后损失变成

总结:这篇文章的出发点就是很多时候我们并不需要连续的表征,离散的表征就已经足够了。比如人只要认识三千个汉字就能说话写文章,表达丰富的含义了。挺有道理的,但是文章讲的有点不清楚,不知道整个理解有没有到位。比如\(e_i\)是不是one-hot的?如果不是的话,那么要维护K个向量,要维护的模型参数就变多了,毕竟之前的VAE虽然是连续表征,但是也只用维护一个向量。这里相当于有一个离散的z,但是这个z的背后实际上是K个向量。
疑问:体更新方式其实还没弄明白,另外loss为啥设计成这样也不清楚。

标签:latent,Neural,VAE,离散,VQ,vector,embedding,向量
来源: https://www.cnblogs.com/initial-h/p/15121917.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有