我想对有连续输入变量的受限Boltzman机器有一个具体的理解。我正在尝试设计一个最简单的例子,这样就可以很容易地跟踪行为。所以,它在这里。
输入数据是二维的.每个数据点是从两个对称正态分布中的一个(σ= 0.03)中提取出来的,其中心距离很好(15次σ)。RBM有二维隐层.
我期望得到一个RBM,它将产生两个点云,其方法与我的火车数据相同。我甚至认为,在添加了一些稀疏约束之后,对于从一个分布中提取的数据来说,隐层等于(0,1),而对于另一个分布,则为(1,0)。
我自己编写了matlab代码,并尝试了一些在线解决方案(如DeepMat:https://github.com/kyunghyuncho/deepmat),但无论我的步长有多小,RBM都会收敛到一个简单的解决方案,在该解决方案中,预测的可见层等于整个数据的平均值。我试着增加隐藏层的维度,但是它并没有实质性地改变任何事情。我还试着用零均值和方差来规范数据--没有变化。我也有西格玛=1,而不是0.03,同时保持15*西格玛的传播,同样没有变化。
由于这个问题不仅存在于我的代码中,而且也存在于其他代码中,所以我认为我可能做了一些根本错误的事情,并试图以不应该使用的方式使用RBM。如果有人能重复我的问题,我会很感激你的意见/建议。
发布于 2014-10-06 18:35:38
让我们来看看here,对于可见变量上的概率密度函数可以用Gaussian来表示的解释。下面的图片给出了一个示例,其中b是可见偏差,w1和w2是与隐藏单元相关联的权重向量。
Click的图片,因为我需要更多的声誉,直接张贴它.
你可以看到,RBM建立了一个包含2^H分量的高斯混合模型,其中每个分量的平均值是可见偏差和与隐藏单元子集相关联的权重向量的叠加。每个分量的权重与该子集中隐藏单元的偏差有关。
也就是说,用一个只有一个隐藏单元的RBM来表示一个由两个高斯人组成的混合模型的问题是最好的,其中可见偏差等于一个分量的平均值,可见偏差之和和隐藏单元的权重向量等于第二个混合分量的平均值。当您的RBM有两个隐藏单元时,事情变得更加复杂,因为这个RBM建模了一个包含4个组件的高斯混合。
而且,即使您的RBM只有一个隐藏单元,在使用对比散度、初始化较差的权重和偏差等学习策略时,学习两个分量相距很远的高斯混合单元也可能失败。
https://stackoverflow.com/questions/25641485
复制相似问题