登录
首页精彩阅读机器学习背后,你不能不知道的数学核心概念
机器学习背后,你不能不知道的数学核心概念
2019-12-13
收藏
<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

作者 | SHAROON SAXENA

编译 | CDA数据分析师

Mathematics behind Machine Learning - The Core Concepts you Need to Know

介绍

“学习机器学习算法背后的数学有什么用?我们可以轻松地使用Python和R中广泛可用的库来构建模型!”

我已经记不清从数据科学爱好者那里听到这种消息的次数了。这种谬论太普遍了,在有抱负的数据科学专业人员中产生了一种错误的期望。

根据我的经验,主要是有以下两个原因:

  1. 数学是相当令人生畏的,特别是对于那些来自非专业技术背景的人。将这种复杂性应用到机器学习中,你就会得到一个非常令人生畏的局面
  2. 如前所述,存在大量执行各种机器学习任务的库,因此很容易避免该领域的数学部分。

现在让我们把这个问题解决掉——你需要理解机器学习算法背后的数学原理,才能成为一名数据科学家。没有别的办法。这是数据科学家角色的一个固有部分,每一位招聘人员和有经验的机器学习专业人士都将证明这一点。

因此,这就引出了一个问题,我们该如何着手学习呢?这就是我们将在本文中学习的内容。我们将讨论成为机器学习大师所需了解的各种数学方面,包括线性代数、概率等。

在本文中,我们将讨论以下主题:

  1. 机器学习背后的数学和数据科学之间的区别
  2. 针对双方学习态度的调整
  3. 机器学习中的线性代数
  4. 机器学习中的多元微积分
  5. 机器学习中的概率
  6. 机器学习中的统计
<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

机器学习背后的数学和数据科学之间的区别

有抱负的数据科学家经常向我提出的最常见问题之一是–数据科学与机器学习之间有什么区别?更重要的是,这两者背后的数学有什么区别?

我经常遇到以下问题:

  1. 机器学习中应该在哪里使用概率?
  2. 在数据科学中应在哪里使用多元微积分?
  3. 在数据科学中应在哪里使用线性代数?

尽管数据科学和机器学习有很多共同点,但是它们在数学上的关注仍然存在一些细微的差异。下面的雷达图概括了我的观点:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

是的,数据科学和机器学习有很多重叠之处,但是它们的主要关注点相差很大。这种微妙的差异通常是我上面提到的问题的根源。

在数据科学中,我们的主要目标是探索和分析数据,生成假设并测试它们

这些步骤通常是为了找出数据中隐藏的推论,而这些推论可能在第一眼看上去并不明显。因此,我们必须严格依赖统计和概率的概念来比较和进行假设检验

另一方面,机器学习更侧重于线性代数的概念,因为它是所有复杂过程发生的主要阶段(除了效率方面)。另一方面,多元微积分涉及数值优化方面,这是大多数机器学习算法背后的驱动力。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

数据科学通常被认为是机器学习的前提。考虑一下–我们希望机器学习算法的输入数据是干净的,并且要根据我们使用的技术进行准备。如果您正在寻求端到端的工作(数据科学+机器学习),最好使自己精通数据科学和机器学习所需的数学结合。

针对双方学习态度的调整

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

如果你一直重复你过去做过的事情,你会得到你一直得到的结果。我在这里转述爱因斯坦的名言,但我相信你明白我的意思!

许多渴望学习机器学习的人会犯这样的错误,即他们在上学时使用的方法是一样的。这意味着要用笔和纸去钻研定理、推导和问题。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这种传统的方法离我们想要遵循的方向有一些远,除非你想要在17世纪的数学家之争中获胜。那时候他们向对方提出了一系列数学上很有趣的问题,并在第二天解决。但你可以想象到这种情况,听起来很厉害。但这不是在21世纪学习新概念的最佳方式。

那么我们应该如何才能在不陷入理论的情况下学习数学呢?

