首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VAE输入数据缩放

VAE输入数据缩放
EN

Stack Overflow用户
提问于 2019-03-21 04:15:51
回答 1查看 1.1K关注 0票数 2

变分自动编码器(VAE)本身就是一个相当复杂的概念。不出所料,大多数帖子、评论和教程都集中在理论和架构上,但大多数也没有解决数据缩放的主题。在实验VAE时,我遇到了一个(对我来说)令人惊讶的阅读标记,即将数据缩放到VAE的方式非常重要,我无法理解它的解释是什么。

要可视化描述以下问题,请在此处访问笔记本:https://github.com/mobias17/VAE-Input-Scaling/blob/master/VAE%20Input%20Scaling.ipynb

让我们假设目标是通过VAE重建正弦波(例如声波)。当我通过模型提供标准化数据时,它只能近似值介于-1和1之间。显然,快速的答案是对数据进行标准化。尽管如此,这仍然导致了以下问题:

1) VAE只能近似取值于-1和1之间的原因是什么?(是高斯重新参数化,消失梯度吗?)

2)有没有办法克服这个界限(模型改变)?

3)扩展VAE数据的最佳实践是什么?是否应该在标准开发环境中对数据进行标准化?

Results showing Sutputs are between -1 & 1

EN

回答 1

Stack Overflow用户

发布于 2019-04-25 21:34:52

变分自动编码器可以在任何范围内近似取值。这里的问题是这个特定模型的体系结构。

这个VAE的解码器使用keras.layers.LSTM。This layer's default activation function is tanh,作为最后一层,并且tanh函数输出范围(-1,1)中的值。这就是模型不能生成超出该范围的值的原因。

然而,如果我们将激活函数改为,比方说,线性,替换

代码语言:javascript
复制
decoder_mean = LSTM(input_dim, return_sequences=True)

使用

代码语言:javascript
复制
decoder_mean = LSTM(input_dim, return_sequences=True, activation=None)

VAE现在可以近似数据。这是我经过100个时代的训练后得到的结果。

一般的建议是,通过缩放数据或选择更具表现力的函数,确保您尝试近似的数据位于您用来近似它的函数的范围内。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55269475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档