Hesse矩阵(海森矩阵)

本文介绍了海森矩阵的概念及其在数学优化中的应用。海森矩阵是由实值函数的二阶偏导数组成的方块矩阵,用于判断临界点是局部极小点、局部极大点还是鞍点。此外还讨论了海森矩阵的对称性和其在高维情况下的推广。
部署运行你感兴趣的模型镜像

数学中,海森矩阵Hessian matrix 或 Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵,此函数如下:

f(x_1, x_2, \dots, x_n),

如果 f 所有的二阶导数都存在,那么 f 的海森矩阵即:

H(f)_{ij}(x) = D_i D_j f(x)

其中 x = (x_1, x_2, \dots, x_n),即

H(f) = \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} \\  \\\frac{\partial^2 f}{\partial x_2\,\partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2\,\partial x_n} \\  \\\vdots & \vdots & \ddots & \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}

(也有人把海森定义为以上矩阵的行列式) 海森矩阵被应用于牛顿法解决的大规模优化问题。

混合偏导数和海森矩阵的对称性[编辑]

海森矩阵的混合偏导数是海森矩阵非主对角线上的元素。假如他们是连续的,那么求导顺序没有区别,即

\frac {\partial}{\partial x} \left( \frac { \partial f }{ \partial y} \right) =       \frac {\partial}{\partial y} \left( \frac { \partial f }{ \partial x} \right)

上式也可写为

f_{xy} = f_{yx} \,

在正式写法中,如果 f 函数在区域 D 内连续并处处存在二阶导数,那么 f的海森矩阵在 D 区域内为对称矩阵

在 \mathbb{R}^2\mathbb{R} 的函数的应用[编辑]

给定二阶导数连续的函数f: \mathbb{R}^2 \to \mathbb{R},海森矩阵的行列式,可用于分辨 f 的临界点是属于鞍点还是极值点

对于 f 的临界点 (x_0, y_0) 一点,有  \frac{\partial f(x_0, y_0)}{\partial x} = \frac{\partial f(x_0, y_0)}{\partial y} = 0,然而凭一阶导数不能判断它是鞍点、局部极大点还是局部极小点。海森矩阵可能解答这个问题。

H = \begin{vmatrix}\frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x\,\partial y} \\ \\\frac{\partial^2 f}{\partial y\,\partial x} & \frac{\partial^2 f}{\partial y^2} \end{vmatrix} = \frac{\partial^2 f}{\partial x^2} \frac{\partial^2 f}{\partial y^2} - (\frac{\partial^2 f}{\partial y\,\partial x})^2
  • H > 0 :若\frac{\partial^2 f}{\partial x^2} > 0,则(x_0, y_0)是局部极小点;若\frac{\partial^2 f}{\partial x^2} < 0,则(x_0, y_0)是局部极大点。
  • H < 0 :(x_0, y_0)是鞍点。
  • H = 0 :二阶导数无法判断该临界点的性质,得从更高阶的导数以泰勒公式考虑。


在高维情况下的推广[编辑]

函数f: \mathbb{R}^n \to \mathbb{R}二阶连续可导时,Hessian矩阵H在临界点x_0上是一个n\times n阶的对称矩阵。

  • 当H是正定矩阵时,临界点x_0是一个局部的极小值。
  • 当H是负定矩阵时,临界点x_0是一个局部的极大值。
  • H=0,需要更高阶的导数来帮助判断。
  • 在其余情况下,临界点x_0不是局部极值。



您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### 定义 Hesse矩阵是一个多元函数的二阶偏导数构成的方阵。对于一个具有二阶连续偏导数的多元函数 \(f(x_1,x_2,\cdots,x_n)\),其 Hesse 矩阵 \(H(f)\) 的元素 \(H_{ij}\) 定义为 \(H_{ij}=\frac{\partial^{2}f}{\partial x_i\partial x_j}\),其中 \(i,j = 1,2,\cdots,n\)。即 \[H(f)=\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}\\ \frac{\partial^{2}f}{\partial x_2\partial x_1}&\frac{\partial^{2}f}{\partial x_2^{2}}&\cdots&\frac{\partial^{2}f}{\partial x_2\partial x_n}\\ \vdots&\vdots&\ddots&\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}\] ### 性质 - **对称性**:若函数 \(f\) 的二阶混合偏导数连续,则根据混合偏导交换顺序定理(在某点存在到二阶的连续混合偏导数,那么在这点二阶混合偏导数都与求导顺序无关),有 \(\frac{\partial^{2}f}{\partial x_i\partial x_j}=\frac{\partial^{2}f}{\partial x_j\partial x_i}\),此时 Hesse 矩阵是对称矩阵 [^1]。 - **与函数凸性的关系**:设在开凸集 \(D \subset \mathbb{R}^n\) 上 \(f(x)\) 二阶可微,则 \(f(x)\) 在 \(D\) 上为凸函数的充要条件是对于任意的 \(x\in D\),\(f(x)\)Hesse 矩阵半正定 [^2]。 ### 应用 - **函数极值判断**:在多元函数的极值问题中,Hesse 矩阵起着关键作用。对于一个驻点(即梯度 \(\nabla f(x)=0\) 的点),可以通过 Hesse 矩阵的正定性来判断该点是极大值点、极小值点还是鞍点。若 Hesse 矩阵正定,则该驻点为极小值点;若 Hesse 矩阵负定,则该驻点为极大值点;若 Hesse 矩阵不定,则该驻点为鞍点。 - **优化算法**:在优化算法中,如牛顿法,Hesse 矩阵被用于求解函数的极值。牛顿法通过利用 Hesse 矩阵的信息来确定搜索方向,从而更快地收敛到函数的极值点。 ### 示例代码(Python 计算 Hesse 矩阵) ```python import sympy as sp # 定义变量 x, y = sp.symbols('x y') # 定义函数 f = x**2 + y**2 # 计算一阶偏导数 df_dx = sp.diff(f, x) df_dy = sp.diff(f, y) # 计算二阶偏导数 d2f_dx2 = sp.diff(df_dx, x) d2f_dxdy = sp.diff(df_dx, y) d2f_dydx = sp.diff(df_dy, x) d2f_dy2 = sp.diff(df_dy, y) # 构建 Hesse 矩阵 H = sp.Matrix([[d2f_dx2, d2f_dxdy], [d2f_dydx, d2f_dy2]]) print("Hesse 矩阵:") sp.pprint(H) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值