Machine-Learning-Mastery-微积分教程-四-

122 阅读45分钟

Machine Learning Mastery 微积分教程(四)

原文:Machine Learning Mastery

协议:CC BY-NC-SA 4.0

微积分中的链式法则——更多函数

原文:machinelearningmastery.com/the-chain-rule-of-calculus-even-more-functions/

链式法则是一个重要的导数规则,使我们能够处理复合函数。它在理解反向传播算法的工作原理中至关重要,反向传播算法广泛应用链式法则来计算损失函数相对于神经网络每个权重的误差梯度。我们将在之前对链式法则的介绍基础上,处理更具挑战性的函数。

在本教程中,你将发现如何将微积分的链式法则应用于挑战性函数。

完成本教程后,你将了解:

  • 将链式法则应用于单变量函数的过程可以扩展到多变量函数。

  • 链式法则的应用遵循类似的过程,无论函数多么复杂:首先求外部函数的导数,然后向内移动。在此过程中,可能需要应用其他导数规则。

  • 将链式法则应用于多变量函数需要使用偏导数。

让我们开始吧。

微积分中的链式法则——更多函数

图片由 Nan Ingraham 拍摄,保留了一些权利。

教程概述

本教程分为两个部分;它们是:

  • 单变量函数的链式法则

  • 多变量函数的链式法则

先决条件

对于本教程,我们假设你已经知道以下内容:

你可以通过点击上面给出的链接来复习这些概念。

单变量函数的链式法则

我们已经发现了单变量和多变量函数的链式法则,但到目前为止我们只看到了一些简单的例子。这里我们将查看一些更具挑战性的例子。我们将首先从单变量函数开始,然后将所学应用于多变量函数。

示例 1:让我们通过考虑以下复合函数来提高难度:

我们可以将复合函数分解为内部函数,f(x) = x² – 10,以及外部函数,g(x) = √x = (x)^(1/2)。内部函数的输出由中间变量u表示,并且其值将输入到外部函数中。

第一步是找到复合函数外部部分的导数,同时忽略内部的内容。为此,我们可以应用幂规则:

dh / du = (1/2) (x² – 10)^(-1/2)

下一步是找到复合函数内部部分的导数,这次忽略外部的内容。我们可以在这里也应用幂规则:

du / dx = 2x

将两部分结合并简化,我们得到复合函数的导数:

例子 2:让我们重复这个过程,这次使用另一个复合函数:

我们再次使用内部函数的输出u作为我们的中间变量。

在这种情况下,外部函数是 cos x。找到它的导数,再次忽略内部的部分,给我们:

dh / du = (cos(x³ – 1))’ = -sin(x³ – 1)

内部函数是,x³ – 1。因此,它的导数变为:

du / dx = (x³ – 1)’ = 3x²

将两部分结合,我们得到复合函数的导数:

例子 3:现在让我们进一步提高难度,考虑一个更具挑战性的复合函数:

如果我们仔细观察,我们会发现不仅我们有嵌套函数需要多次应用链式法则,而且我们还有一个乘积需要应用乘积法则。

我们发现最外层的函数是余弦。通过链式法则找到它的导数时,我们将使用中间变量u

dh / du = (cos(x √(x² – 10) ))’ = -sin(x √(x² – 10) )

在余弦内部,我们有乘积,x √(x² – 10),我们将应用乘积法则来找到其导数(注意,我们总是从外部向内部移动,以便发现需要处理的操作):

du / dx = (x √(x² – 10) )’ = √(x² – 10) + x ( √(x² – 10) )’

结果中的一个组成部分是,( √(x² – 10) )’,我们将再次应用链式法则。事实上,我们在上面已经这样做过了,因此我们可以简单地重新使用结果:

(√(x² – 10) )’ = x (x² – 10)^(-1/2)

将所有部分结合起来,我们得到复合函数的导数:

这可以进一步简化为:

想要开始机器学习的微积分?

立即免费参加我的 7 天电子邮件速成课程(附带示例代码)。

点击注册并获取课程的免费 PDF 电子书版本。

多变量函数的链式法则

示例 4:假设我们现在面对一个关于两个独立变量 st 的多变量函数,其中每个变量依赖于另外两个独立变量 xy

h = g(s, t) = s² + t³

其中函数为 s = xyt = 2xy

在这里实施链式法则需要计算偏导数,因为我们处理多个独立变量。此外,st 也将作为我们的中间变量。我们将使用以下关于每个输入定义的公式:

从这些公式中,我们可以看到我们需要找到六个不同的偏导数:

现在我们可以继续用这些术语替换∂h / ∂x和∂h / ∂y的公式:

然后,用 st 替代以找到导数:

示例 5:让我们再次重复,这次是一个关于三个独立变量 rr, sstt 的多变量函数,其中每个变量依赖于另外两个独立变量 xxyy

h=g(r,s,t)=r2rs+t3h=g(r,s,t)=r²-rs+t³

其中函数为 r=xcosyr = x \cos ys=xeys=xe^yt=x+yt=x+y

