我正在学习玻尔兹曼机。到目前为止,我已经成功编写了一个可以学习受限玻尔兹曼机能量函数系数的代码。现在,由于我的模型是生成的(如果到目前为止我已经正确理解了事情)并且我确定 RBM 至少可以用于在二进制图像中进行修复,我想知道如何从给定的概率分布中生成样本由玻尔兹曼机。这就是我的模型生成基于训练数据集的新二值图像的方式。
然而,即使在数学上这个想法似乎很清楚,我也不知道如何对计算机进行编程以从分布中采样。
我正在学习玻尔兹曼机。到目前为止,我已经成功编写了一个可以学习受限玻尔兹曼机能量函数系数的代码。现在,由于我的模型是生成的(如果到目前为止我已经正确理解了事情)并且我确定 RBM 至少可以用于在二进制图像中进行修复,我想知道如何从给定的概率分布中生成样本由玻尔兹曼机。这就是我的模型生成基于训练数据集的新二值图像的方式。
然而,即使在数学上这个想法似乎很清楚,我也不知道如何对计算机进行编程以从分布中采样。
对于 RBM,您运行随机网络 - 从“输入”和隐藏层向前和向后 - 多次。几个步骤后,它将收敛到从它所学习的数据群中采样。如果你是从整张图片中学习的,并且想填充一个patch,那么保持patch中没有的输入值(不要让它们随机变化)。
其他生成模型可能有不同的方法。GAN 和 VAE 通常有一种更简单的方法,您可以生成一个随机输入向量并从该输入向前运行网络的生成器部分。