我阅读了有关 RBM pyLearn2(机器学习库)示例的文档。有人能告诉我为什么它更容易吗?
# First we want to pull out small patches of the images, since it's easier
# to train an RBM on these
pipeline.items.append(
preprocessing.ExtractPatches(patch_shape=(8, 8), num_patches=150000)
)
无论如何,我对 RBM 不太了解,所以请耐心等待。完整代码请引用this link
最佳答案
简单地说,与任何算法一样,您的复杂性会随着输入数字的增加而增加。将问题划分为较小的子问题,然后将这些子问题组合起来可能会更快(称为分而治之算法)。
现在,对于这些类型的机器学习算法,还需要对特征进行抽象。您既不想一次输入每个像素(仅具有局部信息),也不希望用单个数字/符号表示整个图像(仅具有全局信息)。许多方法将这些类型的数据组合成层次表示(主要称为深度学习)。
如果将这两个概念结合在一起,应该很清楚(呃),处理小图像 block 首先会为您提供大量的局部信息,然后您可以在稍后阶段将这些信息组合起来推断出全局信息。所以“因为它更容易”并不是其背后的全部理由。它还使一切表现更好/更准确。
我希望这能回答您的问题,但不要太含糊(彻底的答案会变得太长)。有关 RBM 的更详细介绍,请参阅例如第 7 章对此 page
关于machine-learning - 受限玻尔兹曼机中 "extracting 8x8 patches"背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115561/