G
N
I
D
A
O
L

【最优化方法】第一次要点整理

多元函数的可微性和展开

多元单值函数:\(f(\vec{x}) = f(x_1, x_2, ..., x_n)\),其中 \(\vec{x} = (x_1, x_2, ..., x_n)^T\)

梯度:\(\nabla_{\vec{x}} f(\vec{x}) = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ..., \frac{\partial f}{\partial x_n} \right)^T\)

黑塞矩阵:

\[H = \nabla_{\vec{x}}^2 f(\vec{x}) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \vdots & \vdots & \vdots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix} \]

雅可比矩阵:\(J = \nabla_{\vec{x}}^2 f(\vec{x})^T\)(将黑塞矩阵转置即可得到)

注意:当后文出现形如 \(x \in \mathbb{R}^n\) 时,说明 \(x\) 为向量。后文不再使用箭头形式。

\(x \in \mathbb{R}^n\),多元函数的一阶泰勒展开(矩阵形式):

\[f(x) = f(x^*) + \nabla f(x^*)^T (x-x^*) + o(||x - x^*||) \]

\(x \in \mathbb{R}^n\),多元函数的二阶泰勒展开(矩阵形式):

\[f(x) = f(x^*) + \nabla f(x^*)^T (x-x^*) + \frac{1}{2} (x-x^*)^T \nabla^2 f(x^*)(x-x^*) + o(||x - x^*||^2) \]

关于上两式的推导,在《高等数学》中均有提及。

\(x \in \mathbb{R}^n\),在微分多元函数时经常使用以下规则:

  • \(\forall \mathbf{A} \in \mathbb{R}^{m \times n}\),有 \(\nabla_{\mathbf{x}} \mathbf{A} \mathbf{x} = \mathbf{A}^\top\)
  • \(\forall \mathbf{A} \in \mathbb{R}^{n \times m}\),有 \(\nabla_{\mathbf{x}} \mathbf{x}^\top \mathbf{A} = \mathbf{A}\)
  • \(\forall \mathbf{A} \in \mathbb{R}^{n \times n}\),有 \(\nabla_{\mathbf{x}} \mathbf{x}^\top \mathbf{A} \mathbf{x} = (\mathbf{A} + \mathbf{A}^\top)\mathbf{x}\)
  • \(\nabla_{\mathbf{x}} \|\mathbf{x} \|^2 = \nabla_{\mathbf{x}} \mathbf{x}^\top \mathbf{x} = 2\mathbf{x}\)
  • 对于任意矩阵 \(\mathbf{X}\),有 \(\nabla_{\mathbf{X}} \|\mathbf{X} \|_F^2 = 2\mathbf{X}\)

p-范数

定义:设 \(x \in \mathbb{R}^n\)\(||x||_p = (\sum\limits_{i=1}^{n} \|x_i\|)^{\frac{1}{p}}\)

p-范数 公式 二维范数的图像
0-范数 非零元的个数 -
1-范数 \(||x||_1 = \sum\limits_{i=1}^{n} |x_i|\) \(|x|+|y|=1\)(菱形)
2-范数 \(||x||_2 = \sqrt{\sum\limits_{i=1}^{n} |x_i|^2} = \sqrt{x^T x}\) \(\sqrt{x^2+y^2}=1\)(圆形)
∞-范数 \(||x||_{\infty} = \lim\limits_{p \rightarrow \infty} (\sum\limits_{i=1}^{n} |x_i|)^{\frac{1}{p}} = \max\limits_{1 \leq i \leq n} |x_i|\) \(\max(|x|,|y|)=1\)(正方形)

凸函数

凸函数定义:对 \(\forall x,y \in D\)\(\forall \lambda \in (0,1)\),有:

\[f(\lambda x + (1- \lambda)y) \leq \lambda f(x) + (1-\lambda) f(y) \]

强凸函数定义:对 \(\forall x,y \in D\)\(\forall \lambda \in (0,1)\),有:

\[f(\lambda x + (1- \lambda)y) \leq \lambda f(x) + (1-\lambda) f(y) - \frac{r}{2} \lambda (1-\lambda) || x-y ||^2 \]

其中 \(r\) 为强凸系数。

摘自《Strong-Convexity:强凸性》:这个强凸的性质是很重要的。直观从一维函数来说,一般凸函数只要求函数曲线在其切线之上,至于“上”多少没有要求,也就意味着曲线可以无限“贴着”切线,只要保持在其上就行了。毫无疑问,在优化特别是梯度优化中,这种微弱的梯度变化很难实现快速优化,有可能在有限次数还达不到收敛。如果我们取一个接近最小值的解,这也很难。“非常”接近只是一个定性理解,在这种情况下会出现最优解很近似但是决策变量相差巨大的糟糕情况。这时候,多加一个二次项的,保证有一个二次下界,那么不会出现“贴着”切线的情况,优化也变得更加简单。

