首页 > 解决方案 > 在优化算法中“缓存残差”是什么意思?

问题描述

我正在阅读有关Netflix 挑战赛(2006 年)的文章。在某些时候,他说:

为了效率起见,缓存残差(全部为 1 亿个),这样当您训练特征 72 时,您不必等待 predictRating() 重新计算前 71 个特征的贡献。您将需要 2 Gig 的 ram、一个 C 编译器和良好的编程习惯来执行此操作。

缓存残差是什么意思?当您更改参数的值时,如何避免重新计算所有残差?

标签: cmachine-learningoptimizationsvd

解决方案


这意味着,您应该首先在计算值的缓存中查找,而不是每次都重新计算解决方案的部分内容。如果它存在,则无需重新计算它,它只是被使用。如果它不存在,则计算它,存储在缓存中并使用它。

因此,假设我们正在计算三个阶乘数的总和。每个阶乘数由公式 F(x) = x * F(x-1) 或 F(0) = 1 计算。所以如果你必须找到 F(7) + F(3) + F(9), F(7) 将缓存 F(7) 到 F(0) 并且 F(3) 将不计算任何内容,从先前缓存的值中查找。同样,F(9) 将从 F(8) 计算,也从 F(7) 计算,F(7) 不会被计算,从缓存中查找。

残差是在获得最终答案的过程中使用的计算的任何部分。


推荐阅读