引用
Preliminaries
先要了解一下术语及前导知识。
目标/代价/损失/误差函数
- 我们称需要最大化或最小化的函数为目标函数(Objective Function)或准则(Criterion)。特别地,当进行最小化搜索时,也将其称为代价函数(Cost Function)、损失函数(Loss Function)、误差函数(Error Function)。
min x f ( x ) \min \limits_x f(x) xminf(x)
在工程优化中,常见称为目标函数地情况多些。在机器学习中,由于优化目标常常是目标真实值和预测值间的偏差,所以称呼为代价函数、损失函数的情况多一些。
- 在数域 X X X上搜索得到一个 x ^ \hat x x^,使得目标函数目标函数取得最小/大值的过程称为参数搜索。
- 我们将搜索得到的能使目标函数取得最小/大值的参数估计值 x x x称为最优参数估计值,记为 x ∗ x^* x∗。
- 对于大部分函数及优化、搜索算法,并不能保证得到一个全局最优的参数估计值,此时称之为极大/极小点。
局部最优、全局最优与驻点、鞍点
-
在搜索过程中获得一个最优值 x 0 x_0 x0时,使得当 f ( x 0 ) f(x_0) f(x0)取得全局最小值时,该解 x 0 x_0 x0为全局最优解;反之,其为局部最优解。
-
凸函数的局部最优值就是全局最优值,局部最优解属于全局最优解集。
-
对于一个 n n n维的目标函数 f ( x ) f(x) f(x),对于 x 0 ∈ X n x_0 \in X^n x0∈Xn当此处的偏导数 f ′ ( x 0 ) = 0 f'(x_0)=0 f′(x0)=0,且此时 f ( x 0 ) f(x_0) f(x0)为一个局部极大/极小小值,称该点为一个驻点或临界点;若此时 f ( x 0 ) f(x_0) f(x0)在某个维度上稳定(极大/极小),在其它至少一个维度上不稳定(仍有下降/上升空间),则其为鞍点。
驻点与鞍点的存在,都意味着对目标函数的参数搜索陷入了某种算法困境;因为无论朝任意哪个法向看去,其导数方向都为0,不可能再通过梯度下降等方式寻得更优值。对于此类困境,退火算法等智能算法进行了一定上的解决。
导数与偏导数、梯度
- 对于一维函数 f ( x ) f(x) f(x),其导数定义为:
f ′ ( x ) = lim Δ x → 0 f ( x 0 + Δ x ) − f ( x 0 ) Δ x f'(x)=\lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\small{\Delta} x)-f(x_0)}{\small{\Delta} x} f′(x)=Δx→0limΔxf(x0+Δx)−f(x0) - 对于多维函数 f ( x 1 , . . . , x n ) f(x_1,...,x_n) f(x1,...,xn),对 x i x_i xi求导数 d f d x i \frac{df}{dx_i} dxidf,将其记为偏导数 ∂ f ∂ x I \frac{\partial f}{\partial x_I} ∂xI∂f。特别的,记录梯度 ▽ f ( x ) \triangledown f(x) ▽f(x)或简记为 ▽ f \triangledown f ▽f为对 x i x_i xi求偏导后的列向量:
▽ f ( x ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x 1 ) T \triangledown f(x)=(\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2},..., \frac{\partial f}{\partial x_1})^T ▽f(x)=(∂x1∂f,∂x2∂f,...,∂x1∂f)T
常见函数的梯度与海森矩阵
给定向量 a a a、 b b b、 x x x,矩阵 A A A, H f ( x ) H_{f(x)} Hf(x)是函数 f ( x ) f(x) f(x)的海森矩阵:
g ( x ) = a T x + b → ▽ g ( x ) = a H g ( x ) = 0 g ( x ) = x T x → ▽ g ( x ) = 2 x H g ( x ) = 2 H f ( x ) g ( x ) = x T A x → ▽ g ( x ) = ( A + A T ) x H g ( x ) = ( A + A T ) H f ( x ) g ( x ) = x T A x + a T x + b → ▽ g ( x ) = ( A + A T ) x + a H g ( x ) = ( A + A T ) H f ( x ) \begin{aligned} g(x)=a^Tx+b \rightarrow \triangledown & g(x)=a\\ & H_{g(x)}=0 \\ g(x)=x^Tx \rightarrow \triangledown & g(x)=2x\\ & H_{g(x)}=2H_{f(x)} \\ g(x)=x^TAx \rightarrow \triangledown & g(x)=(A+A^T)x\\ & H_{g(x)}=(A+A^T)H_{f(x)} \\ g(x)=x^TAx+a^Tx+b \rightarrow \triangledown & g(x)=(A+A^T)x+a \\ & H_{g(x)}=(A+A^T)H_{f(x)} \end{aligned} g(x)=aTx+b→▽g(x)=xTx→▽g(x)=xTAx→▽g(x)=xTAx+aTx+b→▽g(x)=aHg(x)=0g(x)=2xHg(x)=2Hf(x)g(x)=(A+AT)xHg(x)=(A+AT)Hf(x)g(x)=(A+AT)x+aHg(x)=(A+AT)Hf(x)
方向导数与下降方向
- 设有 单位向量 h = ( h 1 , h 2 , . . . , h n ) T ∈ R n h=(h_1,h_2,...,h_n)^T\in \R^n h=(h1,h2,...,hn)T∈Rn,表示为 n n n维空间中的一个方向,对于 n n n元函数 f ( x ) f(x) f(x),若 lim Δ x → 0 f ( x 0 + α h ) − f ( x 0 ) α \lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\alpha h)-f(x_0)}{\alpha} Δx→0limαf(x0+αh)−f(x0)存在,则称该极限值为 f ( x ) f(x) f(x)在 x 0 x_0 x0处沿方向 h h h的方向导数,记作 ∂ f ( x 0 ) ∂ h \frac{\partial f(x_0)}{\partial h} ∂h∂f(x0)。如图所示:
根据导数的定义不难得到:
∂ f ( x 0 ) ∂ h = lim Δ x → 0 f ( x 0 + α h ) − f ( x 0 ) α = lim Δ x → 0 ▽ f ( x 0 ) T ( α h ) + o ( ∥ α h ∥ ) α = ▽ f ( x 0 ) T h = ∥ ▽ f ( x 0 ) ∥ cos ( ▽ f ( x 0 ) , h ) \begin{aligned} \frac{\partial f(x_0)}{\partial h} &= \lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\alpha h)-f(x_0)}{\alpha} \\ &= \lim \limits_{\Delta x \rightarrow 0} \frac{\triangledown f(x_0)^T (\alpha h)+o(\parallel \alpha h \parallel)}{\alpha} \\ &= \triangledown f(x_0)^T h \\ &= \parallel \triangledown f(x_0) \parallel \cos(\triangledown f(x_0), h) \end{aligned} ∂h∂f(x0)=Δx→0limαf(x0+αh)−f(x0)=Δx→0limα▽f(x0)T(αh)+o(∥αh∥)=▽f(x0)Th=∥▽f(x0)∥cos(▽f(x0),h) - 当 ∂ f ( x 0 ) ∂ h < 0 \frac{\partial f(x_0)}{\partial h}<0 ∂h∂f(x0)<0称 h h h为 f ( x ) f(x) f(x)在 x 0 x_0 x0处的一个下降方向;反之称为上升方向。
- 使得 ∂ f ( x 0 ) ∂ h < 0 \frac{\par