解码后的Encoder-Decoder噪声问题
Posted
技术标签:
【中文标题】解码后的Encoder-Decoder噪声问题【英文标题】:Encoder-Decoder noise problem after decoding 【发布时间】:2020-12-01 19:44:42 【问题描述】:我有一个大小为 (12960, ) 的数组,我正在使用非常简单的密集自动编码器架构来重现数组,如下所示。
input_img = Input(shape=(12960,))
encoded = Dense(units=2000, activation='relu')(input_img)
decoded = Dense(units=12960, activation='relu')(encoded)
现在我使用 20 个 epoch 和 64 个批大小来训练模型。
但是当我在解码后绘制数组时,我在很多地方都得到了某种噪音(或 0 值)。我在下面附上了原始和解码的图像。有人可以解释一下为什么会这样。我是深度学习的新手,所以我不太了解它的工作原理。是因为我使用了非常简单的架构,还是因为我在编码时压缩了很多?
【问题讨论】:
你可以试试leaky_relu 代替relu 吗? 你的网络是一个简单的前馈网络,没有自动编码器。如果有兴趣,您可以查看自动编码器中的 tensorflow [tutorial][1]:了解有关训练过程的更多信息,例如准确度、训练集和整个模型结构 [1]:@987654323 @ @tritsu 嘿,它确实工作得更好,非常感谢。你能解释一下为什么它比 relu 更有效吗? @Chris_007 我将其移至带有解释的答案。 【参考方案1】:尝试使用 LeakyReLU 代替 ReLU。
这可能是因为 ReLU 被定义为ReLU(x) = max(0, x)
,对于负值,ReLU 总是返回 0。
【讨论】:
感谢您的解释,但在我的数组中我没有任何负值。 @Chris_007 您的模型中的权重和偏差似乎可能为负数。即使您的数据没有负值。 (我假设您将数据称为数组。)以上是关于解码后的Encoder-Decoder噪声问题的主要内容,如果未能解决你的问题,请参考以下文章
神经网络机器翻译Neural Machine Translation: Encoder-Decoder Architecture
实时音频编解码之十三 Opus编码-SILK编码-噪声整形分析
神经网络机器翻译Neural Machine Translation: Encoder-Decoder Architecture