1

按照大多数文献中的建议,我将我的数据归一化为零均值和单位方差,以预训练 GB-RBM。但无论我选择什么学习率,无论历元数是多少,我的平均重建误差都不会低于 0.6 左右。堆叠的 BB-RBM 的重建误差在几个时期内很容易下降到 0.01。我已经使用了几个实现 GBRBM 的工具包,如http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf中所述,但都有相同的问题。我是否遗漏了什么,或者重建错误是否意味着保持在 50% 以上?

我通过沿输入向量的每个维度减去均值并除以标准差来标准化我的数据:

大小(mfcc)-> [mlength 行 x 39 列]

mmean=mean(mfcc);
mstd=std(mfcc);
mfcc=mfcc-ones(mlength,1)*mmean;
mfcc=mfcc./(ones(mlength,1)*mstd);

这确实给了我沿每个维度的零均值和单位变量。我尝试了不同的数据集、不同的功能和不同的工具包,但我的重建错误从未低于 GBRBM 的 0.6。谢谢

4

1 回答 1

0

我猜您使用 exp() 作为 sigmoid,然后使用 3rd 方库来执行矩阵函数?

如果上述情况属实,我猜第 3 方库正在吞噬 exp() 溢出错误,但仍停止计算,因此隐藏/重新创建的向量无效。

根据以下评论进行编辑:

theano.tensor.nnet.sigmoid() 正在使用 exp(),所以我会先尝试切换到 hard_sigmoid()。它不会像曲线那么好,但不会上溢/下溢,因此您可以查看这是否是错误的根源。

我假设您尝试了其他数据预处理并且仍然有很高的重建错误?

于 2014-08-17T20:46:46.020 回答