黑塞矩阵(Hessian Matrix)
黑塞矩阵和雅可比矩阵,相信搞机器学习方向的同学多多少少也听过一点。但是平时毕竟用到的还是不多,因此也不是很重视,甚至对它们的定义也不是很清楚。😫😫😫此次,就借这个博客梳理一下黑塞矩阵及其用途。🐳
定义
黑塞矩阵是由多元函数的二阶偏导组成的矩阵。假设 \(f(x_1, x_2, ..., x_n)\) 二阶可导,则其黑塞矩阵为:
\[\left[
\begin{array}{cccc}
\frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & ... & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\
\frac{\partial^2 f}{\partial x_2^2} & \frac{\partial^2 f}{\partial x^2_2} & ... & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\
... & ... & ... & ... \\
\frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & ... & \frac{\partial^2 f}{\partial x^2_n} \\
\end{array}
\right]
\]
一般情况下,多元函数的混合二阶偏导与求导次序无关,即:
\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial^2 f}{\partial x_j \partial x_i}
\]
函数凹凸性与黑塞矩阵
先说一下凹凸函数:
凹函数:
对于函数 \(f(\boldsymbol{x})\) ,对于其定义域内的任意两点 \(\boldsymbol{x,\ y}\) ,以及任意实数 \(\theta \in [0, 1]\) ,若\[f(\theta \boldsymbol{x} + (1 - \theta) \boldsymbol{y}) \leq \theta f(\boldsymbol{x}) + (1 - \theta) f(\boldsymbol{y}) \]成立,则 \(f\) 为凸函数(下凸)。若上式严格成立(将小于等于换成小于),则为严格凸函数。同理可定义凹函数(上凸)和严格凹函数。
假设 \(f(x_1, x_2, ..., x_n)\) 二阶可导,则
- 若其黑塞矩阵半正定,则函数是凸函数
- 若黑塞矩阵正定,则函数为严格凸函数
- 若黑塞矩阵半负定,则函数为凹函数
- 若黑塞矩阵负定,则函数为严格凹函数
函数极值与黑塞矩阵
令 \(\boldsymbol{x}_0\) 为 \(f(\boldsymbol{x})\) 的驻点(梯度为0的点),则:
- 黑塞矩阵在该点处正定,则 \(f\) 在该点有严格极小值
- 黑塞矩阵在该点处负定,则 \(f\) 在该点有严格极大值
- 黑塞矩阵在该点处不定,则该点不是极值点,为鞍点
多元函数求极值的过程:求梯度,找到所有驻点 ==> 计算在驻点处的黑塞矩阵 ==> 判断驻点是否为极值点。