英语轻松读发新版了,欢迎下载、更新

如何快速学习机器学习数学

2025-01-08 03:46:30 英文原文

作者:Marina Wyss - Gratitude Driven

即使数学背景为零

Marina Wyss - Gratitude Driven

Towards Data Science

摄影:安托万·道特里未飞溅

您想成为一名数据科学家或机器学习工程师,但对所有涉及的数学感到害怕吗?我得到它。我去过那里。

我高中十年级后就辍学了,所以我在学校里从来没有学过三角学以外的任何数学。当我开始机器学习之旅时,我什至不知道导数是什么。

快进到今天,我是亚马逊的一名应用科学家,我对自己的数学技能非常有信心。

我一路上利用免费资源和自主学习掌握了必要的数学知识。今天,我将向您介绍一些我最喜欢的书籍、课程和 YouTube 频道,它们帮助我取得了今天的成就,我还将分享一些关于如何有效学习而不浪费时间的技巧挣扎和无聊。

您是否需要了解 ML 数学?

首先,我们来解决一个常见问题:您真的需要了解数学才能从事 ML 工作吗?

简短的答案是:这取决于您想做什么。

对于需要创建新的机器学习算法的研究密集型角色,那么,是的,您显然需要了解数学知识。但如果您问自己是否需要学习数学,很可能这不是您正在寻找的工作……

但对于从业者(我们行业中的大多数人)来说,您通常可以在不了解所有底层细节的情况下完全胜任,尤其是作为初学者。

此时,numpy、scikit-learn 和 Tensorflow 等库会为您处理大部分繁重的工作。您无需了解梯度下降背后的数学原理即可将模型部署到生产中。

如果您是尝试进入机器学习的初学者,在我看来,花大量时间记住公式或学习线性代数并不具有战略意义,您应该花这些时间来构建东西。训练一个简单的模型。探索您的数据。建立一个预测有趣事物的管道。

也就是说,有些时候了解数学确实有帮助。以下是一些示例:

想象一下,您正在训练一个模型,但它没有收敛。如果您了解梯度和优化函数等概念,您就会知道是否调整学习率、尝试不同的优化器或调整数据预处理。

或者,假设您正在运行线性回归,并且您正在解释系数。如果没有数学知识,您可能会错过多重共线性等问题,这使得这些系数不可靠。然后你根据数据得出错误的结论,给公司造成数百万美元的损失,并丢掉工作!只是在开玩笑。有点儿。根据我们构建的模型做出业务决策时,我们确实需要小心。

因此,虽然您可以(而且应该)在没有深厚的数学知识的情况下开始,但随着时间的推移逐渐熟悉数学仍然是合理的。

一旦您动手实践,您就会开始遇到问题,这些问题自然会促使您了解更多信息。当您需要调试或解释结果时,数学就会开始发挥作用,因为它与实际问题相关。

说真的,不要让对数学的恐惧阻止你开始。您无需预先学习所有内容即可取得进步。亲自使用这些工具,建立你的作品集,让数学作为一种技能与你的实践知识一起成长。

学什么

好吧,现在让我们来谈谈在为机器学习工作建立数学基础时要学习什么。

首先,线性代数。

线性代数是机器学习的基础,尤其是深度学习。许多模型依赖于将数据和计算表示为矩阵和向量。以下是要优先考虑的事项:

  • 矩阵和向量:将矩阵视为数字网格,将向量视为列表。数据通常以这种方式存储,加法、乘法和点积等运算是模型处理信息的核心。
  • 行列式和逆矩阵:行列式告诉您矩阵是否可以逆,用于优化问题和求解方程组。
  • 特征值和特征向量:它们是理解数据方差的关键,也是主成分分析等技术的基础,有助于降低数据集的维数。
  • 最后,矩阵分解:奇异值分解(SVD)等方法用于推荐系统、降维和数据压缩。

现在我们开始学习基本的微积分。

微积分是理解模型如何从数据中学习的核心。但是,我们不需要担心求解复杂的积分 - 只需要掌握一些关键思想:

  • 首先,导数和梯度:导数衡量事物如何变化,梯度(多维导数)是梯度下降等优化算法的强大功能。这些帮助模型调整其参数以最小化错误。
  • 链式法则是神经网络的核心。这就是反向传播的工作原理,即计算网络中每个权重对总体误差的贡献程度的过程,以便模型可以有效地学习。
  • 最后,优化基础知识:局部与全局最小值、鞍点和凸性等概念对于理解为什么有些模型会陷入困境而另一些模型却能找到最佳解决方案非常重要。

