机器学习_一元函数微积分(1)
写在前面,本系列主要是对下面这本书做的学习笔记
极限与连续
极限是微积分中最基本的概念,也是理解导数与积分等概念的基础。
可数集和不可数集
初等数学已经对元素数有限的集合进行的系统系统阐述,对无限集有些概念和规则不再适用,即使是常用的自然数集和实数集其性质,也需要重新定义
基数或势
集合的元素数量称为其基数或势
,记为,对于集合,其基数为
基数为有限值的集合称为有限集
;基数为无限值的集合称为无限集
对于两个有限集,如果集合是集合的真子集,即,则有,而无限集的基数为,因此不能直接使用这个规则进行基数比较
考虑正整数集,令集合为所有正奇数组成的集合,集合为所有正偶数组成的集合。因此有
但这并不意味着
双射函数
对于集合和,如果集合的任意元素,在集合都有唯一的元素通过某种映射关系与之对应,即存在如下的双射函数
(一对一映射函数)
则称这两个集合的基数相等
【1】正整数集与正偶数集的基数相等,因为它们的元素之间存在如下的双射关系
【2】集合和集合的基数也相等,因为
【3】集合与整个实数集合等势,因为集合实数集合的元素间存在如下的双射函数
此函数可以将区间拉升至,且存在反函数
【4】区间与区间是等价的,因为存在双射函数
反过来实数与区间也是等价的,因为存在双射函数
此函数称为logistic函数或sigmoid函数,有着优良的性质,在机器学习与深度学习中被广泛使用。
可数集和不可数集
无限集
,可进一步分为可数集
与不可数集
,可数集中的每个元素可以用正整数进行编号,即与正整数等势
正整数是可数集,它的每个元素可以写成
可数集定义
:如果存在从正整数集到集合$A$的双射关系,则集合是可数的
整数集是可数的,因为存在双射函数,将其映射到正整数集
有理数集也是可数集,因为所有的有理数都可以写成两个整数相除的形式
整数集和有理数集,这里的离散和可数等价,任何可数集在数轴上的”长度”为0。
不可数集
:无理数、实数集和长度不为0的实数区间都是不可数的,其中的元素是连续的,它们在数轴上是稠密的或者说连续的,如,圆周率以及以自然对数底数都是无理数,不可数集在数轴上的”长度”不为0。
可数和不可数的概念将用于定积分中函数的可积性,以及概率论中的离散型和连续型随机变量等概念中
数列的极限
极限概念与定义
数列极限
数列的极限反映了当数列元素下标趋向于时数列项取值的趋势
数列极限定义
: 对于数列以及某一实数,如果对于任意给定的都存在正整数,使得对于任意满足的都有下面的不等式成立
则称此数列的极限为,或称其收敛于,数列的极限记为
直观解释
: 当增加时数列的值无限趋近于,可接近到任意指定的程度,由控制,当数列的极限不存在,则称该数列发散,如果数列的极限存在,则其值必唯一
证明数列极限存在且为某一值的方法是证明公式(1)成立
并非所有的数列都存在极限
- 数列,当时,数列的值在-1与1之间振荡
- 数列,当时,数列的值趋向于,极限也不存在
数列极限的四则运算
计算极限,根据数列极限的四则运算有
极限存在判定法则
数列上界和下界
- 上界: 对于数列,如果它的任意元素都满足,则称为数列的上界,上界不唯一
- 下界: 对于数列,如果它的任意元素都满足,则称为数列的下界
单调收敛定理
: 如果数列单调递增且存在上界,则极限存在,如果数列单调递减且有下界,则极限存在,即单调有界的数列收敛
根据单调收敛定理,可以得到微积分中一个重要极限,对于数列的极限为
其中为自然对数的底数,约为,是数学中最重要的常数之一
证明
: 证明数列有界和单调递增,收敛于
数列的极限为
这个极限可以用来表示对个样本进行次有放回等概率抽样,当样本量趋于无穷大时,每个样本一次都没被抽中的概率
单调有界是数列收敛的充分条件而非必要条件
夹逼定理
: 如果对于有且,则有,这一结论称为夹逼定理
如果数列无界,则必定发散,有界是数列收敛的必要条件而非充分条件,如数列有界但不收敛
函数的极限
函数极限的严格定义由法国数学家柯西给出: 即当前广泛使用的$\epsilon \mbox{-} s $定义
领域
: 点的领域是指满足不等式的所有构成的集合,即区间,称为领域的半径
去心领域
: 去心领域是指满足上式且去掉点的点构成的集合
函数极限
: 对于函数,如果对于任意的,均存在的去心领域,使得去心领域内所有的都有
则称函数在点处的极限为,函数在点处的极限记为
直观解释
: 当自变量的值无限接近于时,函数值无限接近于
- 即在内的函数值都在区间内
证明函数极限的方法和数列类似,核心是证明在区新领域内使得公式(1)成立
左右极限
一维数轴上有两个方向,变量可以从左侧趋近于,也可以从右侧趋近于
因此函数的极限分为左极限和右极限,左极限和右极限分别记为
夹逼定理
假设是包含点的区间,、、为定义在该区间上的函数,如果对所有属于但不等于点的点都有,且
则有,这一结论称为夹逼定理
几个重要极限
- 令,则,因此有因为有最后可以得到
函数的连续性与间断点
连续性
函数的连续型
通过极限定义,是最基本的性质之一
函数连续的直观表现
: 如果自变量的改变很小,则因变量的改变也非常小,函数值不会突然发生跳跃
函数连续的定义
如果函数满足,则称它在点处连续
几何解释
函数连续在该点处的函数曲线没有”断”
连续的重要性质
- 基本初等函数在其定义域内是连续的,包括多项式函数、有理分式函数、指数函数、对数函数、三角函数、反三角函数
- 绝对值函数在其定义域内也是连续的
- 由基本初等函数经过有限次四则运算和复合而形成的函数,在其定义域内连续,这样的函数被称为
初等函数
- 如果函数和在定义域内连续,则复合函数在定义域内连续
跳跃间断点
跳跃间断点
: 函数在处的左极限和右极限都存在,但不相等
例子
: 其中为跳跃间断点
可去间断点
可去间断点
: 或者左右极限相等,但不等于该点处的函数值
例子
: 其中为可去间断点
函数在点处的左极限和右极限至少有一个不存在
例子
: 正切函数,在处极限值不存在,为第二类间断点
例子
: 反比例函数,为函数的第二类间断点,在该点处函数的极限不存在
连续函数的性质
连续函数具有很多优良的性质
- 闭区间上的连续函数一定存在极大值和极小值,使得对于该区间任意的有
- 开区间上的连续函数则不能保证存在极大值和极小值,如反比例函数
介值定理
介值定理
: 如果函数在闭区间内连续,是介于和之间的一个数,则存在中的某个点,使得,考虑下图
对于区间,在左右端点处的函数值分别为和,对于任意的,均存在至少一个点,使得
如果,则曲线必然存在一点使得,这就是方程的根,事实上,满足此条件
介值定理几何意义
函数在区间内一定与直线至少有一个交点,其中介于和之间
介值定理保证至少存在一点使得,满足此条件的可能有多个
连续性假设
机器学习与深度学习算法所使用的绝大多数模型,假设函数是连续函数,以保证输入变化小的变化不至于导致预测值的突变,这称为连续性假设
,连续性通常能够保证机器学习算法有更好的泛化性能
上确界与下确界
上确界与下确界可看作是集合最大值与最小值的推广
上确界
也称为最小上界,对于的非空子集,如果该集合中的任意元素均有,即是集合的一个上界,且满足吃不等是此不等式条件的最小值,则为集合的上确界,记为
如果满足此条件的不存在,则称为集合的上确界为,如果集合的上确界存在,则必定唯一
如果集合的元素存在最大值,则最大值为其上确界,如闭区间的上确界为1
集合可能不存在最大值,如开区间,其上确界为,但不是集合的最大值
例子
:
- 集合是有限集,其上确界为集合元素的最大值,其值为
- 集合是无限可数集,并且该数列单调递增,其上确界为数列的极限
- 集合是无限不可数集,其上确界为该函数的极大值
充分必要条件
集合存在上确界的充分必要条件是集合有上界,实数集的任意非空有界子集均存在上确界
下确界
: 下确界也称为最大下界,是集合的一个下界,即对中的任意元素,均有,且是最大的下界,则称为的下确界,记住$inf(S)$
对于闭区间,下确界为,对于开区间,其下确界也为
例子
:
- 集合的下确界为,在时取得
- 集合的下确界为,是函数的最小值
李普希茨连续
李普希茨连续
李普希茨连续
是比连续更强的条件,不但保证了函数值不间断,而且限定了函数的变化速度
给定函数,如果对于区间任意两点、都存在常数使得下面的不等式成立
则称函数在区间内满足李普希茨条件
,也称为李普希茨连续
使得公式(1)成立的最小值称为李普希茨常数
,其值与具体的函数有关
如果,则称函数为压缩映射
几何意义
在任意两点,处函数割线斜率的绝对值均不大于
在任一点处,曲线均夹在直线与之间,如图所示
向右上倾斜的直线与想做上倾斜的直线分别为与
例子
一次函数在内是李普希茨连续,因为对于任意的和都有
因此该函数李普希茨连续且李普希茨常数为
二次函数在内不是李普希茨连续,因为对于内任意的和都有
显然不存在常数使得任意和都满足,因此该函数不是李普希茨连续
函数在区间内李普希茨连续
对于区间内任意的和都有
区间内不是李普希茨连续,对于该区间内任意的和都有
当时,不存在常数满足
机器学习中的意义
李普希茨连续要求函数在区间上不能有超过线性的变化速度,对于分析和确保机器学习算法的稳定性有重要的作用
无穷小量
考虑函数极限值为的情况
定义
: 如果函数在的某去心领域内,有定义且
则称为的无穷小量
虽然它们的极值均为0,但它们之间比值的极限却有几种情况
高阶无穷小
: ,该比值也是无穷小量,例如同阶无穷小
(等价无穷小
): ,比值的极限为非$0$的有界变量,例如低阶无穷小
: ,比值的极限为无界变量(称为无穷大量
),例如
其中高阶无穷小
记为,等价无穷小
记为
直观来看这些比值反映了无穷小接近于0时的变化速度快慢
典型的等价无穷小()
等价无穷小在计算极限时起着重要的作用
导数与微分
导数是微分学中的核心概念,它决定了可导函数的基本性质,包括单调性、极值与凹凸性。
在机器学习中,绝大多数算法可以归纳为求解最优化的问题,对于连续型优化问题在求解时一般需要使用导数
一阶导数
定义
导数定义
函数的自变量变化值趋向于时,函数值的变化量与自变量变化量比值的极限,在点处的导数
为
如果式(1)的极限存在,则称函数在点$x$处可导
除了用表示之外,导数也可写成,即上面的定义也可以写成另一种形式
左右导数
类似于极限,导数也可分为左导数
和右导数
左导数是从左侧趋向于时的极限
右导数为自变量从右侧趋向于时的极限
函数可导的
充分必要
条件是左右导数均存在且相等,其必要
条件是函数连续
如果导数不存在,则称函数不可导
几何和物理意义
几何意义
函数在定义域 内所有点处的导数值构成的函数称为导函数
,简称函数
导数的几何意义是函数在点处切线的斜率,反映了函数值在此点处变化的快慢
函数在处,根据导数的定义有
因此在该点处的切线斜率为,由于切线经过,因此切线的方程为,即,下图为该曲线和对应的切线
物理意义
导数典型的物理意义
是瞬时速度
差分公式
单侧差分公式
如果的值接近于,则在点处的导数可以用下面的公式近似计算
称为单侧差分公式
中心差分公式
根据导数的定义有
其中为接近于的正数,这称为中心差分公式
,用于数值计算导数值,因此可用下面的公式近似计算点处的一阶导数值
基本函数的求导
下表)列出了各种基本初等函数的求导公式
基本函数 | 求导公式 |
---|---|
幂函数 | |
指数函数 | |
指数函数 | |
三角函数 | |
三角函数 | |
三角函数 | |
三角函数 | |
对数函数 | |
反三角函数 | |
反三角函数 | |
反三角函数 |
证明
四则运算的求导公式
基本运算 | 求导公式 |
---|---|
加法 | |
减法 | |
数乘 | |
乘法 | |
除法 | |
倒数 |
机器学习中常用的函数
logistic函数可用作神经网络的激活函数
softplus函数,可看作是函数Relu即$max(0,x)$的光滑近似,该函数的导数为logistic函数
函数的导数为:
Relu函数可用作神经网络的激活函数,在$0$处该函数不可导,在该点处左导数为0,右导数为1
去掉0点,该函数的导数为:
绝对值函数,在$0$点处改函数不可导,左导数为-1,右导数为1,去掉该点,此函数的导数为
绝对值函数常用于构造机器学习算法训练目标函数的正则化项
sgn符号函数,在$0$点处不连续,因此不可导,去掉该点,此函数在所有点处的导数均为0
符号函数常用于分类器的预测函数,表示二值化的分类结果,在支持向量机、logstic回归中都被使用
如果一个函数所有不可导点的集合为有限集或无限可数集,则称该函数几乎处处可导,本节中的绝对值函数、Relu函数、符号函数均是几乎处处可导的函数,处处可导保证了在训练时能够使用梯度下降法求解函数的极值
高阶导数
定义
对导数连续求导可以得到高阶导数,二阶导数的是一阶导数的导数,记为
n阶导数记为
计算$f(x) = x^{m}$的n阶导数
其一阶导数为$f’(x) = mx^{m-1}$,二阶导数为$f’’(x) = m(m-1)x^{m-2}$,以此类推,n阶导数为
如果$m=n$,则$f^{(n)}(x) = n!$
计算$f(x) = \frac {1}{1-x}$的n阶导数
计算$f(x) = ln(1+x)$的n阶导数
计算$f(x) = e^x$的n阶导数
计算f(x)= sin(x)的n阶导数
根据此规律有
类似地,对于余弦函数$f(x)=cos(x)$有
二阶导数的物理意义是加速度
,如果$f(t)$为位移函数,其二阶导数为$t$时刻的加速度
其中$a(t)$为$t$时刻的加速度,$v(t)$为$t$时刻的速度
在python语言中,sympy
库提供了求导的功能
1 | from sympy import * |
微分
函数$y=f(x)$在某一区间上有定义,对于区间内的点$x_0$,当$x$变为$x_0 + \Delta x$时,如果函数的增量$\Delta y = f(x_0 + \Delta)-f(x_0)$可以表示成
其中$A$是不依赖于$\Delta x$的常数,$o(\Delta x)$是$\Delta x$的高阶无穷小
,则称函数在$x_0$处可微
$A \Delta x$称为函数在$x_0$处的微分,记为$dy$,即$dy = A \Delta x$,$dy$为$\Delta y$的线性主部
通常把$\Delta x$称为自变量的微分,记为$dx$,如果函数可微,则导数和微分的关系为$dy = f(x)dx$
微分的几何意义是在点$(x_0, f(x_0))$处自变量增加$\Delta x$时切线函数$y = f’(x_0)(x-x_0)+f(x_0)$
举例说明微分的计算,对于函数$y=sin(x^2)$
其导数为$y’ = 2x \cdot cos(x^2)$,于是可以得到其微分为$dy = 2x \cdot cos(x^2) dx$
考虑下复合函数的微分,对于复合函数$z = f(y), y=g(x)$
根据复合函数求导公式有$\frac{dz}{dx}=f’(y)g’(x)$,因此其微分为$dz = f’(y)g’(x)dx$
由于有$dy = g’(x)dx$,因为也可以写成$dz = f’(y)dy$
导数与函数的单调性
导数决定了可导函数的重要性质,包括单调性与极值,是研究函数性质的有力工具,由于导数是函数变化率的极限
因此如果在$x$点处它的值为正,则在该点处自变量增大时函数值也增大,如果为负,则自变量增大时函数值减小
假设函数$f(x)$在区间$[a,b]$内连续,在区间$(a,b)$内可导。如果在$(a,b)$内$f’(x) \gt 0$,则函数在$[a,b]$内单调递增;如果在$(a,b)$内$f’(x) \t 0$,则函数在$[a,b]$内单调递减,可以通过拉格朗日中值定理证明
对于函数$f(x) = x^3 + 4x^2 -10x +1$
其一阶导数为$f’(x) = 3x^2 +8x -10$,方程$f’(x)=0$的根为$x = \frac{-8 \pm \sqrt{64+120}}{6} = \frac{-4 \pm \sqrt{46}}{3}$
- 在区间$(- \infty , \frac{-4-\sqrt{46}}{3} )$内$f’(x) \gt 0$,函数单调递增
- 在区间$(\frac{-4-\sqrt{46}}{3} , \frac{-4+\sqrt{46}}{3} )$内$f’(x) \lt 0$,函数单调递减
- 在区间$(\frac{-4+\sqrt{46}}{3} , +\infty )$内$f’(x) \gt 0$,函数单调递增
因此在$x= \frac{-4-\sqrt{46}}{3}$处函数有极大值,在$ x = \frac{-4+\sqrt{46}}{3}$处函数有极小值,函数的曲线为
利用导数可以证明某些不等式,其思路是证明函数在某一区间内单调,因此在区间的端点处取得极值
证明当$x>0$时不等式$ln(x) \le x-1 $成立
构造函数$f(x) = x-1-ln(x)$,其导数为$f’(x) = 1- \frac{1}{x}$
- 当$x \lt 1$时有$f’(x) \lt 0$,函数单调递减
- 当$x \gt 1$时有$f’(x) \gt 0$,函数单调递增
1是函数的极小值点,且$f(1)=0$,因此不等式成立
极值判别法则
极值定义,这里指的是局部极值
函数$f(x)$在区间$I$内有定义,$x_0$是该区间内的一个点
- 如果存在$x_0$的一个$\delta $领域,对于该领域内任意一点$x$都有$f(x_0) \ge f(x)$,则称$x_0$是该函数的
极大值
- 如果领域内任意一点$x$都有$f(x_0) \le f(x)$,则称$x_0$是该函数的
极小值
极大值和极小值统称为极值
- 如果存在$x_0$的一个$\delta $领域,对于该领域内任意一点$x$都有$f(x_0) \gt f(x)$,则称$x_0$是该函数的
严格极大值
- 如果领域内任意一点$x$都有$f(x_0) \lt f(x)$,则称$x_0$是该函数的
严格极小值
费马定理
假设函数$f(x)$在$x_0$点处可导,如果在$x_0$点处取得极值,则定有$f’(x) = 0$,这一结论称为费马定理,它给出了可导函数取极值的一阶必要条件
导数等于0的点称为函数的驻点
(Stationary Point)
最优化算法一般通过寻找函数的驻点而求解函数的极值问题,导数为0是函数取得极值的必要条件而非充分条件
下面给出在费马定理下的函数取极值的充分条件,假设函数$f(x)$在$x_0$点的一个领域内可导,且有$f’(x) = 0$,考察在$x_0$去心领域内的函数值符号,有三种情况
- 在$x_0$的左侧$f’(x) \gt 0$,在$x_0$的右侧$f’(x) \lt 0$,则函数在$x_0$取严格极大值
- 在$x_0$的左侧$f’(x) \lt 0$,在$x_0$的右侧$f’(x) \gt 0$,则函数在$x_0$取严格极小值
- 在$x_0$的左侧和右侧$f’(x)$同号,则$x_0$不是极值点
对于第一种情况,函数在$x_0$的左侧单调增,在右侧单递减,因此$x_0$是极大值点;对于第二种情况,函数在$x_0$的左侧单递减,在右侧单递增,因此$x_0$是极小值点;对于第三种情况,函数在$x_0$的两侧均单调增或者单调减,因此$x_0$不是极值点
根据此结论,求函数的极值点的方法首先是求解方程$f’(x)=0$得到函数的所有驻点,然后判断驻点两侧一阶导数值的符号
利用二阶导数的信息给出函数极值的充分条件,假设$x_0$为函数的驻点,且在该点处二阶可导,对于驻点处二阶导数的符号,可分为三种情况
- $f’’(x) \gt 0$,则$x_0$为函数$f(x)$的严格极小值点
- $f’’(x) \lt 0$,则$x_0$为函数$f(x)$的严格极大值点
- $f’’(x) = 0$,则不定,$x_0$可能是极值点也可能不是极值点,需进一步讨论
情况一:如果n是偶数,则$x_0$是极值点,当$f^{(n)}{x_0} \gt 0$是$f(x)$de 严格极小值点,当$f^{(n)}{x_0} \lt 0$是$f(x)$de 严格极大值点
情况二:如果n是技术,则$x_0$不是$f(x)$的极值点
该充分条件可以用泰勒公式证明
例子
考虑函数$f(x)=x^2$
其一阶导数为$f’(x)=2x$,令$f’(x)=0$可以解得其驻点为$x=0$,由于$f’’(x)=2 \gt 0$,该点是函数的极小值点
对于函数$f(x) = -x^2$
其一阶导数为$f’(x) = -2x $,令$f’(x)=0$可以解得其驻点为$x=0$,由于$f’’(x)=-2 \lt 0$,该点是函数的极大值点
对于函数$f(x)=x^3$
其一阶导数为$f’(x)=3x^2$,令$f’(x)=0$可以解得其驻点为$x=0$
其二阶导数为$f’’(x)=6x$
其三阶导数为$f^{(3)}(x)=6$
由于$f’’(0)=0$,$f^{(3)}(0)=6$,因此该点不是极值点
最后一种情况称为鞍点
,会导致数值优化算法,如梯度下降无法找到真正的极值点
导数与函数的凹凸性
凹凸性是函数的另一个重要性质,它与单调性共同决定了函数曲线的形状
对于函数$f(x)$在它的定义域内有两点$x$、$y$,如果对于任意的实数$ 0 \le \theta \le 1$都满足如下不等式
即函数为凸函数
,从图像上看,如果函数为凸函数,那么它是向下凸的,用直线连接函数上任何两点(即两点的割线),线段上的点都在函数曲线的上方,如图所示
如果满足不等式
则称为凹函数
,需要强调的是,这里遵循的是欧美国家的定义,与国内某些高等数学教材定义刚好相反
证明凸函数定义
对于$ \forall x,y $以及$ 0 \le \theta \le 1$有
显然有
因此有
如果把式中的等号去掉,则称函数式严格凸函数
,类似的可以定义严格凹函数
二阶可导函数是凸函数和凹函数的充分必要条件
假设$f(x)$在区间$[a,b]$内连续,在区间$(a,b)$内一阶导数和二阶导数均存在
- 如果在$(a,b)$内$f’’(x) \ge 0$,则称函数在$[a,b]$内为凸函数
- 如果在$(a,b)$内$f’’(x) \le 0$,则称函数在$[a,b]$内为凹函数
- 如果在$(a,b)$内$f’’(x) > 0$,则称函数在$[a,b]$内为严格凸函数
- 如果在$(a,b)$内$f’’(x) < 0$,则称函数在$[a,b]$内为严格凹函数
拐点
函数凹凸性的分界点称为拐点
,如果函数二阶可导,则在拐点处有$f’’(x)=0$,且在拐点处两侧二阶导数值异号
对于函数$f(x)=x^3$,其二阶导数为$6x$,$0$点处二阶导数值为$0$,且在$0$点两侧的二阶导数值异号,因此$0$为其拐点
凸函数有良好的的性质,可以保证优化算法找到函数的极小值点