目录
参考链接:
https://blog.csdn.net/qq_32171789/article/details/105577594
https://www.cnblogs.com/always-fight/p/9377554.html
海森矩阵和半正定矩阵
二元函数凹凸性判定及最值定理
多元函数凹凸性判定及最值定理
一、什么是凸函数
定义一
对于一元函数
f
(
x
)
f(x)
f(x),如果对于任意
t
ϵ
[
0
,
1
]
tϵ[0,1]
tϵ[0,1]均满足:
f
(
t
x
1
+
(
1
−
t
)
x
2
)
≤
t
f
(
x
1
)
+
(
1
−
t
)
f
(
x
2
)
f(tx_1+(1−t)x_2)≤tf(x_1)+(1−t)f(x_2)
f(tx1+(1−t)x2)≤tf(x1)+(1−t)f(x2),则称
f
(
x
)
f(x)
f(x)为凸函数(convex function)
如果对于任意
t
ϵ
(
0
,
1
)
tϵ(0,1)
tϵ(0,1)均满足:
f
(
t
x
1
+
(
1
−
t
)
x
2
)
<
t
f
(
x
1
)
+
(
1
−
t
)
f
(
x
2
)
f(tx_1+(1−t)x_2)<tf(x_1)+(1−t)f(x_2)
f(tx1+(1−t)x2)<tf(x1)+(1−t)f(x2),则称
f
(
x
)
f(x)
f(x)为严格凸函数(convex function)
定义二
首先定义凸集,如果
x
,
y
x,y
x,y属于某个集合
M
M
M,并且所有的
θ
x
+
(
1
−
θ
)
f
(
y
)
θx+(1-θ)f(y)
θx+(1−θ)f(y)也属于
M
M
M,那么
M
M
M为一个凸集。如果函数f的定义域是凸集,并且满足
f
(
θ
x
+
(
1
−
θ
)
y
)
≤
θ
f
(
x
)
+
(
1
−
θ
)
f
(
y
)
f(θx+(1-θ)y)≤θf(x)+(1-θ)f(y)
f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)
则该函数为凸函数。
我们可以从几何上直观地理解凸函数的特点,凸函数的割线在函数曲线的上方,如图1所示:从
f
(
x
1
)
f(x_1)
f(x1)连一条线到右侧的虚线,利用三角形边的比例性质可以推出中间虚线与上面直线交点的值
上面的公式,完全可以推广到多元函数。在数据科学的模型求解中,如果优化的目标函数是凸函数,则局部极小值就是全局最小值。这也意味着我们求得的模型是全局最优的,不会陷入到局部最优值。
「注意」:中国大陆数学界某些机构关于函数凹凸性定义和国外的定义是相反的。Convex Function在某些中国大陆的数学书中指凹函数。Concave Function指凸函数。但在中国大陆涉及经济学的很多书中,凹凸性的提法和其他国家的提法是一致的,也就是和数学教材是反的。举个例子,同济大学高等数学教材对函数的凹凸性定义与本条目相反,本条目的凹凸性是指其上方图是凹集或凸集,而同济大学高等数学教材则是指其下方图是凹集或凸集,两者定义正好相反。
二、如何判断函数是否为凸函数?
对于一元函数 f ( x ) f(x) f(x),我们可以通过其二阶导数 f ′ ′ ( x ) f′′(x) f′′(x) 的符号来判断。如果函数的二阶导数总是非负,即 f ′ ′ ( x ) ≥ 0 f′′(x)≥0 f′′(x)≥0,则 f ( x ) f(x) f(x)是凸函数
对于多元函数 f ( X ) f(X) f(X),我们可以通过其 H e s s i a n 矩 阵 Hessian矩阵 Hessian矩阵( H e s s i a n Hessian Hessian矩阵是由多元函数的二阶导数组成的方阵)的正定性来判断。如果Hessian矩阵是半正定矩阵,则是 f ( X ) f(X) f(X)凸函数
三、为什么要求是凸函数呢?
如果是下图这样的函数,则无法获得全局最优解。
四、为什么要求是凸集呢?
如果可行域不是凸集,也会导致局部最优。
五、Jensen不等式
对于凸函数,我们可以推广出一个重要的不等式,即Jensen不等式。如果
f
f
f 是凸函数,
X
X
X是随机变量,那么
f
(
E
(
X
)
)
≤
E
(
f
(
X
)
)
f(E(X))≤E(f(X))
f(E(X))≤E(f(X)),上式就是Jensen不等式的一般形式
我们还可以看它的另一种描述。假设有
n
n
n 个样本
x
1
,
x
2
,
.
.
.
,
x
n
{x_1,x_2,...,x_n}
x1,x2,...,xn和对应的权重
α
1
,
α
2
,
.
.
.
,
α
n
{α_1,α_2,...,α_n}
α1,α2,...,αn,权重满足
a
i
⩾
0
a_i⩾0
ai⩾0,
∑
α
i
=
1
∑α_i=1
∑αi=1,对于凸函数
f
f
f,以下不等式成立:
f
(
∑
i
=
1
n
α
i
x
i
)
≤
∑
i
=
1
n
α
i
f
(
x
i
)
f(\sum_{i=1}^{n}α_{i}x_{i})≤\sum_{i=1}^{n}α_{i}f(x_i)
f(∑i=1nαixi)≤∑i=1nαif(xi)
六、实际建模中如何判断一个最优化问题是不是凸优化问题
- 目标函数 f f f如果不是凸函数,则不是凸优化问题
- 决策变量x中包含离散变量(0-1变量或整数变量),则不是凸优化问题
- 约束条件写成
g
(
x
)
≤
0
g(x)≤0
g(x)≤0时,g如果不是凸函数,则不是凸优化问题
之所以要区分凸优化问题和非凸的问题原因在于凸优化问题中局部最优解同时也是全局最优解,这个特性使凸优化问题在一定意义上更易于解决,而一般的非凸最优化问题相比之下更难解决。
七、非凸优化问题如何转化为凸优化问题的方法:
非凸优化问题如何转化为凸优化问题的方法:
- 修改目标函数,使之转化为凸函数
- 抛弃一些约束条件,使新的可行域为凸集并且包含原可行域