数据科学和机器学习中的数学不是关于处理数字的,而是关于发生了什么,为什么会发生,以及我们如何处理不同的事情来获得我们想要的结果的数学。

在本质上:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

我们应该更关注对任何给定表达式的直觉和几何解释:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这有助于我们理解这些令人难以置信的表情背后的含义。所有手动解决问题的繁重工作都不是必需的,也不需要技能。使用NumPy这样的计算库来完成它们比测试您的耐力更有意义。

现在,让我们转移注意力来理解为什么我们需要学习这些不同的数学分支以及什么是用直观的方式学习数学的好资源。

机器学习中的线性代数

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

有些人认为线性代数是21世纪的数学。我们可以看到这其中的意义——线性代数是机器学习和数据科学的支柱,它将在未来几年给其他所有行业带来革命性的变化。

正如之前已经讨论过的,线性代数是所有机器学习算法生成结果的舞台或平台。

但是为什么是线性代数呢?

线性代数是联立线性方程组表示的系统基础。

假设我们有两个线性方程式:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

求解出x和y很容易,对吧?

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

我们可以通过简单地将方程式1与-2相乘,然后将两者相加来实现:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

结果,变量x被消除,y获得为9。然后将y=9带入公式,得出x的值为0。

这里的问题是,这个操作需要人类的直觉。我们的机器无法模仿同样的直觉。他们只能理解特定表示形式的数据和集合格式的规则。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

现在,为了建立与数据科学或机器学习的类比,每个方程表示来自数据集的单个观察。左边表示独立输入变量,右边表示目标因变量。

数据集通常包含成百上千的观测数据(如果不是上百万体量的数据集的话),更不用说还有很多变量要处理。所以你认为我们可以通过数据集找到x和y的最佳值吗?

绝对不是!我们当然更喜欢自动化来完成这项任务。这就是线性代数的用武之地。从广义上来说:

线性代数是计算机能够理解的知识的系统表示,线性代数中的所有运算都是系统规则。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这是我们上面解决的问题的代数表示。利用矩阵运算(规则集),我们可以在一眨眼的时间内求出x和y的值。这是线性代数在数据科学和机器学习中成为必需的主要原因。

机器学习中的多元微积分

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

大多数有抱负的数据科学和机器学习专业人士往往无法解释他们在哪里需要使用多元微积分。正如我在文章开头所提到的,不幸的是,这是一种非常常见的体验。

如果你马上说梯度下降,你就对了!但是你可能需要增加你现有的知识。

多元微积分,或者更精确的说是偏微分,被用来对一个给定函数(主要是凸函数)进行数学优化。

但我们为什么要这样做呢?我们知道我们计算了某个函数(成本函数或优化函数)的偏导数。但这有什么用呢?

很多人经常求出偏导数但却不知道为什么这么做!我们需要立即纠正这个错误。

我们考虑一下梯度下降的情况。我们知道梯度下降的代价函数为:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

我们计算m(斜率)和c(截距)的导数为:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

但为什么只有偏导数呢?我们可以计算积分或者其他的运算。这是因为分化给我们成本函数的变化率对丁成本单独对m和c。

但是你知道我们可以用向量的形式表示这些单独的偏导数吗?

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这是偏导数的代数向量表示。

我相信你们大多数人以前一定见过这种表达方式,但没有意识到它的含义。这种表示法叫做雅可比向量。我在高中的时候就遇到过这种情况;是的,它确实让我的生活变得艰难!

下面是一些学习多元微积分的优秀资源。再一次,我将强调更多关于直觉的部分,而不是仅仅死记硬背定理和规则:

机器学习中的概率

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

机器学习所需的概率概念是基本的(大部分),但它仍然需要直觉。常用的分布形式有伯努利分布、高斯分布、概率密度函数、累积密度函数等。我们用它们来进行假设检验,在这种情况下,对概率的理解是非常必要的。

