如何证明满足参数约束的多元乘积形式函数的凸性?
没问题,咱们一步步拆解这个凸性证明,两种思路供你参考——一种是利用凸函数的组合与复合性质(更简洁),另一种是通过Hessian矩阵验证(更严谨):
1. 简化原函数表达式
先把原函数改写得更直观,方便后续分析:
$$
f(x_1,x_2,...,x_n)= \prod_{i=1}^n \left(\frac{x_i}{r_i}\right)^{-p_i} = \prod_{i=1}^n \left( \frac{r_i}{x_i} \right)^{p_i}
$$
这里$r_i$都是正的常数,后续分析可以先忽略常数部分(凸函数乘以正常数、加常数都不会改变凸性)。
2. 取对数转化为求和形式
对$f(x)$取自然对数——这步是关键,因为自然对数是单调递增的函数,不会改变函数的凸性顺序(如果$\ln f(x)$对应的复合函数是凸的,原函数$f(x)$也必然是凸的):
$$
\ln f(x) = \sum_{i=1}^n p_i \ln\left( \frac{r_i}{x_i} \right) = \sum_{i=1}^n p_i (\ln r_i - \ln x_i)
$$
把常数项和变量项拆分:
$$
\ln f(x) = \left( \sum_{i=1}^n p_i \ln r_i \right) - \sum_{i=1}^n p_i \ln x_i
$$
3. 分析每一项的凸性
- 第一项$\sum_{i=1}^n p_i \ln r_i$是个常数,常数函数既是凸函数也是凹函数,不影响整体凸性。
- 单变量函数$\ln t$($t>0$)是凹函数,所以$-\ln t$就是凸函数(凹函数乘以-1会翻转凸性)。
- 已知$0 \le p_i \le 1$且$\sum_{i=1}^n p_i =1$,所有$p_i$都是非负系数。根据凸函数的核心性质:非负系数的凸函数线性组合仍然是凸函数,因此$\sum_{i=1}^n p_i (-\ln x_i)$是凸函数。
综上,$\ln f(x)$是凸函数(凸函数加常数还是凸函数)。
4. 复合函数的凸性验证
原函数$f(x) = e^{\ln f(x)}$,外层函数$F(t)=e^t$有两个关键性质:
- 它是凸函数;
- 它是单调递增的函数。
根据复合函数的凸性规则:如果外层函数是凸函数且单调递增,内层函数是凸函数,那么复合后的函数也是凸函数。这里内层$\ln f(x)$是凸函数,外层$e^t$满足条件,因此$f(x)$是凸函数。
凸函数的另一个判定准则是:定义域为凸集的二阶可微函数是凸函数,当且仅当其Hessian矩阵在定义域内处处半正定。
1. 计算二阶偏导数
先把$f(x)$写成:
$$
f(x) = \left( \prod_{i=1}^n r_i^{p_i} \right) \cdot \prod_{i=1}^n x_i^{-p_i}
$$
常数部分$\prod_{i=1}^n r_i{p_i}$不影响Hessian矩阵,我们只需要分析$\prod_{i=1}n x_i^{-p_i}$的二阶导数:
- 对$x_i$的二阶偏导数:
$$
\frac{\partial^2 f}{\partial x_i^2} = p_i(p_i +1) f(x) x_i^{-2}
$$
因为$f(x)>0$,$p_i \ge0$,所以这个值必然非负。 - 交叉偏导数($i \neq j$):
$$
\frac{\partial^2 f}{\partial x_i \partial x_j} = p_i p_j f(x) x_i^{-1} x_j^{-1}
$$
同样,所有项都是非负的。
2. 验证Hessian矩阵半正定
对于任意向量$v \in \mathbb{R}n$,计算二次型$vT H v$($H$为Hessian矩阵):
$$
v^T H v = f(x) \sum_{i=1}^n p_i(p_i +1) \left( \frac{v_i}{x_i} \right)^2 + f(x) \sum_{i \neq j} p_i p_j \frac{v_i v_j}{x_i x_j}
$$
整理后可以变形为:
$$
v^T H v = f(x) \left( \sum_{i=1}^n p_i \left( \frac{v_i}{x_i} \right)^2 + \left( \sum_{i=1}^n p_i \frac{v_i}{x_i} \right)^2 \right)
$$
因为$f(x)>0$,括号内的两项都是平方和或平方,必然非负,因此$v^T H v \ge 0$,即Hessian矩阵半正定,说明$f(x)$是凸函数。
内容的提问来源于stack exchange,提问作者Han

