作者:Marina Wyss - Gratitude Driven
您想成为一名数据科学家或机器学习工程师,但对所有涉及的数学感到害怕吗?我得到它。我去过那里。
我高中十年级后就辍学了,所以我在学校里从来没有学过三角学以外的任何数学。当我开始机器学习之旅时,我什至不知道导数是什么。
快进到今天,我是亚马逊的一名应用科学家,我对自己的数学技能非常有信心。
我一路上利用免费资源和自主学习掌握了必要的数学知识。今天,我将向您介绍一些我最喜欢的书籍、课程和 YouTube 频道,它们帮助我取得了今天的成就,我还将分享一些关于如何有效学习而不浪费时间的技巧挣扎和无聊。
首先,我们来解决一个常见问题:您真的需要了解数学才能从事 ML 工作吗?
简短的答案是:这取决于您想做什么。
对于需要创建新的机器学习算法的研究密集型角色,那么,是的,您显然需要了解数学知识。但如果您问自己是否需要学习数学,很可能这不是您正在寻找的工作……
但对于从业者(我们行业中的大多数人)来说,您通常可以在不了解所有底层细节的情况下完全胜任,尤其是作为初学者。
此时,numpy、scikit-learn 和 Tensorflow 等库会为您处理大部分繁重的工作。您无需了解梯度下降背后的数学原理即可将模型部署到生产中。
如果您是尝试进入机器学习的初学者,在我看来,花大量时间记住公式或学习线性代数并不具有战略意义,您应该花这些时间来构建东西。训练一个简单的模型。探索您的数据。建立一个预测有趣事物的管道。
也就是说,有些时候了解数学确实有帮助。以下是一些示例:
想象一下,您正在训练一个模型,但它没有收敛。如果您了解梯度和优化函数等概念,您就会知道是否调整学习率、尝试不同的优化器或调整数据预处理。
或者,假设您正在运行线性回归,并且您正在解释系数。如果没有数学知识,您可能会错过多重共线性等问题,这使得这些系数不可靠。然后你根据数据得出错误的结论,给公司造成数百万美元的损失,并丢掉工作!只是在开玩笑。有点儿。根据我们构建的模型做出业务决策时,我们确实需要小心。
因此,虽然您可以(而且应该)在没有深厚的数学知识的情况下开始,但随着时间的推移逐渐熟悉数学仍然是合理的。
一旦您动手实践,您就会开始遇到问题,这些问题自然会促使您了解更多信息。当您需要调试或解释结果时,数学就会开始发挥作用,因为它与实际问题相关。
说真的,不要让对数学的恐惧阻止你开始。您无需预先学习所有内容即可取得进步。亲自使用这些工具,建立你的作品集,让数学作为一种技能与你的实践知识一起成长。
好吧,现在让我们来谈谈在为机器学习工作建立数学基础时要学习什么。
首先,线性代数。
线性代数是机器学习的基础,尤其是深度学习。许多模型依赖于将数据和计算表示为矩阵和向量。以下是要优先考虑的事项:
现在我们开始学习基本的微积分。
微积分是理解模型如何从数据中学习的核心。但是,我们不需要担心求解复杂的积分 - 只需要掌握一些关键思想:
最后是统计和概率。
统计和概率是理解数据的基础。虽然它们与数据科学更相关,但机器学习也肯定有很多价值。以下是您需要了解的内容:
现在,这绝对不是详尽无遗的,但我认为它很好地概述了作为数据科学家或 MLE 做好工作所需了解的常见概念。
接下来,我将分享学习这些概念的最佳资源,而不会造成压力或压倒性的压力。
就我个人而言,我会高度建议您在开始阅读困难的书籍并尝试解方程之前,首先对关键概念有直观的理解。
对于线性代数和微积分,我对 3blue1brown 的评价不够高线性代数本质和微积分本质系列。这些视频详细介绍了当我们使用这些数学方法时实际测量和操作的内容。更重要的是,它们展示了其中的美丽?说数学视频可能鼓舞人心是很奇怪的,但这些视频确实如此。
对于统计和概率,我也是一个超级粉丝统计任务。他的视频清晰、引人入胜,观看起来很愉快。StatQuest 的播放列表包含核心统计数据和 ML 概念的概述。
那么,就从这里开始吧。一旦你有了视觉直觉,你就可以开始学习更有结构性的书籍或课程。
这里有很多很棒的选择。让我们回顾一下我个人曾经学习过的一些内容:
我完成了伦敦帝国学院机器学习数学专业当我刚开始接触 Coursera 时。该专业分为三门课程:线性代数、多元微积分和最后一门主成分分析。这些课程结构合理,包括视频讲座、测验和 Python 编程作业。我发现这门课程对初学者来说有点挑战性,但它是一个非常好的概述,我花了一点功夫就通过了。
DeepLearning.AI 最近还发布了 Math for ML Specialization在 Coursera 上。该专业还提供线性代数和微积分课程,但最终课程重点关注统计和概率,而不是 PCA。我个人现在正在完成这个专业化,总的来说,我发现它是另一个非常好的选择。每个模块都以数学如何与应用的 ML 概念联系起来的良好动机开始,它有 Python 编码练习,以及一些简洁的 3D 工具,可以用来更好地直观地理解这些概念。
如果您喜欢从书本中学习,我也有一些建议。首先,如果你喜欢动漫或书呆子的东西,天哪,我有推荐给你。
你知道他们有漫画数学书吗?
这些非常有趣。我不能说教学质量是世界一流的或其他什么,但它们很可爱且引人入胜,它们让我不再害怕阅读数学书。
下一个级别将是“真正的”数学书籍。这些是一些最好的:
机器学习数学电子书Deisenroth 及其同事编写的内容是一个可供个人免费使用的优秀综合资源。它涵盖了我们已经讨论过的关键主题,例如线性代数、微积分、概率和优化,重点是这些概念如何应用于机器学习算法。它相对适合初学者,通常被认为是学习该材料的最佳书籍之一。
下一个,数据科学家实用统计是另一个深受喜爱的资源,其中包含 Python 和 R 的代码示例。
现在,在我们真正开始学习之前,我认为花一点时间深入思考为什么要这样做很重要。就我个人而言,我发现如果我学习只是因为我觉得我“应该”或者因为这是一些任意的作业,我很容易分心并且实际上不会记住太多。
相反,我尝试联系更深层的动机。就我个人而言,现在我有一个非常基本的动机:我想赚很多钱,这样我就可以照顾我爱的每个人。我有这个机会鞭策自己,确保现在和将来每个人都安全并得到照顾。这并不是要给自己施加额外的压力,而实际上只是一种让我感到兴奋的方式,因为我有这个学习和成长的机会,并希望能够一路帮助他人。你的动机可能完全不同,但无论是什么,尝试将这项工作与更大的目标联系起来。
在优化学习时间的策略方面,我发现最有效的方法之一就是用自己的话写笔记。不要只是复制定义或公式,而是花时间总结概念,就好像您正在向其他人或未来的您解释它们一样。例如,如果您正在学习导数,您可能会这样写:“导数测量函数如何随着输入的变化而变化。”这迫使您积极地处理材料。
与此相关的是,当谈到数学公式时,不要只是盯着它们 - 将它们翻译成简单的英语 - 或任何你喜欢的口语。例如,采用方程 y=mx+b:您可以将 m 描述为“显示直线有多陡的斜率”,将 b 描述为“直线与 y 轴相交的点”。– 所以,最终的公式可能是 – y(输出)的值是通过取斜率 (m) 乘以 x(输入),然后加上 b(输出)来确定的线与 y 轴相交的起点)。
您甚至可以像个人博客一样使用您的笔记。写一篇关于你所学知识的短文是澄清你的理解的一种非常可靠的方法,而教导他人(即使没有人读它)可以使你自己头脑中的材料更加牢固。另外,在 Medium 或 LinkedIn 上分享您的帖子不仅可以帮助其他人,还可以让您建立一个作品集来展示您的学习之旅。
也相信我,当面试的时候你会很高兴你有这些笔记!我一直使用自己的学习笔记。
我的下一条建议可能不是很有趣,但我也建议不要只使用一种资源。就我个人而言,我通过学习许多不同的课程以及一开始将所有笔记放在一起而获得了很大的成功。然后,我将写一个博客,就像我刚才所说的那样,总结我所有的学习内容。
这种方法有几个优点:首先,重复可以帮助你记住东西。如果我多次看到一个概念,并从多个角度进行解释,我就更有可能真正了解正在发生的事情,并记住它超过一天。另外,我不仅多次看到向我提供的信息,而且多次用自己的话写出这些概念,包括最后一次我综合所有内容并准备好与他人分享 -所以我必须非常有信心我最终真的得到了它。
最后,一旦你建立了这个基础并达到了可以实际使用它的数学水平,我真的建议从头开始编码概念。如果您可以仅使用 numpy 编写梯度下降或逻辑回归代码,那么您就有了一个非常好的开始。
虽然我知道此时你对开始学习数学感到非常兴奋,但我确实想回到一个重要的事实,即如果你是一个试图找到第一份工作的初学者,在我看来数学不应该是你优先考虑的第一件事。
你的数学技能不太可能让你找到数据科学家或 MLE 的工作。
相反,优先考虑通过从事项目和实际构建东西来获得实践经验。雇主更感兴趣的是看看你能利用已有的工具和知识做什么,而不是你记住了多少公式。
当您在工作中遇到挑战时,您自然会受到激励去学习算法背后的数学知识。请记住,数学是帮助您成功的工具,并且不应成为入门的障碍。
�
如果您想了解有关如何进入数据科学的更多建议,可以下载一本免费的 80 多页电子书,介绍如何获得第一份数据科学工作(学习资源、项目创意、LinkedIn 清单等):https://gratitudedriven.com/
或者,查看我的YouTube 频道!
最后,请注意,这篇文章中有附属链接。因此,如果您购买东西,我将赚取少量佣金,而无需您支付额外费用。感谢您的支持。