高中数学回顾
在这一节,我们将解释为接下来学习机器所需要的基础数学概念。你可以尝试先跳过这一节,在遇到不会的数学概念,再回头看看,或许可以达到更好的效果。这一节中所讲的均为中国高中通常会介绍的内容。你无需担心如果你不是理科生而可能少学了些数学而难以前进,因为我们将只依赖如下几点:
- 求和
- 求积
- 导数
- 对数(的基础概念和运算)和
- 函数的基本定义
我会在依赖以上知识点的情况下完善机器学习所需要的数学。
求和
连续求和我们通常使用 来表示,例如:
下侧的 表示求和的起始位置,上侧的 表示求和的终止位置。在这个例子中,我们将 从 求和到 。
求积
连续求积我们通常使用 来表示,例如:
和求和运算类似, 下侧的 表示求积的起始位置,上侧的 表示求积的终止位置。在这个例子中,我们将 从 连乘到 。
导数
导数使用 表达,导数的函数值就是函数图像在这一点的切线斜率。对于一元函数,也就是微分和微元的比值,用符号语言表达就是 。二阶导数表达为 或 ,也就是导数的导数。
在本书中,我们更倾向于使用 的表示方法,因为其和偏导 的定义更加接近。我们会在后面讨论多元函数的时候再详细讨论偏导是什么。
导数的基础公式:
导数的定义:
常数导数:
幂函数导数:
指数函数导数:
自然对数导数:
对数函数导数:
链式法则: 或
对数
对数常使用 ,作为标记。在机器学习中,我们可能会将 与 等混淆,但是不用担心,我们 通常只是想方便计算。
我们知道的一些对数运算的基础公式:
其中最有重要的是 。其揭示了对数运算最重要的性质:对数可以使乘法转化为加法。
因此如果我们考虑我们需要连续乘 次乘数 ,其中 表示不同的乘子,我们可以使用 来简化计算:
乘法运算对于计算机是很慢的,而加法运算是很快的。因此我们可以使用对数来简化和加速计算。
于此同时更重要的是在计算多次概率 的乘积时,其结果可能是一个非常非常小的数(考虑 ,而计算机在存储小数时,可能会有精度丢失(也就是会不准确),而越小的数,精度可能丢失的越快。我们称这种问题为下溢出(underflow)。考虑对数可以将小数相乘转化为相加,从而避免了下溢出的问题 。
函数的基本定义
在初中和高中,我们对于函数的定义:函数是对空间中的元素进行映射(mapping)。
如果我们定义输入空间为 ,输出空间为 ,我们可以将函数 看作是一个对 到 的映射,用符号我们记做 。
举个例子,对于普通的一元一次线性函数 ,我们可以将其看作是将输入空间(即定义域, )中的元素映射到输出空间(即值域, )中的元素。因此可以记作 。
在机器学习中,我们通常将函数看作是一个模型,即我们希望找到一个函数 ,使得 能够将输入空间 中的元素正确映射到输出空间 中的元素。