非线性优化技术简介

梯度和一阶泰勒展开式

假设 f(x)=f(x1,x2,x3,...,xn)f(x) = f(x_1, x_2, x_3,...,x_n)f(x)=f(x1,x2,x3,...,xn)是连续可导的,我们用一个(n x 1)向量表示f的梯度:
∇f(x)=(δf(x1)δx1;δf(x2)δx2;δf(x3)δx3;...;δf(xn)δxn)\nabla f(x) = \Big(\frac{\delta f(x_1)}{\delta x_1}; \frac{\delta f(x_2)}{\delta x_2};\frac{\delta f(x_3)}{\delta x_3}; ... ; \frac{\delta f(x_n)}{\delta x_n} \Big)f(x)=(δx1δf(x1);δx2δf(x2);δx3δf(x3);...;δxnδf(xn))

得到一阶泰勒展开式:
f(x+td)=f(x)+t∇f(x)Td+o(t)t→0f(x + td) = f(x) + t \nabla f(x)^\mathrm{T} d+ o(t) \quad t\rightarrow 0 f(x+td)=f(x)+tf(x)Td+o(t)t0

如果是f(x)f(x)f(x)两次可导的,f(x)f(x)f(x)的海森矩阵(相当于二次导数)为:
∇2f(x)=(δf(x)δxiδxj)i,j\nabla^2 f(x) = \Big(\frac{\delta f(x)}{\delta x_i \delta x_j}\Big)_{i,j} 2f(x)=(δxiδxjδf(x))i,j

通过二阶泰勒展开式,我们得到了:
f(x+td)=f(x)+t∇f(x)d+12t2dT∇2f(x)d+o(t2)t→0f(x+td) = f(x) +t \nabla f(x) d + \frac{1}{2}t^2d^T\nabla^2 f(x)d + o(t^2) \quad t \rightarrow 0f(x+td)=f(x)+tf(x)d+21t2dT2f(x)d+o(t2)t0

例子

f(x1,x2,x3)=x12+x1x2+x1ex3+x2lnx3f(x_1, x_2, x_3) = x_1^2+ x_1x_2 + x_1e^{x_3} + x_2lnx_3f(x1,x2,x3)=x12+x1x2+x1ex3+x2lnx3

∇f(x)=[2x1+x2+ex3x1+lnx3x1ex3+x2x3] \begin{equation} \nabla f(x)=\left[ \begin{array}{c} 2x_1 + x_2 + e^{x_3}\\ x_1 + lnx_3 \\ x_1e^{x_3} + \frac{x_2}{x_3} \end{array} \right] \end{equation}f(x)= 2x1+x2+ex3x1+lnx3x1ex3+x3x2

∇2f(x)=[21ex3101x3ex31x3x1ex3−x2x32] \begin{equation} \nabla^2 f(x)=\left[ \begin{array}{ccc} 2 & 1 & e^{x_3} \\ 1 & 0 & \frac{1}{x_3} \\ e^{x_3} & \frac{1}{x_3} &x_1e^{x_3} -\frac{x_2}{{x_3}^2} \end{array} \right] \end{equation}2f(x)= 21ex310x31ex3x31x1ex3x32x2
注:海森矩阵有对称性,只需计算一半即可。

无约束问题的最优性条件-一阶条件

在下面,我们首先研究一个最优解必须满足的条件:一阶和二阶(必要的) 最优性条件。我们将首先从局部最优解开始。

最优性条件:无约束问题

如果我们以整个实数集RnR^nRn为可行集(feasible set)Ω\OmegaΩ, 也就是:
min⁡x∈Rnf(x) \begin{alignat}{2} \min_{x \in R^n} \quad f(x) \\ \end{alignat} xRnminf(x)
最优条件(必要):
∇f(x)=0\nabla f(x) = 0f(x)=0
证明:如果∇f(x)≠0\nabla f (x) \neq 0f(x)=0f(x)f(x)f(x)是最小值,那么我们可以找到一个向量d=−∇f(x)d = -\nabla f (x)d=f(x)∇f(x)Td=−∥∇f(x)∥2<0\nabla f (x)^\mathrm{T}d = -\Vert \nabla f (x) \Vert^2 < 0f(x)Td=∥∇f(x)2<0。因此,通过泰勒展开式:
f(x+td)=f(x)+t∇f(x)Td+o(t)t→0f(x + td) = f(x) + t \nabla f(x)^\mathrm{T} d+ o(t) \quad t\rightarrow 0 f(x+td)=f(x)+tf(x)Td+o(t)t0

∵∇f(x)Td<0,o(t)<0\because \nabla f (x)^\mathrm{T}d < 0, o(t) < 0f(x)Td<0,o(t)<0 ⇒f(x+td)<f(x)\Rightarrow f(x+td) < f(x)f(x+td)<f(x)

通过选择足够小的 ttt,我们可以找到一个在xxx附近的点 xˉ=x+td\bar x = x + tdxˉ=x+td使f(xˉ)<f(x)f(\bar x) < f( x)f(xˉ)<f(x),与题设矛盾

