【问题标题】:Is it necessary to use a linear bottleneck layer for autoencoder?自动编码器是否需要使用线性瓶颈层?
【发布时间】:2018-10-15 15:52:36
【问题描述】:

我目前正在尝试使用自动编码器网络进行降维。 (即使用瓶颈激活作为压缩特征)

我注意到很多使用自动编码器来完成这项任务的研究都使用了线性瓶颈层。

凭直觉,我认为这是有道理的,因为非线性激活函数的使用可能会降低瓶颈特征表示原始特征中包含的原理信息的能力。 (例如,ReLU 会忽略负值,而 sigmoid 会抑制过高或过低的值)

但是,这是正确的吗?自动编码器是否需要使用线性瓶颈层?

如果可以使用非线性 bootleneck 层,什么激活函数是最佳选择?

谢谢。

【问题讨论】:

    标签: neural-network autoencoder


    【解决方案1】:

    不,您不仅限于线性激活函数。一个例子是this work,他们使用 GRU 层的隐藏状态作为输入的嵌入。隐藏状态是通过在计算中使用非线性tanh和sigmoid函数获得的。

    此外,“忽略”负值也没有错。事实上,稀疏性可能是有益的。它可以增强代表性。其他函数(例如身份或 sigmoid 函数)可能产生的噪声可能会在不存在的情况下引入错误的依赖关系。通过使用 ReLU,我们可以正确地表示缺乏依赖性(作为零),而不是一些接近零的值,例如sigmoid 函数。

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 2017-08-08
      • 2010-11-11
      • 2020-07-01
      相关资源
      最近更新 更多