我按照大多数文献中的建议,将我的数据归一化为零均值和单位方差,以预训练GB-RBM。但无论我选择什么样的学习率,不管是多少次,我的平均重建误差都不会低于0.6左右。层叠BB-RBMs的重建误差很容易在几个时期内下降到0.01。我使用了几个工具包,它们实现了http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf中提到的GBRBM,但都有相同的问题。我是不是遗漏了什么,或者重建误差应该保持在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。谢谢
发布于 2014-08-18 04:46:46
我猜您使用exp()作为sigmoid,然后使用第三方库来执行矩阵函数?
如果上述情况属实,我会猜测第三方库正在接受exp()溢出错误,但仍然停止计算,因此隐藏/重新创建的向量是无效的。
根据下面的评论进行编辑:
theano.tensor.nnet.sigmoid()使用的是exp(),所以我首先尝试切换到hard_sigmoid()。它不会是一条很好的曲线,但它不会溢出/下溢,所以你可以看到这是否是错误的来源。
我假设你尝试过其他数据预处理,但仍然有很高的重建误差?
https://stackoverflow.com/questions/24670374
复制相似问题