我正在尝试实现 RBM,然后我用打网球盒来测试 rbm。
我之前尝试过自动编码器,结果很好。实际上,我对 RBM 它本身的功能感到困惑,我认为它就像自动编码器一样,对输入(每个实例)进行编码以进行特征提取,然后我们可以测试或验证模型(网络)以尝试编码和解码一些实例。
但我面临的问题是 RBM 中某些功能的结果,这似乎很奇怪。
例如 gibbs 采样的结果,采样数据的结果与实际数据非常接近。效果是来自采样数据的 h(x) 的结果,并且实际数据足够接近。
因此,当我尝试将隐藏层中的所有单元解码结果与实际值进行比较时,结果很糟糕,每个特征(单元)的结果几乎相同,大约为 0.4 到 0.5。
然后 f(x) = 1/m*sigma(log(p(x))) 丢失的功能它本身只是大约 0.07142857142857142,它永远不会改变(变化大约是 0.00000000000000001 或 0.00000000000000002)。
我对每个特征都使用了 continue 值,使用标准归一化,因此输入范围值为 0 到 1。
有人有建议吗?
*对不起我的英语不好:D