这一次,rr, sstt 将作为我们的中间变量。我们将使用以下关于每个输入定义的公式:

从这些公式中,我们现在需要找到九个不同的偏导数:

然后,我们继续用这些术语替换∂h / ∂x和∂h / ∂y的公式:

随后对 rrsstt 进行代入,以找到导数:

可以进一步简化(提示:对 h/y\partial h/\partial y 应用三角恒等式 2sinycosy=sin2y2\sin y\cos y=\sin 2y):

无论表达式多么复杂,遵循的程序仍然相似:

你最后的计算告诉你要做的第一件事。

– 第 143 页,傻瓜微积分,2016 年。

因此,从处理外层函数开始,然后逐步向内处理下一个函数。你可能需要应用其他规则,就像我们在示例 3 中看到的那样。如果你在处理多变量函数时,不要忘记计算偏导数。

进一步阅读

本节提供了更多相关资源,如果你想深入了解这个话题。

书籍

总结

在本教程中,你发现了如何将微积分链式法则应用于复杂函数。

具体来说,你学习了:

  • 将链式法则应用于一变量函数的过程可以扩展到多变量函数。

  • 无论函数多么复杂,链式法则的应用过程都是类似的:首先取外层函数的导数,然后向内处理。在过程中,可能需要应用其他导数规则。

  • 将链式法则应用于多变量函数需要使用偏导数。

你有任何问题吗?

在下面的评论中提问,我会尽力回答。

一元和多元函数的链式法则

原文:machinelearningmastery.com/the-chain-rule-of-calculus-for-univariate-and-multivariate-functions/

链式法则使我们能够找到复合函数的导数。

反向传播算法广泛计算它,以训练前馈神经网络。通过以高效的方式应用链式法则,同时遵循特定的操作顺序,反向传播算法计算损失函数相对于网络每个权重的误差梯度。

在本教程中,你将发现一元和多元函数的链式法则。

完成本教程后,你将了解:

  • 复合函数是两个(或更多)函数的组合。

  • 链式法则使我们能够找到复合函数的导数。

  • 链式法则可以推广到多元函数,并通过树形图表示。

  • 链式法则在反向传播算法中被广泛应用,以计算损失函数相对于每个权重的误差梯度。

让我们开始吧。

一元和多元函数的链式法则

图片来源:Pascal Debrunner,部分权利保留。

教程概述

本教程分为四部分,分别是:

  • 复合函数

  • 链式法则

  • 广义链式法则

  • 在机器学习中的应用

前提条件

在本教程中,我们假设你已经知道以下内容:

你可以通过点击上面给出的链接来复习这些概念。

复合函数

到目前为止,我们已经遇到了单变量和多变量函数(即一元多元函数)。现在,我们将这两者扩展到它们的复合形式。我们最终将看到如何应用链式法则来求导,但稍后会详细讲解。

复合函数是两个函数的组合。

– 第 49 页,傻瓜微积分,2016 年。

考虑两个单一自变量的函数,f(x) = 2x – 1 和 g(x) = x³。它们的复合函数可以定义如下:

h = g(f(x))

在此操作中,gf 的一个函数。这意味着 g 应用于将函数 f 应用到 x 上的结果,生成 h

让我们用上述指定的函数来考虑一个具体的例子,以便更好地理解。

假设 f(x) 和 g(x) 是两个级联系统,接收输入 x = 5:

级联中的两个系统表示一个复合函数

由于 f(x) 是级联中的第一个系统(因为它是复合函数中的内层函数),所以它的输出首先被计算:

f(5) = (2 × 5) – 1 = 9

然后将此结果作为输入传递给 g(x),即级联中的第二个系统(因为它是复合函数中的外层函数),以产生复合函数的最终结果:

g(9) = 9³ = 729

如果我们执行以下计算,可以一次性得到最终结果:

h = g(f(x)) = (2x – 1)³ = 729

函数的复合也可以被认为是一个链式过程,使用一个更熟悉的术语,即一个函数的输出传递给链中的下一个函数。

复合函数中,顺序是重要的。

– 第 49 页, 《傻瓜微积分》,2016 年。

请记住,函数的复合是一个非交换的过程,这意味着在级联(或链)中交换 f(x) 和 g(x) 的顺序不会产生相同的结果。因此:

g(f(x)) ≠ f(g(x))

函数的复合也可以扩展到多变量情况:

h = g(r, s, t) = g(r(x, y), s(x, y), t(x, y)) = g(f(x, y))

在这里,f(x, y) 是一个两自变量(或输入)的向量值函数(在这个特定例子中),由三个组件(r(x, y), s(x, y) 和 t(x, y))组成,也被称为 f组件函数。

这意味着 f(x, y) 将两个输入映射到三个输出,然后将这三个输出传递给链中的连续系统 g(r, s, t),以生成 h

想开始学习用于机器学习的微积分吗?

立即报名参加我的免费 7 天电子邮件速成课程(附样例代码)。

点击注册并获取课程的免费 PDF Ebook 版本。

