自编码器中的权重绑定

我一直在研究自编码器,并在考虑是否应该使用绑定权重。我打算将它们堆叠作为预训练步骤,然后使用它们的隐藏表示来驱动神经网络。

如果使用未绑定权重,公式将是这样的:

f(x)=σ2(b2+W21(b1+W1*x))

如果使用绑定权重,公式将是这样的:

f(x)=σ2(b2+W1T1(b1+W1*x))

从一个非常简单的角度来看,是否可以说绑定权重确保编码部分在给定架构下生成最佳表示,而如果权重是独立的,那么解码器可以有效地处理一个非最优表示并仍然解码它?

我问这个问题是因为如果解码器是“魔法”发生的地方,而我只打算使用编码器来驱动我的神经网络,这会不会有问题。


回答:

使用绑定权重的自编码器有一些重要的优势:

  1. 更容易学习。
  2. 在线性情况下,它相当于主成分分析(PCA)——这可能导致更几何上合适的编码。
  3. 绑定权重是一种正则化方法。

但当然,它们并非完美:当你的数据来自高度非线性流形时,它们可能不是最优的。根据你的数据大小,我会尝试两种方法——使用绑定权重和不使用绑定权重,如果可能的话。

更新:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注