解决一个实际的机器学习问题

机器算法验证 机器学习 下定决心 可扩展性
2022-03-24 06:35:07

我目前正在斯坦福大学攻读计算生物学博士学位。我得到了回答我感兴趣的问题所需的数据。数据集有时是“大”的,这些大问题需要更长的时间来解决(有时需要几天)。

话虽如此,我想知道在极其庞大的数据集上机器学习是如何工作的?假设谷歌想要解决其中有 100 亿行,找到任何梯度似乎都令人望而却步。如果 google 实际运行这些模拟所需的时间(我相当于几天),那么解决方案在它到来之前可能一文不值。在训练神经网络或实施更复杂的方法时,这个问题会更加突出。这个问题的实际解决方案是什么?Ax=bA

我见过像“我们选择有代表性的样本......”这样的说法。在我看来,这是一个荒谬的说法,因为当 p >> n 时,没有任何东西具有代表性,因为系统是不确定的。在这些情况下,任何关于“代表”的帮助也将有所帮助。

4个回答

我见过像“我们选择有代表性的样本......”这样的说法。这是一个荒谬的说法......

我同意你的看法。而且我不认为有代表性的抽样是他们所做的(不再)。我的理解是,他们使用 Hadoop、 SparkMLLib等技术通过分布式计算分析大数据我确信他们在这些基础上编写了他们专有的复杂机器学习/分析库。

这些“可分发”系统的算法的编码方式与您和我在 R、Matlab 或 Python 中的编码方式不同。它们需要具有可扩展性和可并行性,这对某些算法来说是个问题。例如,MLLib 目前只支持一些非常基本的算法(可以在他们的网站上找到列表)。

除了二次抽样和分而治之的分布式计算(既重要又有用)之外,还有许多其他方法可以解决此类问题。仅举几个例子,平行坐标下降(独立迭代每个变量,稍后组合解决方案)和在线方法,如随机梯度下降 (SGD)。

请查看https://github.com/JohnLangford/vowpal_wabbit,了解一种广泛使用的 SGD 在线学习方法。Alex Smola 在大规模学习方面也做了很多工作。

大规模并行矩阵求逆实际上可以通过 MUMPS 等开源软件实现,尽管我不确定它如何扩展到 10bio 行。它用于汽车中的大型有限元,因此肯定具有工业实力。

至于所使用的算法类别,它是一种多方面的方法(将矩阵划分为在类似 cholesky 的外部产品更新意义上不会相互“干扰”的区域,解决每个部分并收集矩形“干扰”更新) . 腮腺炎网站http://mumps.enseeiht.fr/上的更多详细信息

现在,如果您只是进行线性回归,结果将是 x = (AtA)-1At b 并且您可能可以并行化协变量矩阵 (AtA) 和误差项的计算以有效地在不同的机器上运行,然后聚合结果。这假设 A 只有几列。

谢谢大家的意见。原来 Apache spark 做了 L1 惩罚回归。我在这里找到了培训视频的链接,你们中的一些人可能会觉得有帮助。

原来在谷歌认真研究过这个问题并创建了 Map-Reduce 架构的人是 Jeff Dean 和 Sanjay Ghemawat,他们两人都已成为硅谷的摇滚明星。Jeff Dean 有他自己的 Chuck Norris 角色!!!

http://www.quora.com/What-are-all-the-Jeff-Dean-facts?share=1