链式法则

链式法则允许我们找到复合函数的导数。

让我们首先定义链式法则如何区分复合函数,然后将其拆分成单独的组件以便更好地理解。如果我们重新考虑复合函数 h = g(f(x)),那么其导数由链式法则给出为:

在这里,u 是内函数 f 的输出(因此,u = f(x)),然后作为输入提供给下一个函数 g 以生成 h(因此,h = g(u))。因此,注意链式法则如何通过一个 中间变量u,将最终输出 h 与输入 x 相关联。

回顾一下复合函数的定义如下:

h(x) = g(f(x)) = (2x – 1)³

链式法则的第一个部分,dh / du,告诉我们首先找到复合函数外部部分的导数,同时忽略内部部分。为此,我们将应用幂法则:

((2x – 1)³)’ = 3(2x – 1)²

结果然后乘以链式法则的第二个部分 du / dx,这是复合函数内部部分的导数,这次忽略外部部分:

( (2x – 1)’ )³ = 2

由链式法则定义的复合函数的导数如下:

h’ = 3(2x – 1)² × 2 = 6(2x – 1)²

我们在这里考虑了一个简单的例子,但将链式法则应用于更复杂函数的概念保持不变。我们将在另一个教程中考虑更具挑战性的函数。

广义链式法则

我们可以将链式法则推广到单变量情况之外。

考虑 x ∈ ℝ^m 和 u ∈ ℝ^n 的情况,这意味着内函数 fm 个输入映射到 n 个输出,而外函数 g 接收 n 个输入以产生一个输出 h。对于 i = 1, …, m,广义链式法则表述为:

或以其更简洁的形式,对于 j = 1, …, n

回顾一下,当我们寻找多变量函数的梯度时,我们使用偏导数。

我们还可以通过树状图来可视化链式法则的工作过程。

假设我们有一个由两个独立变量 x[1] 和 x[2] 组成的复合函数,定义如下:

h = g(f(x[1], x[2])) = g(u1, u2)

在这里,u[1] 和 u[2] 充当中间变量。它的树状图表示如下:

通过树状图表示链式法则

为了推导每个输入 x[1] 和 x[2] 的公式,我们可以从树状图的左侧开始,沿着其分支向右移动。以这种方式,我们发现形成了以下两个公式(为了简单起见,分支的和已被着色):

注意链式法则如何通过中间变量 u*[j]* 将网络输出 h 与每个输入 x*[i]* 关联起来。这是反向传播算法广泛应用的概念,用于优化神经网络的权重。

在机器学习中的应用

观察树状图与典型神经网络表示的相似性(尽管我们通常通过将输入放在左侧,输出放在右侧来表示神经网络)。我们可以通过反向传播算法将链式法则应用于神经网络,与上面应用于树状图的方式非常相似。

链式法则极端使用的一个领域是深度学习,其中函数值y被计算为多个层级的函数组合。

– 第 159 页,《机器学习数学》,2020 年。

神经网络确实可以表示为一个巨大的嵌套复合函数。例如:

y = f[K] ( f[K – 1] ( … ( f1) … ))

在这里,x 是神经网络的输入(例如,图像),而 y 是输出(例如,类别标签)。每个函数 f[i],对于 i = 1,…,K,都有自己的权重。

将链式法则应用于这样的复合函数使我们能够反向遍历构成神经网络的所有隐藏层,并有效计算损失函数相对于每个权重 w[i] 的误差梯度,直到到达输入。

进一步阅读

本节提供了更多资源,供您深入研究。

书籍

总结

在本教程中,你发现了用于单变量和多变量函数的链式法则。

具体来说,你学到了:

  • 复合函数是两个(或更多)函数的组合。

  • 链式法则允许我们找到复合函数的导数。

  • 链式法则可以推广到多变量函数,并通过树形图表示。

  • 链式法则被反向传播算法广泛应用,用于计算损失函数关于每个权重的误差梯度。

你有任何问题吗?

在下方评论中提问,我会尽力回答。

幂法则、乘积法则和商法则

原文:machinelearningmastery.com/the-power-product-and-quotient-rules/

优化作为许多机器学习算法中的核心过程之一,依赖于导数的使用,以决定如何更新模型的参数值,以最大化或最小化目标函数。

本教程将继续探索我们可以用来找到函数导数的不同技术。特别是,我们将探索幂法则、乘积法则和商法则,这些规则可以帮助我们比从头开始逐一求导更快地得到函数的导数。因此,对于那些特别具有挑战性的函数,掌握这些规则以便找到它们的导数将变得越来越重要。

在本教程中,您将学习如何使用幂法则、乘积法则和商法则来求解函数的导数。

完成本教程后,您将了解:

  • 在寻找一个变量基数(提升到固定幂)的导数时应遵循的幂法则。

  • 乘积法则如何帮助我们找到一个函数的导数,该函数被定义为另两个(或更多)函数的乘积。

  • 商法则如何帮助我们找到一个函数的导数,该函数是两个可微分函数的比值。

