matlab - Gaussian-RBM 在一个简单的例子上失败

标签 matlab machine-learning artificial-intelligence deep-learning rbm

我想对具有连续输入变量的受限玻尔兹曼机有一个基本的了解。我正在尝试设计最简单的示例,以便可以轻松跟踪行为。所以,就在这里。

输入数据是二维的。每个数据点都取自两个对称正态分布之一 (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。如果有人能重现我的问题,我将不胜感激。

最佳答案

看看here用于解释哪些可见变量的概率密度函数可以用高斯-伯努利 RBM 表示。下图给出了说明,其中 b 是可见偏差,w1 和 w2 是与隐藏单元相关联的权重向量。

Click对于图像,因为我需要更多的声誉才能直接发布它......

您会看到 RBM 对具有 2^H 个分量的高斯混合模型建模,其中每个分量的均值是可见偏差和与隐藏单元子集关联的权重向量的叠加。每个分量的权重与该子集中隐藏单元的偏差有关。

就是说,您对两个高斯模型的混合建模的问题可以用只有一个隐藏单元的 RBM 来最好地表示,其中可见偏差等于一个分量的平均值以及可见偏差和权重向量的总和隐藏单元等于第二个混合分量的平均值。当你的 RBM 有两个隐藏单元时,事情会变得更复杂,因为这个 RBM 模拟一个包含 4 个分量的高斯混合。

即使您的 RBM 只有一个隐藏单元,在使用对比散度和初始化不佳的权重和偏差等学习策略时,学习两个分量相距很远的高斯混合也可能会失败。

关于matlab - Gaussian-RBM 在一个简单的例子上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25641485/

相关文章:

python - 如何使用 Google Protobuf 解析、编辑和生成 object_detection/pipeline.config 文件

machine-learning - 使用 Tensorflow 估计器

machine-learning - 如何利用赫布学习?

python - 使用python拟合先知模型时出现问题

arrays - MATLAB 在逻辑矩阵中存储索引最大值

c++ - 矩阵乘法运行时间 Python < C++ < Matlab - 解释

c - 在 Matlab 中安装 C 编译器

algorithm - 深度优先搜索生成的节点总数是多少

machine-learning - 将弱学习器组合成强分类器

Matlab聚类编码-绘制散点图