机器学习的计算机硬件

一个不时出现的问题是

我需要什么硬件来练习机器学习?

我还在上学的时候,曾经痴迷于更快的速度和更多的核心,以便我能更快、更长时间地运行我的算法。我的观点已经改变了。强大的硬件仍然很重要,但前提是您已经考虑了许多其他因素。

machine learning hardware

TRS 80!
照片作者 blakespot,部分权利保留。

硬件 经验

经验是,如果你才刚开始,你的硬件并不重要。专注于使用适合内存的小型数据集进行学习,例如来自UCI机器学习库的数据集。

学习良好的实验设计,确保提出正确的问题,并通过测试各种算法并从统计假设检验的角度解读结果来挑战你的直觉。

一旦硬件开始变得重要,你确实需要大量的核心和大量的RAM,那就为你精心设计的项目或实验按需租用。

更多的CPU!更多的RAM!

刚开始接触人工智能和机器学习时,我还很天真。我会使用所有可用的数据,并将其运行到我的算法中。我会微调参数来重新运行模型,以提高最终得分。我会运行我的模型数天甚至数周。我非常痴迷。

这主要是因为比赛引起了我对提升机器学习技能的兴趣。痴迷是好事,你可以很快学到很多东西。但是如果应用不当,你可能会浪费很多时间。

那时候我自己组装电脑。我经常更新我的CPU和RAM。那是2000年代初,多核并不是一个清晰的道路(对我而言),甚至GPU在非图形用途方面也很少被提及(至少在我身边是这样)。我需要更大、更快的CPU,而且需要很多很多RAM。我甚至征用了室友的电脑,以便我可以进行更多的运行。

后来在研究生阶段,我能够使用实验室里的小型集群,并充分利用了它。但事情开始发生变化,我拥有的原始计算能力多少开始变得不那么重要了。

gpu machine learning

认真对待机器学习的GPU硬件。
照片作者 wstryder,部分权利保留。

结果是错误的

我转变的第一步是发现了良好的(任何)实验设计。我发现了统计假设检验的工具,这些工具让我能够了解一个结果与另一个结果相比是否真的有显著差异(例如更好)。

突然之间,我认为我取得的微小改进不过是统计上的波动。这是一个重要的变化。我开始花更多的时间思考实验设计。

问题是错误的

我将我的痴迷转移到确保我提出正确的问题上。

我现在花很多时间预先加载我能想到的关于给定问题的尽可能多的问题和问题的变体。我希望确保在我运行长时间的计算作业时,我得到的结果确实有意义。它们将对问题产生影响。

你可以看到,我强烈提倡花大量时间定义你的问题

直觉是错误的

良好的假设检验揭示了你对自己了解多少。至少对我来说是这样,现在仍然是。我“知道”某个算法的某个配置是稳定、可靠且良好的。通过统计检验的视角解读结果很快就教会了我并非如此。

这转移了我的思维方式,让我不再依赖我旧有的直觉,而是通过统计显著结果的视角重建我的直觉。

现在,我不敢假设我知道哪种算法或哪类算法在一个给定的问题上会表现出色。我抽样检查各种算法,让数据引导我。

我还强烈建议仔细考虑测试选项,并使用像Weka实验器这样的工具,这些工具在解释结果时内置了假设检验。

最优并非最优

对于某些问题,最好的结果是脆弱的。

我过去曾热衷于非线性函数优化(以及相关的比赛),你可以花费大量的计算时间来探索(事后看来,基本上是列举!)搜索空间,并找到比容易找到的解决方案略好的结构或配置。

问题是,那些难以找到的配置通常非常奇怪,或者利用了领域或模拟器中的错误或怪癖。这些解决方案对于比赛或实验来说是好的,因为数字更好,但不一定适用于领域或实际操作。

我在机器学习比赛中看到了同样的模式。一个快速且易于找到的解决方案在给定的性能指标上较低,但它是稳健的。通常,一旦你投入数天、数周甚至数月来调整你的模型,你就建立了一个脆弱的玻璃模型,这个模型过拟合了训练数据和/或排行榜。这对学习和在比赛中表现良好很有帮助,但不一定适用于实际操作(例如,Netflix Prize 获奖系统并未部署)。

