要成为一名出色的 AI 软件工程师,需要了解多少数学知识?🤔
在之前的一篇文章中,我写过学习任何主题或领域基础知识的重要性。我建议你先阅读它(如果你还没有),以便完全理解这篇文章。
如果您已经阅读过,可以跳过本节。如果你还没有,这里有一个 TLDR:
-
每个主要工作领域都由抽象层组成。
-
这些抽象层构成了构建该领域概念的基础。
-
许多这些基础知识都围绕着哲学、数学和物理学。
-
虽然您不需要了解任何工程领域的数学和物理基础,但您职业生涯中最高水平的表现需要这一点。
在这篇文章中,我写了关于机器学习和人工智能的相同概念。问题是“我需要学习多少数学才能成为一名出色的 AI 工程师?”。
事实是我们很多人不需要知道那么多数学。数据科学、机器学习或人工智能中的入门级角色不需要您了解很多数学知识。库和框架已经处理了这些问题。较低的层已经为您抽象出来,因此您不必担心它们。在这个层次上,你要做的大部分事情是理解高层次的东西(回归等顶层概念)以及如何使用最常用的工具和软件。
然而,精英级别的表现需要强大的数学背景。人工智能领域最好的工程师是那些能够在短时间内阅读研究论文、理解它并编写出原型的人。
很明显,在实施研究论文之前,他们甚至需要一些数学知识才能理解研究论文。
阅读 AI 中的任何研究工作、理解它并在快速原型设计中实施或大规模构建它的能力是 AI 工程的圣杯。
深度神经网络和强化学习中使用的许多新方法来自学术界或工业界的顶级研究人员所做的研究工作。
工具只是工具
大多数工程师学习如何使用 sci-kit learn、Tensorflow、Pytorch 或 NumPy,但这些只是工具。工具发生变化,它们得到升级,许多工具甚至被弃用。如果没有很好地理解您尝试构建的概念,您的工具几乎将毫无用处。对人工智能最深层次的理解是数学层面。
想一想,如果你没有任何线性代数知识,你如何构建 NumPy 或 TensorFlow?🤷🏽
您需要对矩阵、矩阵运算和微积分有深入的了解,然后才能方便地构建这些库中的任何一个。幸运的是,您不必构建自己的 Tensorflow 或 Numpy(除非您正在做一些更新颖的事情),因为它们已经被创建了。您可以简单地使用它们。
要学习的数学概念
以下是一些数学和统计学主题,它们在很大程度上有助于您在 AI 方面的进步。
-
微积分
-
向量微积分
-
衍生品
-
线性代数
-
矩阵运算
-
特征向量和特征值
-
可能性
-
条件概率
-
随机过程
-
蒙特卡洛马尔可夫链
示例——人工神经网络
考虑以下场景:
您的团队提出了一个新的激活函数。它刚刚被您团队中的一位科学家发现,因此尚未按比例构建。作为一名机器学习工程师,您被要求使用此激活函数测试随机梯度下降对使用巨大的真实数据集进行训练的长期影响。这个激活函数不在您的 TensorFlow 或 Pytorch 库中,您将如何实现它?您可以在 Keras 中扩展ActivationLayer并修改调用函数。在实施过程中,现在您将了解以下内容:
-
大多数神经网络计算是向量矩阵计算。
-
微积分中的链式法则在反向传播算法中非常重要,因此您必须在激活函数的实现中考虑到这一点。你的激活函数的导数将如何变化?
-
由于数据量非常大,您可能需要进行一些降维。您如何知道在 PCA、tSNE 等之间进行选择?
首先,我会推荐伦敦帝国理工学院的这门课程
它不会让你成为专业人士,但它确实会帮助你的直觉并帮助你在人工智能方面获得一定程度的掌握。您将对 Tensorflow 和 Pytorch 开发中涉及的所有数学有更好的理解。
感谢您阅读到此为止。如果您喜欢刚刚阅读的内容,请点赞关注我的微信(芯媒)。👏🏽