最后是统计和概率。

统计和概率是理解数据的基础。虽然它们与数据科学更相关,但机器学习也肯定有很多价值。以下是您需要了解的内容:

  • 分布:熟悉常见的分布,如正态分布、二项式分布和均匀分布。尤其是正态分布,在数据科学和机器学习领域随处可见。
  • 方差和协方差:方差告诉您数据的分布情况,而协方差则显示两个变量之间的关系。这些概念对于特征选择和理解数据结构非常重要。
  • 贝叶斯定理:虽然它的名字有点吓人,但贝叶斯定理是一个非常简单但功能强大的概率推理工具。它是朴素贝叶斯等算法的基础(令人大吃一惊),它可用于垃圾邮件检测以及超参数调整的贝叶斯优化。
  • 您还需要了解最大似然估计 (MLE),它通过查找使数据的可能性最大化的值来帮助估计模型参数。这是逻辑回归等算法中的一个非常基本的概念。
  • 最后,采样和条件概率:采样可以让您有效地处理数据子集,而条件概率对于理解事件之间的关系至关重要,尤其是在贝叶斯方法中。

现在,这绝对不是详尽无遗的,但我认为它很好地概述了作为数据科学家或 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 频道

最后,请注意,这篇文章中有附属链接。因此,如果您购买东西,我将赚取少量佣金,而无需您支付额外费用。感谢您的支持。

关于《如何快速学习机器学习数学》的评论


暂无评论

发表评论

摘要

听起来你对解决数学问题有一些非常有见地的建议,作为闯入数据科学或机器学习工程的一部分!以下是对要点的总结和扩展:1. **理解数学的作用:**- 强调虽然数学很重要,但它不应该成为初学者的唯一关注点。- 强调使用 Python 和 SQL 等工具的实践经验可能会给你带来第一份工作。2. **动机:**- 鼓励读者将他们的学习与更深层次的个人动机联系起来。- 举例说明如何与有意义的目标保持一致可以提高参与度和保留率。3. **学习策略:**- 建议用自己的话总结概念,这有助于理解和记忆。- 建议将公式翻译成简单的语言或故事,以便更好地理解。- 提倡撰写有关您所学知识的短文,以巩固知识并创建作品集。4. **资源多样性:**- 鼓励使用多种资源(课程、书籍)从不同角度看待概念。- 为了清晰起见,建议将各种来源的笔记合成为一份有凝聚力的文档。5. **编码练习:**- 强调通过编码练习(例如 Python 中的梯度下降)实现概念的重要性。- 强调实际应用可以增强理解并使您更容易就业。6. **平衡的数学学习方法:**- 承认数学作为加深理解的工具的价值,但建议不要过早过分强调它。- 建议当您在项目中遇到特定挑战时学习数学,而不是预先解决所有问题。7. **其他资源:**- 提供包含全面建议的免费电子书(学习资源、项目创意、LinkedIn 技巧)。- 将读者引导至 YouTube 频道或其他内容以获得进一步指导。### 扩展示例**动机和个人目标**“在深入学习任何技术之前,请花点时间思考一下为什么要追求数据科学或机器学习。对我来说,这是为了通过利用可用的机会为我所爱的人确保稳定的未来。无论您的原因是什么,与更深层次的目标可以显着提高你的动力。”**有效学习数学**“掌握数学概念:- **用自己的话进行总结:** 不要逐字复制定义,而是像向其他人解释一样进行总结。- **将公式转化为故事:** 将复杂的方程转化为简单的叙述。例如,直线方程 y=mx+b 可以是“y 由 x(输入)乘以 m(斜率)并加上 b(起点)确定”。- **写短文:** 创建关于每个概念的迷你博客以加强您的理解。”**平衡方法**“虽然数学基础知识至关重要,但它们不应掩盖编码等实用技能。首先专注于使用 Python 和 SQL 构建项目,然后根据需要解决特定的数学概念。例如:- 从头开始​​实施逻辑回归。- 在 numpy 中编写梯度下降函数。这种方法可确保您始终学习直接有助于您的工作前景的相关技能。”通过关注这些策略,初学者可以打下坚实的基础,而不会在早期被复杂的数学所淹没,同时仍然获得在数据科学或机器学习角色中取得成功所需的知识和实践经验。