机器学习中的数学——数值计算和凸优化

数值计算

1.上溢和下溢

连续数学在计算机上的根本困难是通常需要用优先的位模式表示无限多的实数。实数表示中会引入近似误差,大多数近似误差是舍入误差,若不考虑舍入误差的累积,可能会导致算法失效。

下溢:接近零的数被四舍五入为零时发生下溢。许多函数在参数为零而不是一个很小的正数时表现出质的不同。

上溢:大量级的数被近似为 \infty -\infty ,进一步的元素导致无限值变为非数字。

解决方法:利用softmax函数。
s o f t m a x ( x ) i = e x p ( x i ) j = 1 n e x p ( x j ) softmax(\boldsymbol x)_i=\dfrac{exp(x_i)}{\sum_{j=1}^nexp(x_j)}
假设输入向量是 x \boldsymbol x ,令 z = x m a x i x i \boldsymbol z=\boldsymbol x-max_i x_i

softmax函数的解析值不会因为从输入值减去或加上标量值而改变。

2.病态条件

条件数是指函数相对于输入的微小变化而变化的快慢程度。

K ( A ) = A A 1 K(\boldsymbol A)=\Vert\boldsymbol A\Vert \cdot \Vert\boldsymbol A^{-1}\Vert
一般来说,方程组解集的精度大概是 l o g 10 K ( A ) log_{10} K(\boldsymbol A) 个十进制位的误差。

考虑函数 f ( x ) = A 1 x f(\boldsymbol x)=\boldsymbol A^{-1}\boldsymbol x 。当 A R n × n \boldsymbol A \in \mathbb R^{n \times n} 具有特征值分解时,其条件数为

m a x i , j λ i λ j max_{i,j}\left| \dfrac{\lambda_i}{\lambda_j} \right|

当该值很大时,矩阵求逆对输入的误差很敏感。

病态是线性方程组中系数矩阵列向量线性相关性过大,表示的特征过于相似。

病态矩阵的处理方法
病态矩阵解集的不稳定性由于解集空间包含自由度过大的方向。病态矩阵的特征向量不一定正交,不适合做新基,SVD分解分解出正交基。即将解集限制在一组正交基空间内。

3.优化

优化指的是改变 x \boldsymbol x 以最小化或最大化某个函数 f ( x ) f(\boldsymbol x) 的任务。

Jacobian矩阵:输入和输出都是向量的函数的所有偏导数。矩阵 J R n × n \boldsymbol J \in \mathbb R^{n \times n} 定义为 J i , j =   x j f ( x ) i J_{i,j}=\dfrac{\partial}{\partial\, x_j}f(\boldsymbol x)_i

Hessian矩阵 H f ( x ) \boldsymbol H_f(\boldsymbol x) 定义为
H f ( x ) = 2   x i   x j f ( x ) \boldsymbol H_f(\boldsymbol x)=\dfrac{\partial^2}{\partial\, x_i\partial\, x_j}f(\boldsymbol x)
Hessian矩阵是实对称的,因此可以分解为一组实特征值和一组特征向量的正交基。

在特定方向 d \boldsymbol d 上的二阶导数可以写成 d T H d \boldsymbol d^T\boldsymbol H\boldsymbol d 。当 d \boldsymbol d H \boldsymbol H 的一个特征向量时,这个方向的二阶导数是对应的特征值;对于其他方向 d \boldsymbol d ,方向二阶导数的所有特征值的加权平均,权重在0和1之间,且与夹角越小的特征向量的权重越大。

当最优化的函数能用二次函数很好近似的情况下,Hessian决定学习率的量级。

函数变量大于1时,鞍点不一定具有0特征值,仅需要同时具有正特征值和负特征值。

牛顿法基于泰勒展开近似 f ( x ) f(\boldsymbol x)

一阶泰勒展开的牛顿法

f ( x ) = f ( x 0 ) + x f ( x 0 ) ( x x 0 ) x n + 1 = x n f ( x n ) f ( x n ) f(x)=f(x_0)+\nabla_xf(x_0)(x-x_0) \\ x_{n+1}=x_n-\dfrac{f^`(x_n)}{f(x_n)}
二阶泰勒展开的牛顿法
f ( x ) = f ( x 0 ) + f ( x 0 ) ( x x 0 ) + 1 2 f ( x 0 ) ( x x 0 ) 2 x = x 0 f ( x 0 ) f ( x n ) f(x)=f(x_0)+f'(x_0)(x-x_0)+\dfrac{1}{2}f''(x_0)(x-x_0)^2\\ x^*=x_0-\dfrac{f^`(x_0)}{f''(x_n)}

