我想对具有连续输入变量的受限玻尔兹曼机有一个基本的了解。我正在尝试设计最简单的示例,以便可以轻松跟踪行为。所以,就在这里。
输入数据是二维的。每个数据点均取自两个对称正态分布 (sigma = 0.03) 之一,其中心间隔良好(15 倍 sigma)。RBM 具有二维隐藏层。
我希望获得一个 RBM,它会以与我的火车数据相同的方式生成两个点云。我什至在想,在添加了一些稀疏约束之后,对于从一个分布中提取的数据,我的隐藏层等于 (0,1),而对于另一个分布,则隐藏层等于 (1,0)。
我自己写了matlab代码,尝试了一些网上的解决方案(比如DeepMat:https ://github.com/kyunghyuncho/deepmat ),但是不管我的步长有多小,RBM都会收敛到一个平凡的解决方案,其中预测可见层等于整个数据的平均值。我尝试增加隐藏层的维度,但它并没有实质性地改变任何东西。我还尝试通过零均值和方差对数据进行归一化 - 没有变化。我也有 sigma = 1 而不是 0.03,同时保持 15*sigma 的传播,同样没有变化。
由于这个问题不仅存在于我的代码中,也存在于其他代码中,所以我认为我可能在做一些根本错误的事情,并试图以不应该使用的方式使用 RBM。我将不胜感激评论/建议,或者如果有人可以重现我的问题。