分享

机器学习中的微积分

 taotao_2016 2020-06-18

本文是机器学习中的微积分的第一部分,几乎所有的数学函数计算机都很乐意为你执行。但更好地理解这些概念将有助于你让机器高效地学习。为了全面理解机器学习中的微积分,最好先看一看我们将在这里用到这些概念。微积分构成了神经网络等机器学习概念的核心。在本文和后续的文章中我们将从一些基本概念出发,打下微积分的基础,然后再讨论它们在多维系统中的应用。我们将尝试了解如何用微积分来训练神经网络。

什么是微积分?

什么是微积分?在回答它之前,让我们首先看一下另一个常见的数学术语或概念,即函数

在讨论函数时,首先想到的是某些输入与其输出之间的某种关系。例如,如果我要编写一个函数来模拟某个空间中的温度,则可以输入一些空间坐标;我感兴趣的x,y,z以及时间t,我希望函数在此特定时间t在此特定坐标位置返回温度。

这听起来像是一个非常简单的概念,但是在使用函数时,在表示这些函数时,我们通常会因不同的符号而感到困惑。此外,在实际使用数学之前,需要花费大量时间来理解这些符号并打下基础,将数学视为您的一种语言,那正是玩数学的要求。

在整个过程中,我们将查看一些数据或描述,并尝试猜测最适合所描述问题的函数。换句话说,我们将选择一个函数来表示它。函数的选择就是我们所说的数学的创新本质。

现在,我们要问什么是微积分的主要问题:微积分是研究这些函数如何随输入值变化以及如何对其进行研究和操纵。换句话说,它只是一组描述函数及其变化变量之间关系的工具。

让我们通过查看其他一些非常基本的概念来继续我们关于微积分的机器学习的讨论。

梯度和导数:

考虑一个例子,行驶中的汽车的速度与时间的关系图。

机器学习中的微积分

从上图我们注意到的第一件事是汽车的速度不是恒定的,否则,该线将是水平的。再看一遍,我们看到汽车的速度最初从零开始增加,我们称之为加速。在时间段t的末尾,我们看到汽车的速度逐渐降低,我们称之为减速。微积分将帮助我们从该图中提取很多其他信息。该图中的加速度可以定义为局部梯度,单点处的梯度称为局部梯度。通过绘制切线,我们看到它在一点处接触曲线,并且是该点处曲线的渐变,减速将具有负斜率。

机器学习中的微积分

通过在每个点上绘制切线的斜率,我们可以绘制加速度与时间的关系图,而不是速度与时间的关系。

但是在绘制这种情况之前,我们首先要考虑一种较简单的以恒定速度行驶的汽车。恒定速度由一条表示零梯度的水平线表示。因此,加速时间图将是一条水平线。

现在回到前面的情况,梯度在峰值变为零之前为正且恒定。然后它是负数,然后再次变为零。

机器学习中的微积分

看一下加速时间图和速度时间图。

机器学习中的微积分

注意,当加速度变为零时,它是水平轴上相同的点,其中速度-时间图是平坦的,且梯度为零。

我们在这里所做的是微积分的本质。我们采用了一个连续函数,并通过另一个函数(导数)描述了每个点的斜率。

实际上,我们可以通过在每个点取斜率来再次绘制加速度的导数函数。这将是速度的二阶导数,通常被称为汽车的加速度。

机器学习中的微积分

我们也可以用另一种方式看待这种情况。那就是我们的速度时间函数梯度是哪个函数?那就是应用逆过程或反导数。在微积分中通常称为积分。这就是汽车从其起始位置行驶的距离。

什么是导数?

让我们尝试为导数建立更正式的定义。为此,我们将尝试利用对函数和梯度的理解并形成数学符号。

我们已经看到,水平线的斜率为零,向上和向下的斜率分别为正斜率和负斜率。

如果我们考虑空间中的两个点,则该线的斜率将等于在此间隔中增加的函数的数量除以该间隔的长度。参见下图。

机器学习中的微积分

这种情况通常被描述为超支运行。上升是垂直距离,游程是覆盖的水平距离。

如果我们考虑相同的斜率但朝下的方向,则上升将保持不变,但行程将变为负数。

这导致我们渐变=上升/运行

但是,复杂的函数在每个点上渐变的情况如何呢?就像我们上面讨论的场景一样。此处的超车运行将取决于我们选择的要点。

让我们在水平轴上选择一个点x。该函数为f(x)。然后,我们选择第二点。增量x是我们两点之间的差,其中增量用于表示很小的变化。这意味着第二点是x加Δx。这里的函数将是f(x + Δx)。现在,尝试为相对于任何其他点的点x编写梯度表达式。此处的行程将是距离增量x,而上升将是两点之间的高度。

机器学习中的微积分

随着两点之间的距离减小,我们的近似值会变得更好,并且在点x处将获得实际的梯度值。我们可以使用零符号来理解这个概念。这就是说增量为零。这里要注意的是,我们不考虑增量等于零。我们所说的是极小的值,接近于零。极端的概念就是差异化。

