我在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

最佳答案

简而言之,与任何算法一样,输入数越大,复杂度就越高。将问题分解为较小的子问题,然后将它们组合起来可能会更快(称为“分而治之”算法)。

现在,使用这些类型的机器学习算法,功能中还需要抽象。您既不想一次输入每个像素(仅具有本地信息),也不想以单个数字/符号来表示整个图像(仅具有全局信息)。许多方法将这类数据组合为分层表示(通常称为深度学习)。

如果将这两个概念结合在一起,则应该清楚的是,首先处理小的图像补丁会为您提供大量的本地信息,然后您可以将其组合起来以在以后的阶段推断出全局信息。因此,“因为它更容易”并不是其背后的全部理由。它还可以使所有功能执行得更好/更准确。

我希望这能回答您的问题而不会太含糊(彻底的回答将变得太长)。有关RBM的详细介绍,请参见例如page的第7章

07-24 09:53