算法是机器学习领域的重要组成部分。
你需要了解有哪些算法,以及如何有效地使用它们。
一个快速获取这些知识的简单方法是回顾关于某个算法已知的知识,对其进行研究。
在这篇文章中,你将发现研究机器学习算法的重要性,以及你可以用来加速理解机器学习算法的5种不同来源。
通过我的新书《掌握机器学习算法》启动你的项目,其中包括所有示例的《分步教程》和《Excel电子表格》文件。

研究机器学习算法
照片由Anders Sandberg拍摄,保留部分权利
为什么要研究机器学习算法
你需要理解算法才能掌握机器学习。
机器学习算法不像你可能熟悉的排序算法那样。
机器学习算法不仅依赖于数据,而且具有自适应性。通常,给定机器学习算法的核心是一个随机优化过程,这意味着它包含随机性元素。因此,这使得机器学习算法更难分析,也更难对最佳和最差性能做出硬性判断。
你需要应用、实现或深入思考算法才能理解它们。
你可以将算法的工作原理描述为一个数学配方,但要理解其在实践中的行为,你必须通过实践来研究它。你可以通过对算法进行实验,将其应用于许多问题,并提炼出它的行为方式,以及在不同问题类型面前如何暴露和利用这些行为。
或者,你可以采取的捷径是深入了解其他人在此之前对该算法的理解。
你需要对算法的背景知识,这只能通过研究它们来获得。
获取您的免费算法思维导图