若目标函数是正定二次函数,牛顿法能一次得到函数的最小点;若目标函数不是真正二次但在局部近似为正定二次,多次使用牛顿法,迭代更新近似函数会比梯度下降法更快找到最小点。

Lipschitz连续:限制函数满足Lipschitz连续允许量化我们的假设——梯度下降算法导致的输入的微小变化将使输出只产生微小的变化。
x , y , f ( x ) f ( y ) L x y 2 \forall x,\forall y,|f(x)-f(y)|\leq\mathcal L\Vert x-y\Vert_2

4.凸优化基础

矩阵理论:矩阵为多元问题分析和求解提供了基本的数据结构,为并行计算提供理论基础;

数值分析:导数和微分为多元问题分析和求解提供基本的数学方法和理论基础;

4.1 最优化的数学描述

最优化问题的描述:

min x R n f ( x ) s . t . { h i ( x ) = 0 g j ( x ) 0 \min_{x\in \Bbb R^n} f(x) \\ s.t. \Biggl\{ \begin{matrix} h_i(x)=0 \\ g_j(x) \le0 \end{matrix}
f ( x ) f(x) 是目标函数; h ( x ) h(x) 是等式约束; g ( x ) g(x) 是不等式约束;

分类

f ( x ) f(x) 是线性函数,则被称之为线性规划;

f ( x ) f(x) 是非线性函数,则被称之为非线性规划;

f ( x ) f(x) 是凸函数,则被称之为凸优化;

f ( x ) f(x) 是二次函数(二次型),约束为线性函数,则被称之为二次规划;

f ( x ) f(x) 是向量函数,则被称之为多目标规划;

4.2 凸集与分离定理

设A是线性空间X中间的子集, x , y X x,y \in X ,集合 { λ x + ( 1 λ ) y : 0 λ 1 } \{ \lambda x+(1-\lambda)y:0 \le \lambda \le 1\} 称为联结x,y两点的线段;若对 x , y A \forall x,y \in A ,则称A为X的凸集;而集 { x = k = 1 n λ k x k : λ k 0 , k = 1 n λ k = 1 } \{ x=\sum_{k=1}^n \lambda_kx_k:\lambda_k \ge0,\sum_{k=1}^n\lambda_k=1\}
称为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n 的凸组合;

4.2.1 凸集的几何意义

x , y S ( 0 , r ) x,y \in S(0,r) ,即 x = y = r \Vert x \Vert = \Vert y \Vert =r ,则联结x,y线段中点 ( x + y ) / 2 B ( 0 , r ) (x+y)/2 \in B(0,r) ;即若x,y在同一球面,则线段 [ x , y ] [x,y] 的中点位于该球体的内部。

4.2.2 超平面

设X为实数域 R \Bbb R 上的线性空间, f f 是X上的实值泛函,则

L f ( α ) = { x X : f ( x ) = α , α R } L_f(\alpha)=\{x \in X:f(x)=\alpha,\alpha \in R\}
则称X中的超平面;

4.2.3 支撑超平面

设S是拓扑向量空间: X = R n X=\Bbb R^n 的凸集,且 x 0 x_0 是S的边界的一个点,则存在一个包含 x 0 x_0 ,则存在一个包含 x 0 x_0 的支撑超平面
;若 x X x^* \in X^* ,其中 X X^* X X 的对偶空间, x x^* 是非零线性泛函,对于所有的 x S x \in S ,存在 x ( x 0 ) x ( x ) x^*(x_0) \ge x^*(x) ,则有
H = { x X : x ( x ) = x ( x 0 ) } H=\{ x \in X:x^*(x)=x^*(x_0)\}
被定义为支撑超平面;

4.2.4 凸集分离定理

R n \Bbb R^n 中的两个非空的凸集A和B;存在非零向量v和实数c,使得

x , v c \langle x,v \rangle \ge c y , v c \langle y,v \rangle \le c x A , y B \forall x \in A,y \in B 则称超平面 x , = c \langle x,\bullet \rangle =c 分离A和B;

凸集分离定理的意义在于:为分类问题提供理论支持;将带有类别标签的训练集看作不同的凸集;而分隔的超平面就是分类器;目标是根据训练集的特性,找到分类算法,通过学习或训练并计算凸集的超平面达到分类的目的;

4.3 凸函数

凸函数是凸集中元素的数学特征表示,体现凸集元素呈现的规律性;被定义为某个向量空间的凸子集 C C 的实值函数 f f ,若在定义 C C 上的任意两点 x 1 , x 2 x_1,x_2 ,及 α [ 0 , 1 ] \alpha \in [0,1] ,均有
f ( α x 1 + ( 1 α ) x 2 ) α f ( x 1 ) + ( 1 α ) f ( x 2 ) f(\alpha x_1+(1-\alpha)x_2) \le \alpha f(x_1)+(1-\alpha)f(x_2)

4.3.1 凸函数的判定

1、设 f 1 , f 2 , . . . , f k f_1,f_2,...,f_k 是凸集 S S 上的凸函数,令 ϕ ( x ) = i = 1 k λ i f i ( x ) \phi(x)=\sum_{i=1}^k \lambda_i f_i(x) ,其中 λ i 0 \forall \lambda_i \ge 0 ,则 ψ ( x ) = max 1 i k f i ( x ) \psi(x)=\max_{1\le i \le k} f_i(x) ϕ ( x ) \phi(x) 都是 S S 上的凸函数;

2、设在凸集 D R n D \subset \Bbb R^n f ( x ) f(x) 可微,则 f ( x ) f(x) D D 上的凸函数的充要条件是对于任意的 x , y D x,y \in D ,都有
f ( y ) f ( x ) + f ( x ) T ( y x ) f(y) \ge f(x)+\nabla f(x)^T (y-x)
2.1设在开凸集 D R n D \subset \Bbb R^n f ( x ) f(x) 二阶可微,则 f ( x ) f(x) D D 上的为凸函数的充要条件是对于任意的 x D x \in D f ( x ) f(x) 的Hessian矩阵半正定:
G ( x ) = 2 f ( x ) = [ 2 f x 1 2 2 f x 1 x n 2 f x n x 1 2 f x n 2 ] G(x)=\nabla^2 f(x) =\left[ \begin{matrix} \dfrac{\partial^2 f}{\partial x_{1}^2} & \cdots & \dfrac{\partial^2 f}{\partial x_1 x_n} \\ \vdots & \ddots & \vdots \\ \dfrac{\partial^2 f}{\partial x_{n}x_1} & \cdots & \dfrac{\partial^2 f}{\partial x_n^2} \\ \end{matrix} \right]

4.3.2 凸函数的性质

\bullet 任一局部极小(大)点也是全局极小(大)值点,且全局极小(大)值点的集合为凸集;

\bullet 任一局部最优解都是整体最优解;

最优化理论中,局部最优解被称为满意解,全局最优解称为最优解;特定问题可以使用模拟退火,隐马尔可夫链算法等随机优化方法求解;

4.4 共轭函数

4.4.1 定义

对于原函数 f ( x ) , x D f(x),x \in D ,其共轭函数为
f ( y ) = sup x D ( y , x f ( x ) ) f^*(y)=\sup_{x \in D}(\langle y,x \rangle-f(x))
其中, y , x \langle y,x \rangle 表示两个变量的内积:

\bullet 对于标量: y , x = y x \langle y,x \rangle =y\bullet x

\bullet 对于向量:` y , x = y T x \langle y,x \rangle =y^T x

\bullet 对于 n × n n \times n 对称矩阵: y , x = t r ( y x ) \langle y,x \rangle =tr(y\bullet x)
特别注意:共轭函数的定义域要求对 x D , y , x f ( x ) x \in D,\langle y,x \rangle -f(x) 有上界,即 f ( y ) f^*(y) 不能无穷大;

4.4.2 物理意义

对于共轭函数的每个自变量,其取值相当于直线与原函数之差的最大值:
f ( y ˉ ) = sup x D ( l ( x ) f ( x ) ) f^*(\bar y)=\sup_{x\in D} (l(x)-f(x))
直线定义为 l ( x ) = y ˉ , x l(x)=\langle \bar y,x\rangle ,斜率由 y ˉ \bar y 决定;

其最大值可以通过对曲线函数 ( y , x ) x = 0 \dfrac{\partial(\langle y,x \rangle)}{\partial x}=0 求导求得,找到对应最大的 x x ,因为共轭函数的定义是上确界,因此求解最大值,带入共轭函数中,求解即可;

4.4.3 共轭函数的性质

1、共轭函数是凸函数;

2、若 g g f f 的凸闭包,那么 g = f g^*=f^* ;

3、 f ( x ) + f ( y ) x T y f(x)+f^*(y) \ge x^Ty

4、若 f f 是凸函数且可微,那么
f ( y ) = x T f ( x ) f ( x ) f^*(y)=x*T\nabla f(x^*)-f(x^*)
其中 x x^* 满足 f ( x ) = y \nabla f(x^*)=y

4、若 g ( x ) = f ( A x + b ) g(x)=f(Ax+b) ,则 g ( y ) = f ( A T y ) b T A T y g^*(y)=f^*(A^{-T}y)-b^TA^{-T}y

5、若 f ( u , v ) = f 1 ( u ) + f 2 ( v ) f(u,v)=f_1(u)+f_2(v) ,那么 f ( w , z ) = f 1 ( w ) + f 2 ( z ) f^*(w,z)=f^*_1(w)+f^*_2(z)

4.5 拉格朗日求解对偶问题

4.5.1 拉格朗日对偶函数

考虑标准形式的优化问题:
min f 0 ( x ) s . t . f i ( x ) 0 , i = 1 , . . . , n h i ( x ) = 0 , i = 1 , . . . , n \min {f_0(x)} \\ s.t. f_i(x) \le 0,i=1,...,n \\ h_i(x)=0 ,i=1,...,n
其中,自变量 x R x \in R 。设问题的定义域 D = i = 0 m d o m f i i = 1 p d o m h i D=\bigcap_{i=0}^m dom f_i \cap \bigcap_{i=1}^p dom h_i 是非空集合,优化问题的最优值为 p p^* ;这里并未假设上述问题中的目标函数是凸函数;

拉格朗日对偶的基本思想是在目标函数中考虑上述问题的约束条件,添加约束条件的加权和,得到增广的目标函数,即:
L ( x , λ , v ) = f 0 ( x ) + i = 1 m λ i f i ( x ) + i = 1 p v i h i ( x ) L(x,\lambda,v)=f_0(x)+\sum_{i=1}^m \lambda_if_i(x)+\sum_{i=1}^p v_ih_i(x)
其中,定义域为 d o m L = D × R m × R p dom L=D \times R^m \times R^p λ i \lambda_i 称为第 i i 个不等式约束 f i ( x ) 0 f_i(x) \le 0 对应的拉格朗日乘子;类似的, v i v_i 称为第 i i 个等式约束 h i ( x ) = 0 h_i(x)=0 对应的拉格朗日乘子,向量 λ \lambda v v 称为对偶变量的拉格朗日乘子向量;

拉格朗日对偶函数:为拉格朗日函数关于 x x 取得的最小值;若拉格朗日函数关于 x x 无下界,则对偶函数的取值为 -\infty ;对偶函数是一族关于 ( λ , v ) (\lambda,v) 的仿射函数的逐点下确界,即使原问题不是凸的,对偶函数也是凹函数;

最优值下界:对偶函数构成原问题最优值 p p^* 的下界;对于任意的 λ 0 \lambda \ge 0 v v 下式成立:
g ( λ , v ) p g(\lambda,v) \le p^*

4.5.2弱对偶性

拉格朗日对偶问题的最优值用 d d^* 表示,是根据拉格朗日函数得到原问题最优解 p p^* 的最好下界;

d p d^*\le p^*
即使原问题不是凸问题,上式依旧成立;

差值 p d p^*-d^* 就是原问题的最优对偶间隙,这阐释原问题最优值以及通过拉格朗日对偶函数所得到最好的下界之间的差值;

原问题很难求解时弱对偶不等式给出原问题最优值的下界:对偶问题总是凸问题,可以通过有效的求解得到 d d^*

4.5.3 强对偶条件和Slater约束准则

等式
d = p d^*=p^*
成立,即最优对偶间隙为0,则强对偶性成立;

一般情况下,强对偶性不成立,但若原问题是凸问题,强对偶性通常(但不总是)成立;

约束准则:强对偶性成立的条件
Slater约束准则:存在一点 x r e l i n t D x \in relint D 使得下式成立
f i ( x ) 0 , i = 1 , . . . , m A x = b f_i(x)\le 0,i=1,...,m \quad Ax=b
当Slater条件成立,且原问题是凸问题时,强对偶性成立;

4.6 KKT条件

假设函数 f 0 , f 1 , . . . , f m , h 1 , . . . , h p f_0,f_1,...,f_m,h_1,...,h_p 可微(定义域是开集)

4.6.1 非凸问题的KKT条件

x x^* ( λ , v ) (\lambda^*,v^*) 分别是原问题和对偶问题的某对最优解,对偶间隙为0;因为 L ( x , λ , v ) L(x,\lambda^*,v^*) 关于 x x 求极小在 x x^* 处取得最小值,函数在 x x^* 处的导数必须为0,即
f 0 ( x ) + i = 1 m λ i f i ( x ) + i = 1 p v i h i ( x ) = 0 \nabla f_0(x^*)+\sum_{i=1}^m \lambda^*_i\nabla f_i^*(x^*)+\sum_{i=1}^p v^*_i \nabla h_i(x^*)=0
因此,我们有
f i ( x ) 0 , i = 1 , . . . , m h i ( x ) = 0 , i = 1 , . . . , m λ i 0 , i = 1 , . . . , m λ i f i ( x ) = 0 , i = 1 , . . . , m f 0 ( x ) + i = 1 m λ i f i ( x ) + i = 1 p v i h i ( x ) = 0 f_i(x^*)\le 0, \quad i=1,...,m \\ h_i(x^*)= 0, \quad i=1,...,m \\ \lambda^*_i\ge 0, \qquad i=1,...,m\\ \lambda^*_i f_i(x^*)= 0, \quad i=1,...,m\\ \nabla f_0(x^*)+\sum_{i=1}^m \lambda^*_i\nabla f_i^*(x^*)+\sum_{i=1}^p v^*_i \nabla h_i(x^*)=0

目标函数和约束函数可微的任意优化问题,若强对偶性成立,则任一对原问题和对偶问题最优解必满足KKTY条件;

4.6.2 凸问题的KKT条件

原问题是凸问题时,满足KKT条件的点也是原、对偶问题最优解;若函数 f i ( x ) f_i(x) 是凸函数, h i ( x ) h_i(x) 是仿射函数, x ^ , λ ^ , v ^ \hat x,\hat \lambda,\hat v 是任意满足KKT条件的点
f i ( x ^ ) 0 , i = 1 , . . . , m h i ( x ^ ) = 0 , i = 1 , . . . , m λ i 0 , i = 1 , . . . , m λ i f i ( x ^ ) = 0 , i = 1 , . . . , m f 0 ( x ^ ) + i = 1 m λ i f i ( x ^ ) + i = 1 p v i h i ( x ^ ) = 0 f_i(\hat x)\le 0, \quad i=1,...,m\\ h_i(\hat x)= 0, \quad i=1,...,m\\ \lambda^*_i\ge 0, \qquad i=1,...,m\\ \lambda^*_i f_i(\hat x)= 0, \quad i=1,...,m\\ \nabla f_0(\hat x)+\sum_{i=1}^m \lambda^*_i\nabla f_i^*(\hat x)+\sum_{i=1}^p v^*_i \nabla h_i(\hat x)=0
x ^ \hat x ( λ ^ , v ^ ) (\hat \lambda,\hat v) 分别是原问题和对偶问题的某对最优解,对偶间隙为0

若某个凸优化问题具有可微的目标函数和约束函数,且满足Slater条件,那么KKT条件时最优性的充要条件:Slater条件意味着最优对偶间隙为零且对偶最优解可以达到,因此 x x 是原问题的最优解,当且仅当存在 ( λ , v ) (\lambda,v) ,二者满足KKT条件;

4.7 计算复杂性NP难问题

衡量算法的重要指标:时间复杂度和空间复杂度;同时考虑算法的确定性和非确定性的概念;自动机——基于状态变化进行迭代的算法(玻尔兹曼机和支持向量机);

确定性是指根据当时的状态和算法的输入,自动机的状态转移是确定的,唯一的;

若自动机的每一时刻有多个状态可供选择,并尝试执行每个可选择状态;则称之为非确定性;

P类问题:能够以多项式时间的确定性算法对问题进行求解和判定,实现的算法的每一个运行时状态是唯一的,最终能够唯一确定的结果——最优解;

NP类问题:用多项式时间的非确定算法对问题进行求解和判定;

NP完全问题:任何一个问题没有找到多项式时间的算法

4.8凸优化的应用

\bullet 凸优化问题逼近非凸优化问题,寻找非凸优化问题的初始点;

\bullet 利用对偶问题的凸性给原问题提供下界估计;

\bullet 给非凸优化问题带来一些启发;

猜你喜欢

转载自blog.csdn.net/a_marker/article/details/88073129