一、泰勒展开:
泰勒公式是一个用函数在某点的信息描述其附近取值的公式。这个公式来自于微积分的泰勒定理,泰勒定义描述了一个可微函数,如果函数足够光滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值,这个多项式称为泰勒多项式。
泰勒定理:
设n是一个正整数,如果定义在一个包含a的区间上的函数f在a点处n+1次可导,那么对于这个区间上的任意x,都有:
f
(
x
)
=
f
(
a
)
+
f
′
(
a
)
1
!
(
x
−
a
)
+
f
(
2
)
(
a
)
2
!
(
x
−
a
)
2
+
.
.
.
+
f
(
n
)
(
a
)
n
!
(
x
−
a
)
n
+
R
n
(
x
)
f(x)=f(a)+{f'(a) \over 1!}(x-a)+{f^{(2)}(a) \over 2!}(x-a)^2+...+{f^{(n)}(a) \over n!}(x-a)^n+R_n(x)
f(x)=f(a)+1!f′(a)(x−a)+2!f(2)(a)(x−a)2+...+n!f(n)(a)(x−a)n+Rn(x)
其中的多项式称为函数在a处的泰勒展开式,剩余的
R
n
(
x
)
R_n(x)
Rn(x)是泰勒展开式的余项,为
(
x
−
a
)
n
(x-a)^n
(x−a)n的高阶无穷小。
二、泰勒展开和Hassian矩阵的关系
二元函数 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)在 X ( 0 ) ( x 1 ( 0 ) , x 2 ( 0 ) ) X^{(0)}(x_1^{(0)},x_2^{(0)}) X(0)(x1(0),x2(0))的泰勒展开为:
f ( x 1 , x 2 ) = f ( x 1 ( 0 ) , x 2 ( 0 ) ) + ∂ f ∂ x 1 ∣ X ( 0 ) △ x 1 + ∂ f ∂ x 2 ∣ X ( 0 ) △ x 2 + 1 2 [ ∂ 2 f ∂ x 1 2 ∣ X ( 0 ) △ x 1 2 + 2 ∂ 2 f ∂ x 1 ∂ x 2 ∣ X ( 0 ) △ x 1 △ x 2 + ∂ 2 f ∂ x 2 2 ∣ X ( 0 ) △ x 2 2 ] + . . . f(x_1,x_2)=f(x_1^{(0)},x_2^{(0)})+ {\partial f \over \partial x_1}|_{X^{(0)}}\triangle x_1+{\partial f \over \partial x_2}|_{X^{(0)}}\triangle x_2+ {1 \over 2}[{\partial ^2f\over \partial x_1^2}|_{X^{(0)}}\triangle x_1^2+2{\partial ^2f\over \partial x_1 \partial x_2}|_{X^{(0)}}\triangle x_1 \triangle x_2+{\partial ^2f\over \partial x_2^2}|_{X^{(0)}}\triangle x_2^2]+... f(x1,x2)=f(x1(0),x2(0))+∂x1∂f∣X(0)△x1+∂x2∂f∣X(0)△x2+21[∂x12∂2f∣X(0)△x12+2∂x1∂x2∂2f∣X(0)△x1△x2+∂x22∂2f∣X(0)△x22]+...
将上述表达式写成矩阵形式:
f
(
X
)
=
f
(
X
(
0
)
)
+
(
∂
f
∂
x
1
,
∂
f
∂
x
2
)
X
(
0
)
(
△
x
1
△
x
2
)
+
1
2
(
△
x
1
,
△
x
2
)
(
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
)
X
(
0
)
(
△
x
1
△
x
2
)
+
.
.
.
f(X)=f(X^{(0)})+({\partial f\over \partial x_1},{\partial f\over \partial x_2})_{X^{(0)}}\begin {pmatrix} \triangle x_1\\ \triangle x_2\end {pmatrix}+{1 \over 2}(\triangle x_1,\triangle x_2)\begin {pmatrix} {\partial ^2f \over \partial x_1^2}& {\partial ^2f \over \partial x_1 \partial x_2}\\ {\partial ^2f \over \partial x_2 \partial x_1}& {\partial ^2f \over \partial x_2^2} \end {pmatrix} _{X^{(0)}}\begin {pmatrix} \triangle x_1\\ \triangle x_2\end {pmatrix}+...
f(X)=f(X(0))+(∂x1∂f,∂x2∂f)X(0)(△x1△x2)+21(△x1,△x2)(∂x12∂2f∂x2∂x1∂2f∂x1∂x2∂2f∂x22∂2f)X(0)(△x1△x2)+...
令:
▽
f
(
X
(
0
)
)
T
=
(
∂
f
∂
x
1
∂
f
∂
x
2
)
X
(
0
)
,
△
X
=
(
△
x
1
△
x
2
)
,
G
(
X
(
0
)
)
=
(
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
)
X
(
0
)
\triangledown f(X^{(0)})^T=\begin {pmatrix} {\partial f\over \partial x_1}\\ {\partial f\over \partial x_2} \end {pmatrix}_{X^{(0)}}, \triangle X=\begin {pmatrix} \triangle x_1\\ \triangle x_2\end {pmatrix},G(X^{(0)})=\begin {pmatrix} {\partial ^2f \over \partial x_1^2}& {\partial ^2f \over \partial x_1 \partial x_2}\\ {\partial ^2f \over \partial x_2 \partial x_1}& {\partial ^2f \over \partial x_2^2} \end {pmatrix} _{X^{(0)}}
▽f(X(0))T=(∂x1∂f∂x2∂f)X(0),△X=(△x1△x2),G(X(0))=(∂x12∂2f∂x2∂x1∂2f∂x1∂x2∂2f∂x22∂2f)X(0)
此时上式可表示为:
f
(
X
(
0
)
)
=
f
(
X
(
0
)
)
+
▽
f
(
X
(
0
)
)
T
△
X
+
1
2
△
X
T
G
(
X
(
0
)
)
△
X
+
.
.
.
.
f(X^{(0)})=f(X^{(0)})+\triangledown f(X^{(0)})^T\triangle X+{1\over 2}\triangle X^TG(X^{(0)})\triangle X+....
f(X(0))=f(X(0))+▽f(X(0))T△X+21△XTG(X(0))△X+....
这个 G ( X ( 0 ) ) G(X^{(0)}) G(X(0))就是 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)在 X ( 0 ) X^{(0)} X(0)点处的Hassian矩阵。
同时注意这个 ▽ f ( X ( 0 ) ) \triangledown f(X^{(0)}) ▽f(X(0))是雅可比矩阵
https://baike.baidu.com/item/%E9%BB%91%E5%A1%9E%E7%9F%A9%E9%98%B5
三、拉格朗日函数:
3.1定义:
设给定二元函数
z
=
f
(
x
,
y
)
z=f(x,y)
z=f(x,y)和附加条件
ϕ
(
x
,
y
)
=
0
\phi (x,y)=0
ϕ(x,y)=0,为寻找
z
=
f
(
x
,
y
)
z=f(x,y)
z=f(x,y)在附加条件下的极值点,先做拉格朗日函数
F
(
x
,
y
,
ϕ
)
=
f
(
x
,
y
)
+
λ
ϕ
(
x
,
y
)
F(x,y,\phi )=f(x,y)+\lambda \phi(x,y)
F(x,y,ϕ)=f(x,y)+λϕ(x,y),其中
λ
\lambda
λ是参数
首先令
F
(
x
,
y
,
λ
)
F(x,y,\lambda )
F(x,y,λ)对
x
,
y
,
λ
x,y,\lambda
x,y,λ的一阶导数为零,即:
F x ′ = f x ′ ( x , y ) + λ ϕ x ′ ( x , y ) = 0 F^{'}_x=f^{'}_x(x,y)+\lambda \phi ^{'}_x(x,y)=0 Fx′=fx′(x,y)+λϕx′(x,y)=0
F y ′ = f y ′ ( x , y ) + λ ϕ y ′ ( x , y ) = 0 F^{'}_y=f^{'}_y(x,y)+\lambda \phi ^{'}_y(x,y)=0 Fy′=fy′(x,y)+λϕy′(x,y)=0
F λ ′ = ϕ ( x , y ) = 0 F^{'}_{\lambda}=\phi (x,y)=0 Fλ′=ϕ(x,y)=0
由上述方程解出
x
,
y
,
λ
x,y,\lambda
x,y,λ,如此求得的(x,y),就是函数
z
=
f
(
x
,
y
)
z=f(x,y)
z=f(x,y)在附加条件
ϕ
(
x
,
y
)
=
0
\phi (x,y)=0
ϕ(x,y)=0下的可能极值点。
如果这样的点只有一个,由实际问题可直接确定此即所求的点。
https://baike.baidu.com/item/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E6%95%B0%E6%B3%95/8550443
3.2 理解:
拉格朗日函数本身只是一种构造方式,这种方式本身是没有意义的,但它可以使求条件极值的步骤变得相对简单方便一些,所以大家倾向于使用构造拉格朗日函数这种方式来求极值。
以二元函数为例,假设变量
x
,
y
x,y
x,y满足约束条件
f
(
x
,
y
)
=
0
f(x,y)=0
f(x,y)=0,求
g
(
x
,
y
)
g(x,y)
g(x,y)的极值:
对
f
(
x
,
y
)
=
0
f(x,y)=0
f(x,y)=0微分可以得到:
d
f
=
∂
f
∂
x
d
x
+
∂
f
∂
y
d
y
=
0
df={\partial f\over \partial x}dx+{\partial f\over \partial y}dy=0
df=∂x∂fdx+∂y∂fdy=0 (1)
同时
g
(
x
,
y
)
g(x,y)
g(x,y)取极值的必要条件是
d
g
=
∂
g
∂
x
d
x
+
∂
g
∂
y
d
y
=
0
dg={\partial g\over \partial x}dx+{\partial g\over \partial y}dy=0
dg=∂x∂gdx+∂y∂gdy=0 (2)
联立(1)(2),这个方程组可以看成关于
d
x
,
d
y
dx,dy
dx,dy的齐次线性方程组。要使该方程组有非零解(
d
x
,
d
y
dx,dy
dx,dy虽然是小量,但不是真正的零),则该方程组的行列式为零,即:
∂
f
∂
x
∂
g
∂
y
−
∂
f
∂
y
∂
g
∂
x
=
0
{\partial f\over \partial x}{\partial g\over \partial y}-{\partial f\over \partial y}{\partial g\over \partial x}=0
∂x∂f∂y∂g−∂y∂f∂x∂g=0 (3)
也就是说(3)就是
g
(
x
,
y
)
g(x,y)
g(x,y)取极值的一个条件,将(3)与
f
(
x
,
y
)
f(x,y)
f(x,y)联立,就能求出极值点。
上面是按定义求极值的方法,接下来构造拉格朗日函数看能否得到(3)这个式子。
令拉格朗日函数
h
(
x
,
y
)
=
g
(
x
,
y
)
+
λ
f
(
x
,
y
)
h(x,y)=g(x,y)+\lambda f(x,y)
h(x,y)=g(x,y)+λf(x,y)。其无条件极值点满足:
∂
h
∂
x
=
∂
g
∂
x
+
λ
∂
f
∂
x
=
0
{\partial h\over \partial x}={\partial g\over \partial x}+\lambda {\partial f\over \partial x}=0
∂x∂h=∂x∂g+λ∂x∂f=0 (4)
∂
h
∂
y
=
∂
g
∂
y
+
λ
∂
f
∂
y
=
0
{\partial h\over \partial y}={\partial g\over \partial y}+\lambda {\partial f\over \partial y}=0
∂y∂h=∂y∂g+λ∂y∂f=0 (5)
联立(4)(5),这个方程组可以看成关于
μ
,
λ
\mu , \lambda
μ,λ(这个
μ
\mu
μ只是一个临时引入的变量)的一个齐次线性方程组:
μ
∂
g
∂
x
+
λ
∂
f
∂
x
=
0
\mu {\partial g\over \partial x}+\lambda {\partial f\over \partial x}=0
μ∂x∂g+λ∂x∂f=0
μ
∂
g
∂
y
+
λ
∂
f
∂
y
=
0
\mu {\partial g\over \partial y}+\lambda {\partial f\over \partial y}=0
μ∂y∂g+λ∂y∂f=0
且已知该方程组有非零解
μ
=
1
\mu =1
μ=1
根据齐次线性方程组有非零解的条件可知,该方程的系数矩阵的行列式为零,即:
∂
g
∂
x
∂
f
∂
y
−
∂
f
∂
x
∂
g
∂
y
=
0
{\partial g\over \partial x}{\partial f\over \partial y}-{\partial f\over \partial x}{\partial g\over \partial y}=0
∂x∂g∂y∂f−∂x∂f∂y∂g=0 (6)
可以看出(3)和(6)是完全等价的,也就是说用拉格朗日函数来求条件极值,和用定义求条件极值是等价的。所以我们可以通过解(4)(5)这个方程组,来求
g
(
x
,
y
)
g(x,y)
g(x,y)的条件极值。
https://www.zhihu.com/question/64044033
四、广义拉格朗日函数:
给定不等式约束问题:
KaTeX parse error: Invalid delimiter: 'm' after '\middle' at position 9: \middle m̲in f(x)\\s.t.\\…
定义广义拉格朗日函数:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
c
i
(
x
)
+
∑
j
=
1
l
β
j
h
j
(
x
)
L(x,\alpha ,\beta )=f(x)+\sum _{i=1}^k\alpha _ic_i(x)+\sum _{j=1}^l\beta _jh_j(x)
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
这里
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
n
)
)
T
∈
R
n
,
α
i
,
β
j
x=(x^{(1)},x^{(2)},...,x^{(n)})^T\in R^n,\alpha _i,\beta _j
x=(x(1),x(2),...,x(n))T∈Rn,αi,βj是拉格朗日乘子,
α
i
≥
0
\alpha _i\ge 0
αi≥0,考虑x的函数
θ
P
(
x
)
=
m
a
x
α
,
β
,
α
i
≥
0
L
(
x
,
α
,
β
)
\theta _P(x)=max_{\alpha ,\beta ,\alpha _i\ge 0}L(x,\alpha ,\beta)
θP(x)=maxα,β,αi≥0L(x,α,β)
则
θ
P
(
x
)
=
{
f
(
x
)
,
x
满
足
原
始
问
题
约
束
+
∞
,
其
他
\theta _P(x)=\begin{cases} f(x),x满足原始问题约束\\ +\infty ,其他\end{cases}
θP(x)={f(x),x满足原始问题约束+∞,其他
(有严格证明,这里跳过)
极小化问题
m
i
n
x
θ
p
(
x
)
=
m
i
n
x
m
a
x
α
,
β
,
α
i
≥
0
L
(
x
,
α
,
β
)
min_x\theta _p(x)=min_xmax_{\alpha ,\beta ,\alpha _i\ge 0}L(x,\alpha ,\beta)
minxθp(x)=minxmaxα,β,αi≥0L(x,α,β)与原始优化问题有相同的解。
广义拉格朗日函数相当于构造了一个含参函数,在满足约束条件的情况下,这个函数的值总是小于等于目标函数f(x),而我们此时选取合适的参数 α , β \alpha ,\beta α,β令该函数最大可使等号成立,即 L ( x , α , β ) = f ( x ) L(x,\alpha ,\beta)=f(x) L(x,α,β)=f(x);若不满足约束条件,则总存在 α , β \alpha ,\beta α,β使得该函数趋向于 + ∞ +\infty +∞
定义原始问题的最优值为 p ∗ = m i n x θ p ( x ) p^*=min_x\theta _p(x) p∗=minxθp(x)
4.1对偶问题
定义
θ
D
(
α
,
β
)
=
m
i
n
x
L
(
x
,
α
,
β
)
\theta_D(\alpha ,\beta)=min_xL(x,\alpha ,\beta)
θD(α,β)=minxL(x,α,β)
我们得到极大极小问题
m
a
x
α
,
β
θ
D
(
α
,
β
)
=
m
a
x
α
,
β
m
i
n
x
L
(
x
,
α
,
β
)
max_{\alpha ,\beta}\theta _D(\alpha, \beta)=max_{\alpha ,\beta}min_{x}L(x,\alpha ,\beta)
maxα,βθD(α,β)=maxα,βminxL(x,α,β)
s
.
t
.
a
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
k
s.t. \quad a_i\ge 0,\quad i=1,2,...,k
s.t.ai≥0,i=1,2,...,k
称为原问题(极小极大问题)的对偶问题
定义对偶问题的最优解为
d
∗
=
m
a
x
α
,
β
,
α
i
≥
0
θ
(
α
,
β
)
d^*=max_{\alpha ,\beta ,\alpha _i\ge 0}\theta (\alpha ,\beta)
d∗=maxα,β,αi≥0θ(α,β)
4.2 原始问题和对偶问题的关系
4.2.1 性质1
(弱对偶性) d ∗ ≤ p ∗ d^* \le p^* d∗≤p∗。p是先求最大的一块区域然后在这块区域求最小,d是先求最小的一块区域然后在这块区域求最大,最大里面的最小,总会比最小里面的最大要大
4.2.2 性质2
(强对偶充分条件)若
f
(
x
)
f(x)
f(x)和
c
i
(
x
)
c_i(x)
ci(x)是凸函数,
h
j
(
x
)
h_j(x)
hj(x)是仿射函数,并且不等式是严格可行的(即
∃
x
,
∀
i
,
有
c
i
(
x
)
<
0
)
\exists x,\forall i,有c_i(x)<0)
∃x,∀i,有ci(x)<0),则存在
x
∗
,
α
∗
,
β
∗
x^*,\alpha ^*, \beta ^*
x∗,α∗,β∗使得
x
∗
x^*
x∗是原始问题的解,
α
∗
,
β
∗
\alpha ^*,\beta ^*
α∗,β∗是对偶问题的解,并且
p
∗
=
d
∗
=
L
(
x
∗
,
α
∗
,
β
∗
)
p^*=d^*=L(x^*,\alpha ^*,\beta ^*)
p∗=d∗=L(x∗,α∗,β∗)
4.2.3 性质3
(强对偶充要条件)若 f ( x ) f(x) f(x)和 c i ( x ) c_i(x) ci(x)是凸函数, h j ( x ) h_j(x) hj(x)是仿射函数,并且不等式是严格可行的,则 x ∗ x^* x∗是原始问题的解, α ∗ , β ∗ \alpha ^*,\beta ^* α∗,β∗是对偶问题的解的充要条件就是他们满足KKT(Karush-Kuhn-Tucker)条件