让我们开始吧。

幂法则、乘积法则和商法则

图片由Andreas M提供,部分权利保留。

教程概述

本教程分为三个部分,它们是:

  • 幂法则

  • 乘积法则

  • 商法则

幂法则

如果我们有一个变量基数提升到固定幂,则寻找其导数的规则是将幂放在变量基数的前面,然后将幂减去 1。

例如,如果我们有函数 f(x) = x**²,我们想要找到它的导数,我们首先将 2 放在 x 前面,然后将幂减少 1:

f(x) = x**²

f’(x) = 2x

为了更好地理解这个规则的来源,让我们走一条较长的路,从导数的定义出发来找到 f(x) 的导数:

在这里,我们用 f(x) = x**² 进行替代,然后简化表达式:

h 接近 0 时,该极限接近 2x,这与我们之前使用幂法则获得的结果相符。

如果应用于 f(x) = x,幂法则给出的值是 1。这是因为,当我们将 1 带到 x 前面,然后将幂减去 1,我们剩下的是指数为 0 的值。由于 x⁰ = 1,所以 f’(x) = (1) (x⁰) = 1。

理解这个导数的最佳方法是意识到 f(x) = x 是一个符合 y = mx + b 形式的直线,因为 f(x) = x 与 f(x) = 1x + 0(或 y = 1x + 0)相同。这条直线的斜率(m)是 1,因此导数等于 1。或者你也可以记住 x 的导数是 1。如果你忘记了这两个观点,你总是可以使用幂法则。

第 131 页,《傻瓜微积分》,2016。

幂法则适用于任何幂,无论是正数、负数还是分数。我们还可以通过首先将其指数(或幂)表示为分数来应用它到根函数上:

f(x) = √x = x^(1/2)

f’(x) = (1 / 2) x^(-1/2)

乘积法则

假设我们现在有一个函数 f(x),我们希望找到其导数,该函数是另外两个函数的乘积,u(x) = 2x² 和 v(x) = x³:

f(x) = u(x) v(x) = (2x²) (x³)

为了调查如何找到 f(x) 的导数,让我们首先直接计算 u(x) 和 v(x) 的乘积的导数:

(u(x) v(x))’ = ((2x²) (x³))’ = (2x⁵)’ = 10x

现在让我们调查一下如果我们分别计算函数的导数然后再将它们相乘会发生什么:

u’(x) v’(x) = (2x²)’ (x³)’ = (4x) (3x²) = 12x³

很明显,第二个结果与第一个结果不一致,这是因为我们没有应用 乘积法则

乘积法则告诉我们,两个函数乘积的导数可以按如下方式计算:

f’(x) = u’(x) v(x) + u(x) v’(x)

如果我们通过应用极限的性质来推导乘积法则,从导数的定义开始,我们可以得到乘积法则:

我们知道 f(x) = u(x) v(x),因此,我们可以代入 f(x) 和 f(x + h):

在这个阶段,我们的目标是将分子因式分解成几个可以分别计算的极限。为此,分母的减法项 u(x) v(x + h) – u(x) v(x + h) 将被引入。它的引入并不改变我们刚刚得到的 f’(x) 的定义,但它将帮助我们因式分解分子:

所得表达式看起来复杂,但是仔细观察后我们意识到可以因式分解出共同项:

通过应用极限法则,我们可以进一步简化表达式,将和与乘积分离开来:

现在我们的问题解决方案变得更加清晰。我们可以看到简化表达式中的第一项和最后一项对应于 u(x) 和 v(x) 的导数的定义,我们可以分别用 u(x)’ 和 v(x)’ 表示。第二项在 h 接近 0 时逼近连续可微分函数 v(x),而第三项是 u(x)。

因此,我们再次得出乘积法则:

f’(x) = u’(x) v(x) + u(x) v’(x)

有了这个新工具,让我们重新考虑当 u(x) = 2x² 和 v(x) = x³ 时如何找到 f’(x):

f’(x) = u’(x) v(x) + u(x) v’(x)

f’(x) = (4x) (x³) + (2x²) (3x²) = 4x⁴ + 6x⁴ = 10x

所得到的导数现在正确地匹配了我们之前得到的乘积 (u(x) v(x))’ 的导数。

这是一个相当简单的例子,我们本可以直接计算出来。然而,我们可能会遇到更复杂的涉及无法直接相乘的函数的问题,这时我们可以轻松地应用乘积法则。例如:

f(x) = x² sin x

f’(x) = (x²)’ (sin x) + (x²) (sin x)’ = 2x sin x + x² cos x

我们甚至可以将乘积法则扩展到超过两个函数的情况。例如,假设 f(x) 现在定义为三个函数 u(x)、v(x) 和 w(x) 的乘积:

f(x) = u(x) v(x) w(x)

我们可以如下应用乘积法则:

f’(x) = u’(x) v(x) w(x) + u(x) v’(x) w(x) + u(x) v(x) w’(x)

商规则

