我在关于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
答案 0 :(得分:2)
简而言之,与任何算法一样,您的复杂性随着输入数量的增加而增加。将问题划分为较小的子问题并随后将它们组合起来可能会更快(称为分而治之算法)。
现在,使用这些类型的机器学习算法,还需要对功能进行抽象。您既不想一次输入每个像素(只有本地信息),也不希望用单个数字/符号表示整个图像(只有全局信息)。许多方法将这些类型的数据组合成分层表示(主要称为深度学习)。
如果将这两个概念结合在一起,应该清楚(呃)处理小图像补丁首先会为您提供更多的本地信息,然后您可以将这些信息组合起来在稍后阶段推断为全局信息。所以"因为它更容易"并不是它背后的完整推理。它还使一切表现更好/更准确。
我希望这可以回答你的问题而不会太模糊(彻底的回答会变得太长)。有关RBM的更详细介绍,请查看例如关于这个page
的第7章