判定凸函数有一阶和二阶条件两种方式,一阶条件即,
假设
f
f
f可微,则函数
f
f
f是凸函数的充分必要条件是
d
o
m
f
dom f
domf是凸集且对于任意
x
,
y
∈
d
o
m
f
x,y\in dom f
x,y∈domf,下式成立
f
(
y
)
≥
f
(
x
)
+
∇
f
(
x
)
T
(
y
−
x
)
f(y)\geq f(x)+\nabla f(x)^T(y-x)
f(y)≥f(x)+∇f(x)T(y−x)
下图是他在图形上的描述,具体证明可以看下面这个blog
https://blog.csdn.net/JiZhG/article/details/52262746?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158881838419725211937190%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57644%2522%257D&request_id=158881838419725211937190&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1
一阶条件在工作中很少被使用,我们往往使用的是二阶条件来判定函数的凸性,二阶条件涉及到了Hessian matrix,他是这样定义的。
Hessian matrix
在数学中,海森矩阵(Hessian matrix 或 Hessian)是一个多变量实值函数的二阶偏导数组成的方块矩阵,假设有一实数函数 f ( x 1 , x 2 , . . . , x n ) f(x_1,x_2,...,x_n) f(x1,x2,...,xn),如果 f f f的所有的二阶偏导数都存在,那么 f f f的海森矩阵的第 i j − ij- ij−项即: H ( f ) i j ( x ) = D i D j f ( x ) H(f)_{ij}(x)=D_iD_jf(x) H(f)ij(x)=DiDjf(x),完整的矩阵长下面这样----搜狗百科
二阶条件
现假设
f
f
f二阶可微, 即对于开集
d
o
m
f
dom f
domf内的任意一点,
f
f
f的二阶导或者
H
e
s
s
i
a
n
Hessian
Hessian矩阵存在, 则函数
f
f
f是凸函数的充要条件是, 其Hessian矩阵半正定, 即
∀
x
∈
d
o
m
f
∀x∈domf
∀x∈domf, 有
∇
2
f
(
x
)
⪰
0
\nabla^2f(x)\succeq0
∇2f(x)⪰0
对于R上的函数, 上式退化为
f
′
′
(
x
)
⩾
0
f′′(x)⩾0
f′′(x)⩾0. 该条件表明函数
f
f
f的导数非减, 从几何上解释就是函数
f
f
f在点
x
x
x处具有向上(正)的曲率.
需要注意的一个性质是,对于 ∇ 2 f ( x ) ≻ 0 \nabla^2f(x)\succ0 ∇2f(x)≻0,他去掉了等于的条件,可以证明函数 f ( x ) f(x) f(x)是严格凸的,但是反过来无法得到,也就是说严格凸,不一定满足 ∇ 2 f ( x ) ≻ 0 \nabla^2f(x)\succ0 ∇2f(x)≻0。
考虑 f ( x ) = x 4 f(x)=x^4 f(x)=x4,这个函数显然是凸的,但是他的二阶导数 12 x 2 12x^2 12x2是可以等于0的,不一定完全大于0。
最常用的凸函数:二次函数
\textbf{最常用的凸函数:二次函数}
最常用的凸函数:二次函数
f
:
R
n
→
R
,
d
o
m
f
=
R
n
,
P
∈
S
n
,
Q
∈
R
n
,
r
∈
R
f:R^n\rightarrow R,\;\;dom f=R^n,\;\; P\in S^n,\;\;Q\in R^n,\;\; r\in R
f:Rn→R,domf=Rn,P∈Sn,Q∈Rn,r∈R
f
(
x
)
=
1
2
x
T
P
x
+
Q
T
x
+
r
f(x)=\frac{1}{2}x^TPx+Q^Tx+r
f(x)=21xTPx+QTx+r
这是一个二次函数,由于自变量是向量,所以二次项写为
x
T
P
x
x^TPx
xTPx。P一般要求是一个对称的矩阵,Q是向量,R是标量。我们验证一下该函数何时凸,何时凹。
他的海森矩阵就是P,我们只需要判断P是正定,半正定还是半负定。而且该二次函数满足一个性质,如果P是正定的那么函数一定是严格凸的,反过来也可以证明,即严格凸能得到P是正定的,这是为数不多能得到这个性质的函数。
定义域一定要是凸集
\textbf{定义域一定要是凸集}
定义域一定要是凸集
考虑
f
(
x
)
=
1
x
2
f(x)=\frac{1}{x^2}
f(x)=x21,他的二阶导数
f
′
′
(
x
)
=
6
x
−
4
>
0
f''(x)=6x^{-4}>0
f′′(x)=6x−4>0,但是他显然不是一个凸函数,
x
=
0
x=0
x=0是他的一个奇异值点,它在左侧凸函数,也在右侧凸函数,但整体不是凸函数。也就是说,如果他的定义域都不是凸集,那么他一定不是凸函数。
常见函数的辨析
能用二阶条件判定的常见函数
仿射,指数函数,幂函数,绝对值的幂函数,对数函数,负熵
仿
射
函
数
:
f
(
x
)
=
A
x
+
b
,
∇
2
f
(
x
)
=
0
\color{blue}仿射函数:f(x)=Ax+b,\nabla^2 f(x)=0
仿射函数:f(x)=Ax+b,∇2f(x)=0
显然它既是半正定,也是半负定,因此既是凸函数也是凹函数。
指
数
函
数
:
f
(
x
)
=
e
a
x
,
x
∈
R
,
a
∈
R
\color{blue}指数函数:f(x)=e^{ax},x\in R, a\in R
指数函数:f(x)=eax,x∈R,a∈R
f
′
(
x
)
=
a
e
a
x
,
f
′
′
(
x
)
=
a
2
e
a
x
≥
0
f'(x)=ae^{ax}, f''(x)=a^2e^{ax}\geq0
f′(x)=aeax,f′′(x)=a2eax≥0,因此该函数一定是凸函数。
幂
函
数
:
f
(
x
)
=
x
a
,
x
∈
R
+
+
,
a
∈
R
\color{blue}幂函数:f(x)=x^a,x\in R_{++}, a\in R
幂函数:f(x)=xa,x∈R++,a∈R
x一定是一个正数,
f
′
(
x
)
=
a
x
a
−
1
,
f
′
′
(
x
)
=
a
(
a
−
1
)
x
a
−
2
f'(x)=ax^{a-1}, f''(x)=a(a-1)x^{a-2}
f′(x)=axa−1,f′′(x)=a(a−1)xa−2,此时显然他不是任何时候都满足
≥
0
\geq 0
≥0,因此需要分情况进行讨论。
有两点比较特殊,当
a
=
1
a=1
a=1或者
a
=
0
a=0
a=0的时候,它变成了仿射函数和常数,显然既是凸的也是凹的。
绝
对
值
的
幂
函
数
:
f
(
x
)
=
∣
x
∣
p
,
x
∈
R
,
a
∈
R
\color{blue}绝对值的幂函数:f(x)=|x|^p,x\in R, a\in R
绝对值的幂函数:f(x)=∣x∣p,x∈R,a∈R
这里将x的限制去掉,但是我们不想结果是负的,所以加上绝对值,注意p不能等于1,|x|函数是一阶不可导的。(但是需要注意p=1时,|x|是凸函数),然后考虑
p
!
=
1
p!=1
p!=1的场景。此时我们求其二阶导数:
显然
p
≥
1
p\geq 1
p≥1时,这是一个凸函数,在
p
<
1
p<1
p<1的时候是没有一个统一的结论的。
对
数
函
数
:
f
(
x
)
=
log
x
,
x
∈
R
+
+
\color{blue}对数函数:f(x)=\log{x},x\in R_{++}
对数函数:f(x)=logx,x∈R++
对数函数一定是凹函数,他的二阶导数
f
′
′
(
x
)
=
−
1
x
2
<
0
f''(x)=-\frac{1}{x^2}<0
f′′(x)=−x21<0,所以这是一个严格凹函数。
负 熵 : f ( x ) = x log x , x ∈ R + + \color{blue}负熵:f(x)=x\log{x},x\in R_{++} 负熵:f(x)=xlogx,x∈R++
f ′ ′ ( x ) = 1 x f''(x)=\frac{1}{x} f′′(x)=x1,是一个严格凸的函数。在信息论里我们总是要极大化熵,也就是找到熵这个凹函数的最大值。
范数-零范数
R
n
空
间
的
范
数
p
(
x
)
x
∈
R
n
R^n空间的范数 p(x) x\in R^n
Rn空间的范数p(x)x∈Rn
范数是满足以下三个性质的函数
- p ( a x ) = ∣ a ∣ p ( x ) p(ax)=|a|p(x) p(ax)=∣a∣p(x)
- p ( x + y ) ≤ p ( x ) + p ( y ) p(x+y)\leq p(x)+p(y) p(x+y)≤p(x)+p(y)
- p ( x ) = 0 当 且 仅 当 x = 0 p(x)=0当且仅当x=0 p(x)=0当且仅当x=0
此时我们不能求二阶导数,因此需要使用一阶条件来证明他确实是一个凸函数。
零
范
数
∣
∣
x
∣
∣
0
=
非
零
元
素
的
个
数
零范数 ||x||_0=非零元素的个数
零范数∣∣x∣∣0=非零元素的个数
零范数不是范数,他也不是一个凸函数。为什么他不满足范数的定义呢,其实是不满足第一个条件。
极值函数与解析逼近
极
大
值
函
数
f
(
x
)
=
max
{
x
1
,
.
.
.
,
x
n
}
,
x
∈
R
n
\mathbf{极大值函数 f(x)=\max\{x_1,...,x_n\},x\in R^n}
极大值函数f(x)=max{x1,...,xn},x∈Rn
显然我们无法求二阶导数,因此我们使用他的定义,对
∀
x
,
y
∈
R
n
,
∀
0
≤
θ
≤
1
\forall x,y\in R^n,\forall 0\leq\theta\leq 1
∀x,y∈Rn,∀0≤θ≤1
那么我们有
f
(
θ
x
+
(
1
−
θ
)
y
)
=
max
{
θ
x
i
+
(
1
−
θ
)
y
i
,
i
=
1
,
.
.
.
,
n
}
f(\theta x+(1-\theta )y)=\max\{\theta x_i+(1-\theta)y_i,i=1,...,n\}
f(θx+(1−θ)y)=max{θxi+(1−θ)yi,i=1,...,n}
也就是把x,y的每一个元素都单独拿出来求其中的最大值,然后我们可以得到
f
(
θ
x
+
(
1
−
θ
)
y
)
≤
θ
max
{
x
i
,
i
=
1...
n
}
+
(
1
−
θ
)
max
{
y
i
,
i
=
1...
n
}
=
θ
f
(
x
)
+
(
1
−
θ
)
f
(
y
)
f(\theta x+(1-\theta )y)\leq \theta\max\{x_i,i=1...n\}+(1-\theta)\max\{y_i,i=1...n\}=\theta f(x)+(1-\theta)f(y)
f(θx+(1−θ)y)≤θmax{xi,i=1...n}+(1−θ)max{yi,i=1...n}=θf(x)+(1−θ)f(y)
得证。
但是对于极大值函数他是不可导的,优化比较麻烦,我们通常给他做一个可导的近似优化,叫做解析逼近。
log-sum-up
\textbf{log-sum-up}
log-sum-up
首先我们对所有的元素进行一个操作
f
(
x
)
=
log
(
e
x
1
+
.
.
.
+
e
x
n
)
;
x
∈
R
n
f(x)=\log(e^{x1}+...+e^{xn});x\in R^n
f(x)=log(ex1+...+exn);x∈Rn
这个函数满足一个非常好的性质,
max
{
x
1
,
.
.
.
,
x
n
}
≤
f
(
x
)
≤
max
{
x
1
,
.
.
.
,
x
n
}
+
log
n
\max\{x_1,...,x_n\}\leq f(x)\leq \max\{x_1,...,x_n\}+\log n
max{x1,...,xn}≤f(x)≤max{x1,...,xn}+logn
然后我们证明这个解析逼近是一个凸函数,直接求二阶偏导。
之后的证明涉及了柯西斯瓦兹不等式以及一系列变换,详细推导来这里
几何平均
f
(
x
)
=
(
x
1
+
.
.
.
+
x
n
)
1
n
;
x
∈
R
+
+
f(x)=(x_1+...+x_n)^{\frac{1}{n}};x\in R_{++}
f(x)=(x1+...+xn)n1;x∈R++
这是一个凹函数,不是一个凸函数。