Autoencoder中的绑定权重

时间:2016-04-27 12:23:09

标签: machine-learning neural-network deep-learning autoencoder

我一直在关注自动编码器,并一直想知道是否使用了绑定的重量。我打算将它们作为预训练步骤进行堆叠,然后使用它们的隐藏表示来提供NN。

使用解开的权重,它看起来像:

F(X)=σ<子> 2 (的 B'的子> 2 + w ^ <子> 2 *σ<子> 1 (的 b'的子> 1 + w ^ <子> 1 * X))< / p>

使用绑定权重看起来像:

F(X)=σ<子> 2 (的 B'的子> 2 + w ^ <子> 1 Ť *σ<子> 1 (的 b'的子> 1 + w ^ <子> 1 < /强> * X))

从一个非常简单的观点来看,可以说绑定权重可以确保编码器部分在给定体系结构的情况下生成最佳表示,如果权重是独立的,那么解码器可以有效地采用非最佳表示并仍然对其进行解码吗? / p>

我问,因为如果解码器出现“魔法”并且我打算只使用编码器来驱动我的NN,那不会有问题。

2 个答案:

答案 0 :(得分:10)

带有绑定权重的自动编码器具有一些重要优势:

  1. 它更容易学习。
  2. 在线性情况下,它与PCA相当 - 这可能会导致更几何的编码。
  3. 绑重是一种正规化。
  4. 但当然 - 它们并不完美:当您的数据来自高度非线性流形时,它们可能不是最佳的。根据您的数据大小,我会尝试两种方法 - 使用绑定权重,而不是如果可能的话。

    更新:

    你还问为什么来自具有紧密权重的自动编码器的表示可能比没有的表示更好。当然,并非这种表示总是更好的情况,但如果重建误差是合理的,则编码层中的不同单元表示可被视为垂直特征的生成器的东西,其解释了数据的大部分方差。 (像PCA那样很好)。这就是为什么这种表示在进一步的学习阶段可能非常有用。

答案 1 :(得分:0)

主要优点是:

  1. 参数更少,泛化效果更好(我们将在下一层使用转置原始权重),而参数更多则导致过度拟合。