同样,商规则告诉我们如何找到一个函数 f(x) 的导数,这个函数是两个可微分函数 u(x) 和 v(x) 的比值:

我们可以像求乘法法则那样从基本原理推导商法则,即从导数的定义开始并应用极限的性质。或者我们可以走捷径,使用乘法法则本身来推导商法则。这一次我们采用这种方法:

我们可以在 u(x) 上应用乘法法则以获得:

u’(x) = f’(x) v(x) + f(x) v’(x)

通过求解 f’(x) 得到:

最后一步代入 f(x) 来得到商法则:

我们已经看到如何找到正弦和余弦函数的导数。使用商法则,我们现在也可以找到正切函数的导数:

f(x) = tan x = sin x / cos x

应用商法则并简化结果表达式:

从三角函数中的勾股恒等式我们知道 cos²x + sin²x = 1,因此:

因此,使用商法则,我们轻松找到了正切的导数是平方的正割函数。

进一步阅读

本节提供了更多关于该主题的资源,如果你想深入了解。

书籍

文章

总结

在本教程中,你学会了如何应用幂法则、乘法法则和商法则来找出函数的导数。

具体来说,你学到了:

  • 计算变量基数(提升到固定幂次)的导数时遵循的幂法则。

  • 乘法法则如何使我们能够找到定义为两个(或更多)函数乘积的函数的导数。

  • 商法则如何使我们能够找到一个是两个可微函数比率的函数的导数。

你有任何问题吗?

在下面的评论中提问,我会尽力回答。

什么是微积分?

原文:machinelearningmastery.com/what-is-calculus/

微积分 是研究变化的数学。

微积分在解决复杂但连续问题上的有效性在于它能够将问题切分成无限简单的部分,分别解决这些部分,然后再将它们重建成原来的整体。这一策略可以应用于研究所有可以这样切分的连续元素,无论是几何形状的曲率,还是飞行物体的轨迹,或时间间隔。

在本教程中,你将发现微积分的起源及其应用。

完成本教程后,你将知道:

  • 什么是微积分?

  • 微积分如何应用于现实世界?

让我们开始吧。

什么是微积分?

图片来源:Stephen Lammens,保留部分权利。

教程概述

本教程分为两个部分;它们是:

  • 微积分

  • 微积分的应用

微积分

微积分 是拉丁语中表示石头或小石子的词。

这个词的使用源于古代通过小石子进行计算的实践,比如加法和乘法。虽然这个词的使用已经随着时间的推移从许多计算方法的标题中消失,但数学的一个重要分支保留了它,以至于我们现在称之为微积分

微积分,像其他数学形式一样,不仅仅是一种语言;它还是一种非常强大的推理系统。

第 xii 页,《无限的力量》,2019 年。

微积分源于几何学。

最初,几何学关注于直线、平面和角度,反映了其在建造坡道和金字塔等方面的实用起源。然而,几何学家发现自己在研究圆、球体、圆柱体和圆锥体时没有合适的工具。这些曲面形状的表面积和体积比由直线和平面组成的矩形形状更难分析。尽管以复杂著称,微积分的方法却是为了寻求简单性,通过将复杂问题分解成更简单的部分来发展起来的。

回到公元前 250 年左右的古希腊,它是一个热衷于曲线神秘的数学新兴领域。

第 3 页,《无限的力量》,2019 年。

为此,微积分围绕着有限控制下的无限作为曲线与直线之间的桥梁。

无限原则

要揭示任何连续形状、物体、运动、过程或现象——无论它看起来多么复杂和狂野——都要重新构想它为无限系列的简单部分,分析这些部分,然后将结果加在一起以理解原始整体。

第 xvi 页,《无限的力量》,2019 年。

为了更好地理解这个概念,想象一下你正在乘坐宇宙飞船前往月球。当你从地球上向外望去月球时,它的轮廓看起来无疑是弯曲的。但随着你越来越接近,轮廓的更小部分开始填充视窗,曲率逐渐减小,变得不那么明显。最终,曲率变得如此微小,以至于轮廓的微小部分看起来像是一条直线。如果我们将月球的圆形沿着这些无穷小的轮廓部分切割,然后将这些无限小的切片排列成一个矩形,我们将能够计算其面积:通过将其宽度与高度相乘。

这就是微积分的本质:突破性的发现是,如果用显微镜观察弯曲的形状,放大到的曲率部分将显得直而平。换句话说,通过将许多直的片段拼接在一起,原则上可以分析弯曲的形状。

因此,微积分可以被认为包括两个阶段:切割和重建。

用数学术语来说,切割过程总是涉及到无限精细的减法,用来量化部分之间的差异。因此,这一部分内容被称为微分计算。重组过程总是涉及无限的加法,将各部分整合回原始整体。这一部分内容被称为积分计算。

第 xv 页,《无限的力量》,2019 年。

有了这个思路,让我们重新审视我们的简单例子。

假设我们已经将月球的圆形切成更小的片段,并将这些片段并排排列在一起。

我们形成的形状类似于一个矩形,其宽度等于圆周长的一半,C/2,高度等于圆的半径,r