方便的机器学习算法思维导图样本。
我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。
下载、打印并使用它。
还可以独家访问机器学习算法电子邮件迷你课程。
研究算法时可用的5个来源
研究机器学习算法需要对算法进行多方面来源的系统调查。
这听起来可能比实际情况更可怕。你的目标是建立自己对不同机器学习算法的一致理解,而一致的理解是针对你个人的,需要从多个来源整理和解释给定算法。
不同的来源可以用于不同的目的,因此你需要仔细和有目的地选择这些来源。
首先明确你为什么要研究某个机器学习算法,然后选择最能回答你问题的来源。
在研究机器学习算法时,你可以使用5种不同的来源,我们将依次回顾。
1. 权威来源
权威来源提供算法的专家解释和描述。
它们有助于快速掌握算法,因为解释通常是严谨的,并且至少在材料内部是标准化的。
描述也可能很密集,通常充满数学术语,并侧重于使用学术语言的理论方面。这样,如果缺乏足够的背景知识,就很难理解。
权威来源的例子包括
- 研究生机器学习课程中使用的教科书。
- 讲义和幻灯片,例如在研究生机器学习课程中展示的那些。
- 概述论文,例如构成某个主题的学术摘要。
2. 开创性来源
开创性来源是专家来源和算法的原始描述。
开创性来源有助于深入了解机器学习算法的原始作者或描述者的思想,并探究算法参数和过程的意图。
这些来源几乎总是学术性和理论性的,很少包含有用的使用信息。
开创性来源的例子包括
- 会议论文和期刊文章。
- 可能先于或补充原始方法出版物的技术报告。
3. 前沿来源
许多算法都在进行持续研究。这可能采取扩展、更深入调查或甚至简单应用和比较该方法与其他方法的形式。
我称这些来源为前沿来源,因为它们揭示了有关机器学习算法有用的新信息和最先进的信息。
前沿来源可以用来很好地了解目前正在研究的与算法相关的问题。这些可能代表算法中你值得注意的有趣或困难的子过程。
前沿来源通常是密集和技术性的,需要你付出大量努力才能解释工作意图并提取有助于你更好地理解算法的突出细节。
前沿来源的例子包括
- 会议论文和期刊文章。
- 全体会议和研讨会等会议演讲。
4. 使用启发式来源
当出于实际和应用目的研究机器学习算法时,使用启发式和最佳实践可能是你感兴趣的关键信息类型。
使用启发式来源提供关于如何在实践中使用给定机器学习算法的专家描述。它们对于实际使用建议很有用,例如参数配置、建议的数据准备步骤,甚至是如何针对特定类型问题调整和扩展算法的建议。
这些来源通常缺少必须推断或通过直接联系作者才能获取的详细信息。不要指望能够轻易重现这些来源的结果,重点是提取可以用来提示算法使用的启发式方法。
使用启发式来源的例子包括
- 描述KDD Cup和Kaggle等机器学习竞赛结果的论文。
- 与机器学习竞赛相关的“我做了什么”博客文章和论坛帖子。
- 问答网站,例如Cross Validated和其他机器学习社区网站。
- 应用会议论文。
5. 实现来源
你可能对研究某个算法感兴趣,因为你想实现它。除了上面列出的其他来源之外,你还应该查阅实现来源。
这些是由专家或半专家准备的来源,提供机器学习算法的实现作为示例,在库和工具中。这些示例可能根据宽松的或开源许可证发布,供你学习。
这些来源有助于了解如何将给定的机器学习算法转换为可执行和可用的系统。
实现来源的例子包括
- 开源项目,例如库和工具。
- 相关机器学习博客上的帖子。
- 由研究生或研究实验室准备的技术报告。
通常,博客文章中的实现是为了教程和理解目的而提供的,可能不是为了速度或可扩展性而编写的。你在库和工具中找到的开源算法实现通常经过高度优化,并非为了可读性而编写。
研究不仅仅是为了学者
你可以研究机器学习算法。不要被论文和文章中正式的学术语言和媒介吓倒。
你不需要成为博士研究人员或机器学习算法专家。
你可以像任何人一样阅读论文、书籍和算法实现。
通常,一篇难以阅读的论文的问题在于作者,而不是你这个读者。很难写出一篇关于算法或研究的优秀技术论述,当你找到这些优秀的来源时,它们就是宝藏。
行动步骤
在这篇文章中,你发现了研究机器学习算法的重要性,以及你可以用来查找机器学习算法所需信息的5个来源。
下一步是练习你新掌握的技能。
- 选择一个你想研究的算法。
- 考虑你想了解算法的哪些方面,并从上面的列表中选择最能回答你问题的来源。
- 系统地研究算法。如果你正在寻找论文,请从Google Scholar开始,输入算法名称。如果你正在寻找算法实现,请从Google搜索GitHub开始,输入算法名称。
分享你所学到的。
这五个资源非常有用,涵盖了如何学习机器学习理论、应用和实现。
非常感谢!
谢谢Ming,不客气!
谢谢Ming,你的网站信息量很大,我感谢你的辛勤工作
不客气。
棒极了的循序渐进的方法!信息量很大 :)
谢谢!
很高兴你觉得有用,Vikram。
那么如果你因为付费墙而无法访问所需的论文,该怎么办……?
好问题,Rick。
以下是我获取任何论文的5种即兴策略:
– 搜索作者的主页。许多作者会在自己的主页上发布预印本。
– 搜索arxiv,原因同上。
– 搜索谷歌学术,它通常能为你找到预印本。点击“所有n个版本”按钮查看谷歌能看到的一切,通常其中会有PS或PDF文件。
– 给作者发邮件。他们总是会给你寄一份——他们只是想被阅读。
– 给该领域的研究人员发邮件,他们通常可以通过付费墙访问或已经拥有该论文。
嗨,Jason,
感谢您如此清晰地分解。您对paperswithcode.com有什么看法?
抱歉,我不熟悉,它到底是什么?
嗨,Jason,你所有的帖子都非常有趣。我喜欢你的教程,因为它易于理解。谢谢你!我很感激。
谢谢你,Tameru!
太棒了,先生,
非常有帮助,对于那些想从头开始学习的人来说非常棒。
再次感谢您的巨大贡献。
谢谢,听到这个我很高兴。
感谢您的文章!
我有一个问题。你什么时候觉得你找到的足够了?我的意思是,我开始浏览,然后我打开了几个标签,有时我很难过滤和处理所有内容。有太多资源(这很棒),但很难知道应该阅读多少。我能问你你是如何处理这个问题的吗?
谢谢,
Monique
我通常会有一个阅读阶段和一个写作阶段。当我觉得没有学到任何新东西时,我就会停止阅读。
这有帮助吗?
深度学习中的自编码器一般是什么,自编码器是如何工作的?请说明。
好问题,我希望将来能详细介绍它们。
你好 Jason,
你有没有自己创建过机器学习算法?如果有,你是如何规划路径来获得那个新的机器学习算法的?
你能给我一些想法或参考一些资料吗?因为在阅读了《统计学习要素》中这些算法背后的一些数学知识后,我也对构建自己的机器学习算法产生了兴趣?
我知道这很难,但一些想法可以帮助我很多。
我做过,我觉得这很难做好。我不认为我做得很好。很抱歉我不能给出有效的建议。
很高兴阅读您关于如何掌握算法的建议,因为我一直很困惑,直到我读了您的文章,我正在选择的路上,但我是一只喜欢很多好东西的饥饿的狮子。所有的算法都很好,但在实现所有算法时很耗时。
请我尝试下载您说的列表,我通过框发送了我的电子邮件,但没有收到下载链接的回复,请尽快回复我
我很抱歉听到这个消息。也许检查你所有的电子邮件文件夹或尝试不同的电子邮件地址?
如果你仍然找不到,请使用联系页面给我发电子邮件。
这篇文章很好地概述了如何开始学习和研究机器学习。谢谢你,Jason。
谢谢。
Jason,您的文章非常有趣且易于理解。非常感谢。帮助很大。
我已缩小范围并阅读了一些研究论文,并决定为我的研究学习神经网络。但是研究论文很难一步一步地给我提供信息。您有什么建议?
也许可以从一本教科书开始,比如《深度学习》这本书。
我是一名研究生,主要从事计算机安全工作一段时间,机器学习一年半。大多数时候,阅读博客(machinelearningmastery.com 是最好的)和书籍比学术论文更好。书籍可以让你对知名算法有数学上的见解,博客和应用会议论文可以为你提供特定于应用的建模信息。我不建议主要通过期刊论文学习机器学习,因为它对于像我这样的新手来说可能会让人不知所措。
感谢分享。
谢谢你,
一如既往的精彩文章
谢谢!
Jason,你会把LSTM放在哪里?
放在哪里?