一些定理:

  • \(f(x)\) 是凸函数 \(\Leftrightarrow f(x) \geq f(x^*) + \nabla f(x^*)^T (x-x^*)\)
  • \(f(x)\) 是严格凸函数 \(\Leftrightarrow f(x) > f(x^*) + \nabla f(x^*)^T (x-x^*)\)
  • \(f(x)\) 是一致凸函数 \(\Leftrightarrow f(x) \geq f(x^*) + \nabla f(x^*)^T (x-x^*) + \frac{r}{2} || x-x^* ||^2\)
  • \(f(x)\) 是凸函数 \(\Leftrightarrow \nabla^2 f(x)\) 半正定(即 \(\nabla^2f \succeq 0\),或 \(\mathbf{x}^\top \mathbf{H} \mathbf{x} \geq 0\)
  • \(f(x)\) 是严格凸函数 \(\Leftarrow \nabla^2 f(x)\) 正定(即 \(\nabla^2f \succ 0\),或 \(\mathbf{x}^\top \mathbf{H} \mathbf{x} > 0\)
  • \(f(x)\) 是一致凸函数 \(\Leftrightarrow \nabla^2 f(x)\) 一致正定

凸集

11.2. 凸性 - 动手学深度学习2.0.0

无约束优化问题的最优解条件

最优解的定义

\(x^* \in \mathbb{R}^n, \delta \geq 0\),则:\(N(x^*, \delta) = {x^* \in \mathbb{R}^n, ||x - x^*|| \leq \delta}\)

\(x^*\)\(f(x)\) 的:

  • 全局极小值点(最小值点):\(\forall x \in \mathbb{R}^n, x \neq x^*, f(x) \geq f(x^*)\)
  • 局部极小值点:\(\exists \delta > 0, \forall x \in N(x^*, \delta), x \neq x^*, f(x) \geq f(x^*)\)
  • 驻点:\(\nabla f(x^*) = 0\)
  • 鞍点:\(\nabla f(x^*) = 0\),且 \(\forall \delta > 0\)\(\exists y,z \in N(x^*, \delta)\),有 \(f(y)>f(x^*)>f(z)\)

\(f(x)\) 为凸函数,则局部极小值点即为全局极小值点。

一阶最优解条件

【一阶最优解的必要条件】设 \(x^* \in D\)\(f(x)\) 的一个局部极小值点,则 \(\nabla f(x^*) = 0\)

证明:对于 \(\forall d \in \mathbb{R}^n\),不妨设 \(||d||=1\)\(\exists \delta > 0\)\(0 < \alpha < \delta\),泰勒展开得:

\[\begin{aligned} f(x^*) &\leq f(x^* + \alpha d) \\ &= f(x^*) + \alpha \nabla f(x^*)^T d + o(||\alpha d||) \end{aligned} \]

整理得:

\[\nabla f(x^*)^T d + \frac{o(||\alpha d||)}{\alpha} \geq 0 \]

\(\alpha \rightarrow 0^+\),则:

\[\nabla f(x^*)^T d \geq 0 \]

\(d = -\nabla f(x^*)\),则有:\(-||\nabla f(x^*)|| \leq 0\),所以:\(\nabla f(x^*) = 0\)

【一阶最优解的充要条件】设 \(f(x)\) 为凸函数,则:\(x^*\)\(f(x)\) 的全局极小值点 \(\Leftrightarrow \nabla f(x^*)=0\)

二阶最优解条件

【二阶最优解的必要条件】设 \(x^* \in D\)\(f(x)\) 的一个局部极小值点,则 \(\nabla f(x^*) = 0\),且 \(\nabla^2 f(x^*)\) 半正定。

证明:对于 \(\forall d \in \mathbb{R}^n\),不妨设 \(||d||=1\)\(\exists \delta > 0\)\(0 < \alpha < \delta\),泰勒展开得:

\[\begin{aligned} f(x^*) &\leq f(x^* + \alpha d) \\ &= f(x^*) + \alpha \nabla f(x^*)^T d + \frac{1}{2} \alpha^2 d^T \nabla^2 f(x^*) d + o(||\alpha d||^2) \\ &= f(x^*) + \frac{1}{2} \alpha^2 d^T \nabla^2 f(x^*) d + o(||\alpha d||^2) \end{aligned} \]

整理得:

\[\frac{1}{2} d^T \nabla^2 f(x^*) d + \frac{o(||\alpha d||^2)}{\alpha^2} \geq 0 \]

\(\alpha \rightarrow 0^+\),则:

\[d^T \nabla^2 f(x^*) d \geq 0 \]

所以 \(\nabla^2 f(x^*)\) 半正定。

【二阶最优解的充分条件】若 \(\nabla f(x^*)=0\),则:

  • \(\nabla^2 f(x^*)\) 正定,则 \(x^*\)\(f(x)\) 的局部极小值点
  • \(\nabla^2 f(x^*)\) 负定,则 \(x^*\)\(f(x)\) 的局部极大值点
  • \(\nabla^2 f(x^*)\) 不定,则 \(x^*\)\(f(x)\) 的鞍点(不是极值点)
  • \(\nabla^2 f(x^*)\) 半正定,则上述三种情况都有可能

可对照《高等数学》中二元函数求极值的充分条件。

posted @ 2024-10-17 08:49  漫舞八月(Mount256)  阅读(47)  评论(0编辑  收藏  举报