将圆形的切片重新排列成一个矩形

摘自《无限的力量》。

为了进一步平整曲率,我们可以将圆形切成更薄的片段。

将圆形的更薄切片重新排列成一个矩形

摘自《无限的力量》。

切片越薄,曲率就越平整,直到我们达到无限多片的极限,此时形状变成了一个完美的矩形。

无限薄的圆形切片重新排列成一个矩形

摘自《无限的力量》。

我们从圆形中切出切片,将它们重新排列成一个矩形,并不会改变它们的面积。因此,计算圆的面积等同于计算结果矩形的面积:A = rC/2。

曲线不仅是几何形状的特征,还以抛物线轨迹或围绕太阳的行星椭圆轨道的形式出现在自然界中。

从而开始了第二个伟大的痴迷:对地球及太阳系运动之谜的迷恋。

第十九页,《无限的力量》,2019 年。

有了曲线和运动,接下来自然的问题是它们的变化率。

随着曲线和运动的谜团得到解决,微积分进入了它的第三个终身痴迷:变化的谜团。

第二十二页,《无限的力量》,2019 年。

通过应用无限原则,微积分使我们能够研究运动和变化,通过将这些过程近似为许多无穷小的步骤。

正因如此,微积分被认为是宇宙的语言。

微积分的应用

微积分被应用于许多领域,从牛顿在解决数学物理问题中的应用,到最近牛顿思想在数学家凯瑟琳·约翰逊及其同事在 NASA 的工作中的应用。

在 1860 年代,詹姆斯·克拉克·麦克斯韦使用微积分重新定义了电力和磁力的实验定律,最终不仅预测了电磁波的存在,还揭示了光的本质是电磁波。基于他的工作,尼古拉·特斯拉创建了第一个无线电通信系统,古列尔莫·马可尼传输了第一个无线信息,最终许多现代设备,如电视和智能手机,也随之诞生。

阿尔伯特·爱因斯坦在 1917 年也将微积分应用于原子跃迁模型,以预测受激发射的效应。他的工作后来导致了 1960 年代第一台实用激光器的出现,此后这些激光器被广泛应用于许多不同的设备,如光盘播放机和条形码扫描器。

没有微积分,我们就不会有手机、计算机或微波炉。我们不会有无线电、电视、为孕妇提供的超声波检查,或为迷路的旅行者提供的 GPS。我们也不会分裂原子、解开人类基因组,或将宇航员送上月球。我们甚至可能没有《独立宣言》。

第七页,《无限的力量》,2019 年。

更有趣的是微积分在机器学习中的关键作用。它支撑了重要的算法,如梯度下降,这需要计算函数的梯度,并且在训练机器学习模型时通常至关重要。这使得微积分成为机器学习中的基本数学工具之一。

进一步阅读

本节提供了更多资源,如果你希望更深入地探讨这个话题。

书籍

文章

总结

在本教程中,你发现了微积分的起源及其应用。

具体来说,你学到了:

  • 微积分是基于切割和重建策略的变化数学研究。

  • 微积分促成了许多发现和现代设备的创造,并且是机器学习中的一种基本数学工具。

你有任何问题吗?

在下面的评论中提出你的问题,我会尽力回答。

开始之前你需要知道的:微积分前提知识的简要介绍

原文:machinelearningmastery.com/what-you-need-to-know-before-you-get-started-a-brief-tour-of-calculus-pre-requisites/

我们之前见过,微积分是机器学习中核心的数学概念之一,它使我们能够理解不同机器学习算法的内部工作原理。

微积分又建立在几个基本概念之上,这些概念来源于代数和几何。掌握这些基础知识将变得更加重要,特别是当我们深入学习微积分的高级主题时,如极限的评估和导数的计算等。

在本教程中,你将发现几个前提知识,这些知识将帮助你学习微积分。

完成本教程后,你将了解:

  • 线性和非线性函数在微积分和机器学习中至关重要,许多微积分问题都涉及它们的使用。

  • 代数和三角函数的基本概念为微积分提供了基础,这些基础在我们处理更高级的微积分主题时尤其重要。

让我们开始吧。

开始之前你需要知道的:微积分前提知识的简要介绍

图片来源:Dino Reichmuth,保留某些权利。

教程概览

本教程分为三个部分,它们是:

  • 函数的概念

  • 预代数和代数基础

  • 三角函数基础

函数的概念

函数是定义依赖变量与自变量之间关系的规则。

示例无处不在:你所在城市的每日平均温度依赖于且是时间的函数;物体下落的距离是自你放手以来经过时间的函数;圆的面积是其半径的函数;封闭气体的压力是其温度的函数。

《傻瓜微积分》第 43 页,2016 年。

在机器学习中,神经网络通过学习一个函数来表示输入特征(自变量)与期望输出(依赖变量)之间的关系。因此,在这种情况下,学习到的函数定义了输入值和一个或多个输出值之间的确定性映射。我们可以如下表示这种映射:

