Neural Discrete Representation Learning(VQ-VAE)

Neural Discrete Representation Learning(VQ-VAE)**发表时间:**2018(NIPS2017)**文章要点:**文章设计了一个新的基于VAE的自编码器VectorQuantised-VariationalAutoEncoder(VQ-VAE)。区别在于之前的自编码器去学latentrepresentation的时候都是去学一个连续的向

大家好,欢迎来到IT知识分享网。

Neural Discrete Representation Learning(VQ-VAE)
发表时间:2018(NIPS 2017)
文章要点:文章设计了一个新的基于VAE的自编码器Vector Quantised-Variational AutoEncoder (VQ-VAE)。区别在于之前的自编码器去学latent representation的时候都是去学一个连续的向量,这篇文章学了一个离散的表示。注意,离散并不意味着one-hot,只要是离散的数字就ok。
比如图中这个图像的例子,最后学到的z(latent feature spaces)就是一个32×32的矩阵,每个位置都是一个取值范围为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)\)上去。最后还加了个正则项之类的东西,最后损失变成
Neural Discrete Representation Learning(VQ-VAE)
总结:这篇文章的出发点就是很多时候我们并不需要连续的表征,离散的表征就已经足够了。比如人只要认识三千个汉字就能说话写文章,表达丰富的含义了。挺有道理的,但是文章讲的有点不清楚,不知道整个理解有没有到位。比如\(e_i\)是不是one-hot的?如果不是的话,那么要维护K个向量,要维护的模型参数就变多了,毕竟之前的VAE虽然是连续表征,但是也只用维护一个向量。这里相当于有一个离散的z,但是这个z的背后实际上是K个向量。
疑问:具体更新方式其实还没弄明白,另外loss为啥设计成这样也不清楚。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/28008.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信