你会发现许多数据科学家,甚至是经验丰富的老手,都无法解释声名狼藉的alpha值和p值的真正含义。他们经常被当作从冥王星来的陌生人,甚至没有人愿意问。

但概率中最有趣的部分是贝叶斯定理。从高中开始,我们在很多地方都遇到过这个定理。这是公式:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

我们通常通过输入数字并计算答案来解决这个问题。但是你有没有想过贝叶斯定理到底告诉了我们什么,后验概率到底是什么意思?为什么我们还要一开始要计算它呢?

让我们考虑一个示例(没有数学理论!):

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这是我们的朋友鲍勃(Bob)。作为他的同学,我们认为他是一个内向的人,经常独处。我们相信他不喜欢交朋友。

因此,P(A)被称为先验。在这种情况下,我们称其为鲍勃很少喜欢结交新朋友的假设。

现在,他在大学里遇到了爱德(Ed),与鲍勃不同,埃德是一个悠闲的人,渴望结交新朋友。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

P(B)在这种情况下是Ed友好的概率。在一起度过的这一天Bob意识到Ed和他形影不离。结果,他们成了朋友。

P(B|A)就是他们成为朋友的代表:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

现在,看一下右边和我们上面建立的例子,分子代表了Bob是友好的P(A)和Ed是朋友的概率P(B|A)所有这些值都朝着左边的结果计算,也就是:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

完美!这正是我们在学校里所做的,对吧?我将进一步扩展它,你知道这个新值意味着什么?

大多数声称知道贝叶斯定理的人都会被困在这里。

这个新的价值只是我们对Bob的信念。换句话说,这是我们对Bob的新认识和P(A)的新值。 。

如果我要提取此这个例子,它将是这样的:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

我们对鲍勃做了一个假设,我们发现的证据是他实际上交了一个新朋友!

在这种情况下我们该怎么做呢?我们只是改变了对鲍勃的假设,他不是一个内向的人。如果我们继续观察Bob几次迭代,我们最终会很好地理解Bob的真正本质。

我知道你在想什么——这看起来就像我们在梯度下降和许多其他优化算法中做的事情。我们假设一些随机参数,观察预测值和真值,然后相应地调整参数。

朴素贝叶斯算法的工作原理与此类似,只是简单地假设所有的输入特征都是独立的。为了全面观察这一现象,我们需要深入研究贝叶斯网络或概率图形模型。它们本身可能非常强大,我可能会在以后的文章中探讨它们。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

机器学习中的统计

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>背后,你不能不知道的数学核心概念

这将是我们在本文中比较熟悉的主题之一。统计构成了机器学习的基础,因此我在这里讨论它。

每当我们谈论统计数字时,我们脑海中总会浮现出一些熟悉的概念:

这些概念中的大多数都是相当初级的。除了最后一个,我看到经验丰富的机器学习专家对p值和alpha值之类的东西有着错误的直觉。其中大多数在我们的机器学习模型(如线性和逻辑回归)的性能中起着重要的作用。

我知道你可能会想知道——现在谁在使用线性模型?

好吧,大多数组织都高度重视模型的可解释性,而不是准确性。集成模型往往缺乏这种可解释性,因为它们更倾向于性能,并且广泛用于数据科学竞赛(而非行业)。

说实话,我是那些被这些花哨的算法吸引的爱好者之一,我更喜欢直接跳到它们。结果,我的预测模型得到了低于标准的结果。

机器学习不仅仅是建立预测模型,而是利用现有的统计工具从给定的数据中提取尽可能多的信息。

结束语

机器学习的数学是一个经常被忽视或用错误的视角处理的基本方面。在本文中,我们讨论了数据科学和机器学习所需的数学之间的区别。我们还学习了一些关于为什么以及在什么地方需要数学的指示。

数据分析咨询请扫描二维码

客服在线
立即咨询