输出 = 函数(输入)

更正式地说,函数通常用y = f(x)表示,这意味着y 是 x 的函数。这种符号表示x是我们已知的自变量,而y是我们希望找出的因变量。例如,如果我们考虑平方函数,f(x) = x²,输入值 3 会产生输出 9:

y = f(3) = 9

函数也可以通过xy坐标平面上的图形来表示。

函数 f 的图形指的是所有点(x, f(x))的集合。

第 13 页,《微积分的指南》,2019 年。

绘制函数图形时,自变量输入变量放在x-轴上,而因变量输出变量放在y-轴上。图形有助于更好地说明自变量和因变量之间的关系:图形是上升还是下降?以何种速度?

直线是可以在坐标平面上绘制的最简单函数之一。例如,y = 3x + 5 的图形:

线性函数的线图

摘自《傻瓜微积分》

这条直线可以用线性函数来描述,因此称为线性函数,因为输出会随着输入的变化而成比例变化。描述这条直线的线性函数可以用斜率-截距形式表示,其中斜率用m表示,y截距用c表示:

f(x) = mx + c = 3x + 5

我们已经看到如何在讨论变化率时计算斜率。

如果我们考虑将斜率设为零的特殊情况,得到的水平线将由常数函数的形式描述:

f(x) = c = 5

在机器学习的背景下,这种线性函数定义的计算由神经网络中的每个神经元实现。具体而言,每个神经元从前一层神经元或训练数据中接收一组n输入,x*[i],并计算这些输入的加权和(其中weight*,w*[i],在机器学习中是斜率m的更常见术语),以产生输出z*:

输入的加权和

摘自《深度学习》

训练神经网络的过程涉及学习最佳表示输入数据集模式的权重,这一过程由梯度下降算法完成。

除了线性函数,还有另一类非线性函数。

所有非线性函数中最简单的可以认为是抛物线,可以描述为:

y = f(x) = x²

当绘制图形时,我们发现这是一个偶函数,因为它关于 y 轴对称,并且从不低于 x 轴。

抛物线的线性图

摘自《傻瓜微积分》

然而,非线性函数可以呈现多种不同的形状。例如,考虑形式为 f(x) = b*^x* 的指数函数,它可以无限增长或衰减,或者单调,这取决于 x 的值:

指数函数的线性图

摘自《傻瓜微积分》

或者形式为 f(x) = log*[2]x 的对数函数,它类似于指数函数,但 x* 轴和 y 轴交换了位置:

对数函数的线性图

摘自《傻瓜微积分》

对于深度学习,特别感兴趣的是逻辑函数、tanh 函数和修正线性单元(ReLU)非线性函数,它们作为 激活函数

逻辑函数、Tanh 函数和 ReLU 函数的线性图

摘自《深度学习》

这些激活函数的重要性在于它们将非线性映射引入神经元的处理过程中。如果我们只能依赖每个神经元执行的线性回归来计算输入的加权和,那么我们只能学习从输入到输出的线性映射。然而,许多现实世界的关系比这更复杂,线性映射不能准确建模它们。引入对神经元输出 z 的非线性,使得神经网络能够建模这些非线性关系:

输出 = 激活函数(z)

… 一个神经元,神经网络和深度学习的基本构建块,通过一个简单的两步操作序列来定义:计算加权和,然后通过激活函数传递结果。

第 76 页,深度学习,2019 年。

非线性函数在训练神经网络的过程中也会以误差函数的形式出现。

通过计算预测值与目标输出值之间的误差,随着模型权重的变化,可以生成非线性误差函数。其形状可以像抛物线一样简单,但通常特征是有许多局部最小值和鞍点。梯度下降算法通过计算在某个特定点接触曲线的切线的斜率来下降这个非线性误差函数:这是微积分中的另一个重要概念,它允许我们通过将复杂的曲线函数分割成许多无穷小的直线片段来进行分析。

初等代数和代数基础

代数是微积分的重要基础之一。

代数是微积分的语言。你不能做微积分而不懂代数,就像你不能写中文诗而不懂中文一样。

《傻瓜微积分》,第 29 页,2016 年。

代数中有几个基本概念对于微积分很有用,例如那些涉及分数、幂、平方根和对数的概念。

让我们首先从复习处理分数的基础知识开始。

  • 除以零:分数的分母不能为零。例如,像 5/0 这样的分数结果是未定义的。其直觉在于,你永远无法使用零的倍数将分子中的值加总起来。

  • 倒数:分数的倒数是其乘法逆元素。简单来说,要找到分数的倒数,就把它翻转过来。因此,例如,3/4 的倒数变为 4/3。

  • 分数的乘法:分数之间的乘法就像是将分子相乘,并将分母相乘一样简单。

(a / b) * (c / d) = ac / bd

  • 分数的除法:分数的除法与乘法非常相似,但多了一步;首先找到第二个分数的倒数,然后进行乘法。因此,再考虑两个一般分数:

