高中数学回顾

在这一节,我们将解释为接下来学习机器所需要的基础数学概念。你可以尝试先跳过这一节,在遇到不会的数学概念,再回头看看,或许可以达到更好的效果。这一节中所讲的均为中国高中通常会介绍的内容。你无需担心如果你不是理科生而可能少学了些数学而难以前进,因为我们将只依赖如下几点:

  • 求和
  • 求积
  • 导数
  • 对数(的基础概念和运算)和
  • 函数的基本定义

我会在依赖以上知识点的情况下完善机器学习所需要的数学。

求和

连续求和我们通常使用 来表示,例如:

下侧的 表示求和的起始位置,上侧的 表示求和的终止位置。在这个例子中,我们将 求和到

求积

连续求积我们通常使用 来表示,例如:

和求和运算类似, 下侧的 表示求积的起始位置,上侧的 表示求积的终止位置。在这个例子中,我们将 连乘到

导数

导数使用 表达,导数的函数值就是函数图像在这一点的切线斜率。对于一元函数,也就是微分和微元的比值,用符号语言表达就是 。二阶导数表达为 ,也就是导数的导数。

在本书中,我们更倾向于使用 的表示方法,因为其和偏导 的定义更加接近。我们会在后面讨论多元函数的时候再详细讨论偏导是什么。

导数的基础公式:

导数的定义:

常数导数:

幂函数导数:

指数函数导数:

自然对数导数:

对数函数导数:

链式法则:

对数

对数常使用 ,作为标记。在机器学习中,我们可能会将 等混淆,但是不用担心,我们 通常只是想方便计算。

我们知道的一些对数运算的基础公式:

其中最有重要的是 。其揭示了对数运算最重要的性质:对数可以使乘法转化为加法。

因此如果我们考虑我们需要连续乘 次乘数 ,其中 表示不同的乘子,我们可以使用 来简化计算:

乘法运算对于计算机是很慢的,而加法运算是很快的。因此我们可以使用对数来简化和加速计算。

于此同时更重要的是在计算多次概率 的乘积时,其结果可能是一个非常非常小的数(考虑 ,而计算机在存储小数时,可能会有精度丢失(也就是会不准确),而越小的数,精度可能丢失的越快。我们称这种问题为下溢出(underflow)。考虑对数可以将小数相乘转化为相加,从而避免了下溢出的问题

函数的基本定义

在初中和高中,我们对于函数的定义:函数是对空间中的元素进行映射(mapping)。

如果我们定义输入空间为 ,输出空间为 ,我们可以将函数 看作是一个对 的映射,用符号我们记做

举个例子,对于普通的一元一次线性函数 ,我们可以将其看作是将输入空间(即定义域, )中的元素映射到输出空间(即值域, )中的元素。因此可以记作

在机器学习中,我们通常将函数看作是一个模型,即我们希望找到一个函数 ,使得 能够将输入空间 中的元素正确映射到输出空间 中的元素。