一阶必要条件 First-Order Necessary Conditions (FONC)

一阶必要条件: 如果x⋆x^\starx是无约束问题minx∈Rnf(x)min_{x \in R^n} f (x)minxRnf(x)的局部极小值,那么我们必须有∇f(x⋆)=0\nabla f(x^\star)=0f(x)=0
备注: ∇f(x)=0\nabla f (x)=0f(x)=0的点xxx都是局部极小点的候选点

例子: f(x)=x12−x1x2+x22−3x2f(x) = x_1^2 - x_1x_2 + x_2^2 - 3x_2f(x)=x12x1x2+x223x2
一阶必要条件为:
2x1−x2=0,−x1+2x2=0 2x_1 - x_2 = 0, -x_1 + 2x_2 = 0 2x1x2=0,x1+2x2=0
有一个唯一的解(x1=1,x2=2)(x_1 = 1,x_2 = 2)x1=1x2=2,它是fff的全局最小点。

示例:最小二乘问题

假设一个变量yyy是由nnn个因子x1,...,xn∈Rmx_1, ..., x_n \in R^mx1,...,xnRm决定的。我们知道它们近似地有一个线性关系:

y≈β1x1+β2x2+...+βnxnβi∈R y \approx \beta_1x_1 + \beta_2 x_2 + ... + \beta_n x_n \quad \beta_i \in Ryβ1x1+β2x2+...+βnxnβiR

现在,我们要确定这个关系(找到参数β\betaβ)。
我们有mmm个观测值(m>n)(m>n)(m>n) 这些观测值可以组成一个数据矩阵 XXX
{xiT=(xi1,xi2,...xin),yi},i=1,2,...,m\{ x_i^T = (x_{i1},x_{i2},...x_{in}), y_i\}, \quad i = 1, 2, ...,m{xiT=(xi1,xi2,...xin),yi},i=1,2,...,m
其中,xiTx_i^TxiT是数据矩阵 XXX 的第 iii 行.
理想情况下,我们想找到β=(β1,β2,...βn)T\beta = (\beta_1,\beta_2,... \beta_n)^\mathrm{T}β=(β1,β2,...βn)T,使 $ y = X \beta $ 。然而,这可能是不可能的(例如,方程y = Xβ可以是一个过确定的线性系统(overdetermined system))。通常情况下,观测不遵循y=Xβy = X\betay=,所以我们需要完全噪声观测(noisy observations)。

相反,我们试图最小化误差的平方和:
min⁡β∑i=0n(yi−xiTβi)2 \begin{alignat}{2} \min_{\beta}\quad \sum_{i = 0}^n(y_i - x_i^T\beta_i)^2 \\ \end{alignat} βmini=0n(yixiTβi)2
这个问题的矩阵形式为:
min⁡β∥Xβ−y∥2=XββTX−2βTXTy+yTy \begin{alignat}{2} \min_{\beta}\quad \Vert X\beta - y\Vert^2 = X\beta\beta^\mathrm{T}X - 2\beta^\mathrm{T}X^\mathrm{T}y + y^\mathrm{T}y \\ \end{alignat} βminy2=βTX2βTXTy+yTy
其中 ∥ω∥2=ω12+ω22+...+ωn2\Vert \omega \Vert^2 = \omega_1^2 + \omega_2^2 + ... + \omega_n^2ω2=ω12+ω22+...+ωn2

事实:1.如果f(x)=xTMxf (x) = x^TMxf(x)=xTMxMMM是对称的),那么: ∇f(x)=2Mx\nabla f (x)=2Mxf(x)=2Mx。2.如果f(x)=cTxf (x) = c^Txf(x)=cTx,那么∇f(x)=c\nabla f (x) = cf(x)=c

因此,最小二乘问题的一阶必要条件(FONC)为:
XTXβ=XTy X^TX\beta = X^Ty XT=XTy

求解这个方程给出了局部极小点的候选项。

一阶必要条件的非充分性

反例

f(x)=x4−9x2+4x−1f(x) = x^4 - 9x^2 + 4x - 1f(x)=x49x2+4x1的导数是
f′(x)=4x3−18x+4=0f^{'}(x)=4x^3 − 18x +4 = 0f(x)=4x318x+4=0
他的解包括x1=−1+62,x2=−1−62,x3=2x_1 = -1 + \frac{\sqrt{6}}{2}, x_2 = -1 - \frac{\sqrt{6}}{2}, x_3 = 2x1=1+26 ,x2=126 ,x3=2

函数图像
我们可以发现FONC是不充分的。事实上,每个局部最大值也满足FONC。或者它既不能是局部的最小值,也不能是最大值(如f(x)=x3f(x) = x^3f(x)=x3x=0x = 0x=0

内容来自cuhksz mat3007的ppt Professor Li Xiao,翻译为中文,修改了小部分,加入了一些笔者自己的理解。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