我一直在研究自编码器,并在考虑是否应该使用绑定权重。我打算将它们堆叠作为预训练步骤,然后使用它们的隐藏表示来驱动神经网络。
如果使用未绑定权重,公式将是这样的:
f(x)=σ2(b2+W2*σ1(b1+W1*x))
如果使用绑定权重,公式将是这样的:
f(x)=σ2(b2+W1T*σ1(b1+W1*x))
从一个非常简单的角度来看,是否可以说绑定权重确保编码部分在给定架构下生成最佳表示,而如果权重是独立的,那么解码器可以有效地处理一个非最优表示并仍然解码它?
我问这个问题是因为如果解码器是“魔法”发生的地方,而我只打算使用编码器来驱动我的神经网络,这会不会有问题。
回答:
使用绑定权重的自编码器有一些重要的优势:
- 更容易学习。
- 在线性情况下,它相当于主成分分析(PCA)——这可能导致更几何上合适的编码。
- 绑定权重是一种正则化方法。
但当然,它们并非完美:当你的数据来自高度非线性流形时,它们可能不是最优的。根据你的数据大小,我会尝试两种方法——使用绑定权重和不使用绑定权重,如果可能的话。
更新:
你还问了为什么来自绑定权重自编码器的表示可能比没有绑定权重的更好。当然,并非这种表示总是更好,但如果重构误差是合理的,那么编码层中的不同单元代表的可能是被视为垂直特征的生成器,这些特征解释了数据中大部分的方差(就像PCA所做的那样)。这就是为什么这种表示在学习的进一步阶段可能非常有用。