对数凹函数,顾名思义即取完对数以后 log f ( x ) \log f(x) logf(x) 是凹函数,其应用比如在求最大后验 MAP 时,往往会对联合概率密度函数取对数。
1. 定义
函数
f
f
f 被称为对数凹函数(log-concave),如果
log
f
\log f
logf 是凹的,也即
f
(
θ
x
+
(
1
−
θ
)
y
)
≥
f
(
x
)
θ
f
(
y
)
1
−
θ
f(\theta x+(1-\theta)y)\ge f(x)^\theta f(y)^{1-\theta}
f(θx+(1−θ)y)≥f(x)θf(y)1−θ
对数凹函数的例子:
- 幂函数 x α x^\alpha xα
- 正态分布
- 高斯分布的累积分布 Φ ( x ) = 1 / 2 π ∫ − ∞ x e − u 2 / 2 d u \Phi(x)=1/\sqrt{2\pi}\int_{-\infty}^{x}e^{-u^2/2}du Φ(x)=1/2π∫−∞xe−u2/2du
- 指示函数 I ( x ) = 1 x ∈ C I(x)=1_{x\in C} I(x)=1x∈C,其中 C C C 为凸集
- 行列式 det X \det X detX 是 log-concave,关于 S + + n S^n_{++} S++n
- det X / tr X \det X/\text{tr}X detX/trX on S + + n S^n_{++} S++n
根据前面提到的复合函数凹凸性,由于 log \log log 本身是凹函数,且为单调递增,因此可以有 f f f concave ⟹ log f \Longrightarrow \log f ⟹logf concave。
另外,指数函数取对数以后,变成了线性函数,而高斯分布取对数以后变成了二次函数,是凸的。外面这一层取对数的操作可以直观的想想为把原始函数向下掰弯(划掉)了,比如高斯分布就把接近于 0 的值经过 log \log log 操作掰到了 − ∞ -\infty −∞,从而变成了二次函数。
2. 性质
函数 f f f 的定义域为凸集, f f f 为 log-concave 当且仅当
f ( x ) ∇ 2 f ( x ) ⪯ ∇ f ( x ) ∇ f ( x ) T , ∀ x ∈ dom f f(x)\nabla^2 f(x)\preceq \nabla f(x) \nabla f(x)^T,\forall x\in \text{dom}f f(x)∇2f(x)⪯∇f(x)∇f(x)T,∀x∈domf
另外
- 两个 log-concave 函数的乘积仍然是 log-concave
- 若 f ( x , y ) f(x,y) f(x,y) 是 log-concave,则 g ( x ) = ∫ f ( x , y ) d y g(x)=\int f(x,y)dy g(x)=∫f(x,y)dy 也是 log-concave
- 若 f ( x ) f(x) f(x) 为 log-concave,则 f ( x − y ) f(x-y) f(x−y) 关于 ( x , y ) (x,y) (x,y) 都是 log-concave 的
但是注意,两个 log-concave 函数的和不一定是 log-concave,反例比如 f 1 = λ 1 exp ( − λ 1 x ) , f 2 = λ 2 exp ( − λ 2 x ) f_1=\lambda_1 \exp(-\lambda_1 x),f_2=\lambda_2 \exp(-\lambda_2 x) f1=λ1exp(−λ1x),f2=λ2exp(−λ2x)。
类似的,对于**对数凸函数(log-convex)**也有一些性质:
- log f \log f logf convex ⟹ f \Longrightarrow f ⟹f convex(since f = exp ( log f ) f=\exp(\log f) f=exp(logf))
- 对数凸函数的和也是对数凸函数,即 f 1 , f 2 f_1,f_2 f1,f2 log-convex ⟹ log ( f 1 + f 2 ) \Longrightarrow \log(f_1+f_2) ⟹log(f1+f2) convex(注意对数凹函数并没有这个性质)
- 给定 y y y, f ( x , y ) f(x,y) f(x,y) 关于 x x x 是 log-convex,则 g ( x ) = ∫ f ( x , y ) d y g(x)=\int f(x,y)dy g(x)=∫f(x,y)dy 是 log-convex