machine learning data center

数据中心内的机器学习。
照片作者 bandarji,部分权利保留。

机器学习硬件

存在需要强大硬件的大数据。学习大规模机器学习需要大数据和强大的硬件。

在这个网站上,我主要关注机器学习的初学者,他们使用小型硬件和小型数据要好得多。一旦你掌握了机器学习的足够知识,就可以进阶到更大的问题。

今天,我有一台iMac i7,拥有很多核心和8 GB内存。这是一台普通的台式机,并且可以胜任工作。我认为你的工作站或笔记本电脑足以开始机器学习。

我确实偶尔需要更强大的硬件,例如参加比赛或满足我个人的兴趣。在这些场合,我会租用云基础设施,启动一些实例并运行我的模型,然后下载CSV预测或其他文件。这在时间和金钱上都非常划算。

当您需要使用强大的硬件和大数据进行实践时,租用它。在您自己的教育上投入少量资金,设计一些仔细的实验,并租用集群来执行它们。

您使用什么硬件来练习机器学习? 请留言分享您的经验。

35 条对《机器学习计算机硬件》的回复

  1. Mark 2015年2月28日上午9:58 #

    我需要升级我的台式机,并想在上面做一些人工智能/机器学习算法。我看到人们使用 Nvidia 显卡来加速。我想知道应该买哪些显卡,以及我需要什么样的通用计算机配置。这只是家用,我想找一个价格合理的,如果不是非常便宜的话。哈哈。谢谢。

  2. OMG 2016年8月31日上午11:46 #

    如果它同时具备机器学习和游戏功能呢?这是一个困难且关键的问题。

  3. Ganesh 2016年11月3日凌晨2:18 #

    嗨,Jason,

    感谢您的博客和这篇博文。我发现它非常有帮助。

    您认为一个不错的启发式限制是,在您文章中提到的那种不错的笔记本电脑上可以分析多少行x列类型的数据,与例如 EC2 相比?

    • Jason Brownlee 2016年11月3日上午8:02 #

      你好 Ganesh,

      我需要快速的周转时间。我希望在几分钟内得到结果。这意味着我经常缩小数据规模,以便在几分钟内进行建模。然后我使用强大的计算机来帮助理解在小型数据上的结果如何映射到完整数据集。

      我发现真正的瓶颈是想法和测试它们。你想要一个能帮助你快速测试事物的环境。

  4. Jatin 2016年11月25日晚上7:11 #

    我也面临类似的问题。你能具体推荐一些“云基础设施”吗?

  5. Jonathan 2016年12月21日晚上8:23 #

    我是机器学习的新手,我认为我现在还没有准备好租用集群,那么带有不错的 GPU 的笔记本电脑怎么样?目前我没有足够大的数据可以玩。我有一台带有 gtx950m 的笔记本电脑。

    很棒的书,我买了其中三本。

  6. sandy 2017年5月25日晚上7:24 #

    训练深度学习模型所需的最低配置是什么?我需要 NVIDIA GPU 吗?或者可以在 Intel HD Graphics 上实现吗?

    • Jason Brownlee 2017年6月2日上午11:43 #

      不,你可以先使用 CPU,直到你需要训练大型模型,然后你可以使用 AWS。

  7. Rohan 2017年6月6日凌晨1:59 #

    我正在为 AMD 与 Intel CPU 感到困惑?我应该为机器学习买什么?AMD CPU 和 NVIDIA 显卡之间是否存在兼容性问题?

  8. LukeJohnnywalker 2017年10月11日下午3:56 #

    老实说,我只是在找一个借口购买一台高端游戏笔记本电脑。我不是从这里得到的……但信息非常有教育意义。祝好。

  9. Jon Snow 2017年11月9日晚上11:21 #

    非常好的建议… 我也得出了需要加强我的统计知识栈的结论。仅仅能够使用不同的模型而没有超越浅层统计的对结果和模型行为的理解是远远不够的。

    如果您也能推荐一些可以提高统计知识的好资源,那就太好了。

    谢谢!

  10. Jesús Martínez 2018年4月18日凌晨2:15 #

    这篇文章充满了智慧,尤其是关于脆弱模型的部分。你给了我对机器学习结果新的视角。谢谢!

  11. Janu 2018年5月5日凌晨2:18 #

    你好,我对机器学习一无所知。我只有一个疑问。我学过物联网,用过Arduino板和传感器等不同的硬件组件。机器学习中是否有类似这样的硬件组件?除了电脑或笔记本电脑之外!

    • Jason Brownlee 2018年5月5日凌晨6:24 #

      你可以在任何你想要的计算设备上运行机器学习。

      也许物联网将成为训练模型数据的绝佳来源。

  12. Moksha 2018年11月24日凌晨6:58 #

    你好,我只是这个领域的新手,最近买了Dell Inspiron 15 5570 i7 8代 8GB内存 1TB HDD + 128GB SSD, Windows 10,配备 Intel HD 620 集成显卡。但它没有独立显卡。那么它是否足以用于机器学习和人工智能,还是我需要独立显卡?

    • Jason Brownlee 2018年11月25日凌晨6:49 #

      你的硬件听起来不错,你已经准备好开始了!

  13. Shubham Giri 2019年1月17日晚上6:01 #

    嗨,Jason,

    你能告诉我 Dell Inspiron 15 5570 i7 8代 8GB内存 1TB HDD + 128GB SSD, Windows 10,配备 Intel HD 620 集成显卡执行机器学习算法来检测和识别单张照片中的 60 个不同人脸需要多长时间吗?

    • Jason Brownlee 2019年1月18日凌晨5:30 #

      不,抱歉。我不知道。也许进行实验来找出答案。

  14. Sampath 2019年3月10日凌晨7:52 #

    嗨 Jason
    感谢这篇明智的文章。我正在学习机器学习和数据科学。我有点惊讶,因为我的一位朋友主动提出帮助我学习,并说他花近 4,500 澳元买了一台带 GPU 的笔记本电脑,我当时觉得这是什么……
    我在谷歌上找到了这篇文章……不知怎么地,我确信我可以学习和实验,我不需要复杂/强大的硬件,如果需要,我总是可以求助于 Google/AWS。
    我感谢您在这篇文章中的帮助。

    • Jason Brownlee 2019年3月10日凌晨8:20 #

      谢谢。

      是的,我今天仍然使用 AWS EC2,并且从中节省了很多钱。

  15. Janhavi 2019年6月11日晚上6:09 #

    嗨 Jason
    我在 Mac OS X 上工作,配置如下:i5 处理器,10 GB 1333 MHz DDR3,Intel HD Graphics 3000 512 MB。我需要处理高分辨率图像数据集来完成我的工作。嗯,使用 conda 环境处理其他机器学习算法一切正常。但这个配置是否适合深度学习的密集计算和 opencv 环境?你能帮帮我吗?

    • Jason Brownlee 2019年6月12日上午7:52 #

      这是一个好的开始。

      之后你可以在 EC2 上运行大型模型。

  16. Janhavi 2019年6月12日下午2:28 #

    谢谢 Jason 的及时回复!这绝对是一个不错的选择!

  17. Arif 2019年6月22日凌晨3:35 #

    我的当前计算机配置是 i5 第 3 代,双核,最高速度 1.70 Ghz,4GB RAM 和 Nvidia GeForce GT 640M Le…

  18. Sukant 2020年9月18日下午2:35 #

    我的笔记本电脑规格是 Core i7 第 7 代,7700HQ CPU,2.80Ghz,32GB RAM,NVDIA GEFORCE GTX 1050 Ti……我买它是为了在我所在的网络领域运行一些高 CPU 处理应用程序,但我认为这对于机器学习也很好。?你有什么建议吗,Jason。

  19. phanikrishna 2020年9月20日晚上10:02 #

    嗨 Jason
    你好。

    如何比较两台机器学习 (ML) 模型所需的硬件?
    是否有任何参数可以说明我的 ML 模型比其他 ML 模型使用的计算机硬件少?

    • Jason Brownlee 2020年9月21日上午8:10 #

      不确定我是否理解你的问题,抱歉?

      也许你可以详细说明一下?

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。