(a / b) ÷ (c / d) = (a / b) * (d / c) = ad / bc

  • 分数的加法:一个重要的第一步是找到所有需要加的分数之间的共同分母。任何共同的分母都可以,但我们通常会找最小共同分母。找到最小共同分母有时就像是将所有单个分数的分母相乘一样简单。

(a / b) + (c / d) = (ad + cb) / bd

  • 分数的减法:分数的减法遵循与分数加法类似的程序:

(a / b) – (c / d) = (ad – cb) / bd

  • 分数的约简:分子和分母中的每一部分都存在连续的乘法链,可以通过约简出现在分子和分母中的任何共同项来简化分数:

a³b² / ac = a²b² / c

计算微积分的下一个重要先决条件是指数,或者通常被称为幂。在处理幂时,有几个需要记住的规则。

  • 零的幂: 任何数(无论是有理数还是无理数,负数还是正数,除了零本身)的零次幂等于一:

x⁰ = 1

  • 负指数: 一个底数的负指数变成一个分数,但符号不改变:

x^(-a) = 1 / x^a

  • 分数指数: 一个底数的分数指数可以转化为一个根号问题:

x^(a/b) = (^b√x)^a = ^b√x^a

  • 幂的加法: 如果两个(或更多)相等的基数项相乘,那么它们的幂可以相加:

x^a * x^b = x^((a + b))

  • 幂的减法: 类似地,如果两个相等的基数项被除,那么它们的幂可以相减:

x^a / x^b = x^((a – b))

  • 幂的幂: 如果一个幂也被提升到一个幂,那么这两个幂可以相乘:

(x^a)^b = x^((ab))

  • 幂的分配: 无论基数是相乘还是相除,幂都可以分配给每个变量。但是,如果基数是相加或相减,则不能分配:

(xyz)^a = x^a y^a z^a

(x / y)^(a =) x^a / y^a

同样地,我们有处理根和对数的规则:

根的性质

摘自《数学小白书》

对数的性质

摘自《数学小白书》

最后,知道如何解决二次方程在微积分中也很有用。

如果二次方程是可因式分解的,则解决它的最简单方法是将项的总和表达为乘积形式。例如,以下二次方程可以分解为:

x² – 9 = (x + 3)(x – 3) = 0

将每个因子设为零允许我们找到这个方程的解,本例中为 x = ±3。

或者,可以使用以下二次方程公式:

二次方程公式

摘自《数学小白书》

如果我们考虑与上述相同的二次方程,则将系数值设为,a = 1,b = 0,c = 9,结果仍然是 x = ±3。

三角学基础

三角函数围绕三个主要的三角函数展开,它们是正弦、余弦和正切,以及它们的倒数,它们分别是余割、正割和余切。

当应用于直角三角形时,这三个主要函数使我们能够计算三角形的边长或其他两个锐角中的任何一个,具体取决于我们起始时所掌握的信息。特别是对于某个角度x,在以下 3-4-5 三角形中:

3-4-5 三角形

摘自《微积分入门》

三大三角函数

摘自《微积分入门》

正弦、余弦和切线函数仅适用于直角三角形,因此仅能用于计算小于 90°的锐角。然而,如果我们在xy坐标平面上的单位圆内工作,则能够对 0°至 360°之间的所有角度应用三角学:

单位圆

摘自《微积分入门》

单位圆的中心位于xy坐标平面的原点,半径为一个单位。围绕单位圆的旋转是逆时针进行的,从正x轴开始。旋转角度后的余弦值由击中单位圆的点的x坐标给出,而sine值由y坐标指定。值得注意的是,四象限是对称的,因此一个象限中的点在其他三个象限中有对称的对应点。

绘制的正弦、余弦和切线函数的图形如下:

正弦、余弦和切线函数的线图

摘自《微积分入门》

所有函数都是周期性的,正弦和余弦函数具有相同的形状,尽管它们在彼此之间相位差为 90°。正弦和余弦函数可以通过在单位圆上旋转时计算的xy坐标轻松地描绘出来。切线函数也可以类似地描绘出来,因为对于任何角度θ,该函数可以定义为:

tan θ = sin θ / cos θ = y / x

在±90°处,切线函数未定义,因为分母中的余弦函数在此角度返回零值。因此,我们在这些角度处绘制垂直的渐近线,这些是曲线接近但永远不触及的虚拟线。

最后一个注意事项涉及这些三角函数的反函数。以正弦函数为例,其反函数用 sin^(-1)表示。这与余割函数不要混淆,余割函数是正弦函数的倒数,因此不同于它的反函数。

进一步阅读

如果你想深入了解这个主题,本节提供更多资源。

书籍

摘要

在本教程中,你了解到了处理微积分需要的几个先修条件。

具体来说,你学到了:

  • 线性和非线性函数是微积分和机器学习的核心内容,许多微积分问题涉及到它们的使用。

  • 代数和三角学中的基本概念为微积分奠定了基础,随着我们探讨更高级的微积分主题,这些将变得尤为重要。

你有什么问题吗?

在下方评论区域提出你的问题,我将尽力回答。