机器学习中的微积分

现在,让我们通过一些示例尝试一下此表达式。首先,采用线性函数。我们知道其导数应为常数。

机器学习中的微积分

我们还可以分别区分它们是3x部分和2位,然后将结果相加。这是求和规则。

让我们尝试另一个示例。

机器学习中的微积分

这就引出了另一种概括。

机器学习中的微积分

这是我们的力量法则。

让我们看一些在区分方面产生有趣结果的特殊情况。

首先是f(x)= 1 / x

我们可以将其绘制为:

机器学习中的微积分

这表明该函数的梯度除0以外的所有地方均为负。此外,在0处,我们实际上看不到它是什么。在负面方面,该函数下降,然后以某种方式出现在正面。将此中断定义为不连续。

现在,如果我们将其替换为差异表达式:

机器学习中的微积分

这表明根据我们的理解,导数函数在任何地方都像我们的基函数一样为负,并且在x = 0时未定义。

我们将讨论的另一个特殊函数具有此属性,其中x的函数值等于其自己的梯度。这是欧拉函数。

机器学习中的微积分

即使我们继续进行区分,结果仍然相同。在微积分中经常使用值e = 2.718及其自相似性。

最后一个特例是正弦和余弦的三角函数。

看一下正弦x的图并尝试找出其导数。

机器学习中的微积分

观察它,我们发现坡度增加并在凹凸的顶部变为零。然后,它开始减小,并在凹凸的底部再次变为零。事实证明,正弦x的导数实际上是余弦x。

机器学习中的微积分

对此余弦x求微分可得到–sin x。第三次微分得到–cosx,然后第四次微分将我们带回到原始sinx。

机器学习中的微积分

尽管我们略过了一些细微的细节,但我们已经确定,差异化只是弄清楚了各个方面的增长。这种方法将帮助我们进一步了解机器学习的微积分。有时,我们只能为光滑函数定义一个方程,在某些情况下,使用离散点,可以像我们所讨论的那样利用超程运行。

同样,我们已经看到了一些非常基本的示例,它们不需要太多计算,但是足以使微分过程变得有些乏味。幸运的是,数学家们提出了一些规则,以使这一过程更加容易。我们已经研究了求和规则和幂规则。现在,让我们看一下使用衍生工具时会派上用场的其他一些重要规则。

规则:

区分两个函数 的乘积时,此规则是捷径。

考虑一个三角形,其长度由函数f(x)定义,高度由g(x)定义。这两个函数的乘积将为我们提供三角形的面积A(x)。我们寻找的是随着x的变化而变化的面积。如果我们将x增加一点增量x,会发生什么情况?

沿顶部边缘的总长度变为f(x + Δx)。同样,高度变为g(x + Δx)。如果将矩形分成几部分。新增加的区域的宽度是原始宽度和新宽度之间的差。对高度应用相同的逻辑。原始高度和新高度之间的差异。现在,我们可以为新区域ΔA(x)编写一个表达式。

机器学习中的微积分

机器学习中的微积分

现在,当x接近0时,所有三个三角形将缩小,而最小的三角形将缩小得更快。这使我们无视它对新领域的贡献。所以,

机器学习中的微积分

为了计算ΔA(x)的导数,我们必须将其除以Δx,即随运行时间上升。

机器学习中的微积分

这是可以在我们的微积分工具箱中使用的产品规则!

连锁规则:

最后要讨论的规则是连锁规则。有时在某些情况下某个函数是另一个函数的输入。

例如h(p(m))

我们可以说这是我吃披萨时的快乐

在这里,我们实际上通过披萨与金钱联系在一起。这种嵌套方案在工程中非常普遍。

首先,看看与披萨有关的函数。

机器学习中的微积分

此函数的曲线图显示,我吃一个半比萨时的兴奋达到最高,然后逐渐降低。

机器学习中的微积分

而比萨与金钱相关的函数是

机器学习中的微积分

该图显示,随着金钱的增加,比萨的购买力也成倍增加。

机器学习中的微积分

现在我们想要的是:考虑我的钱,需要多少钱?那就是相对于金钱的变化率。

虽然我们可以将披萨货币功能替换为披萨功能,然后进行区分。但是链式规则为我们提供了一种更为优雅的方法。此外,它可以用于无法直接替换的更复杂的情况。

机器学习中的微积分

这两个商量的乘积将为我们提供所需的结果。这是导数的链,因此形成链规则。

现在,将其应用于我们的例子。

机器学习中的微积分

您可能会认为链式规则也不能使我们免于进行冗长的计算,这是事实。但是在某些情况下,我们可能无法找到这些函数的精确解析表达式,而只能得到它们的导数。在这种情况下,将其衍生产品连接起来可以节省时间。

结论

在机器学习微积分部分中,我们研究了梯度,导数,这些工具将帮助我们在探索机器学习微积分的过程中解决乏味的数学函数。在与人工智能(尤其是机器学习)一起工作时,微积分是我们经常会遇到的问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多