Hessian 矩阵(海森矩阵)

ops/2024/9/24 5:28:52/

Hessian 矩阵(海森矩阵)是一个包含二阶偏导数信息的方阵,在数学和优化中起着重要作用。对于一个多元函数,其 Hessian 矩阵是由其各个变量的二阶偏导数组成的矩阵

假设有一个函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \dots, x_n) f(x1,x2,,xn),其 Hessian 矩阵 (H) 的元素是:

H i j = ∂ 2 f ∂ x i ∂ x j H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j} Hij=xixj2f

其中 i i i j j j 是变量的索引,表示函数对变量 x i x_i xi x j x_j xj 进行求导两次得到的结果。

Hessian 矩阵提供了函数局部极值的信息。在优化问题中,通过分析 Hessian 矩阵的特征值和特征向量,可以判断局部极值点的性质。比如:

  • 当 Hessian 矩阵在某点是正定(所有特征值均为正),这个点是局部最小值点。
  • 当 Hessian 矩阵在某点是负定(所有特征值均为负),这个点是局部最大值点。
  • 当 Hessian 矩阵在某点的特征值有正有负,这个点是鞍点(saddle point)。

Hessian 矩阵在优化算法中的应用非常广泛,特别是对于牛顿法等利用二阶导数信息的算法

考虑一个简单的二元函数:

f ( x , y ) = x 2 + 2 y 2 f(x, y) = x^2 + 2y^2 f(x,y)=x2+2y2

这个函数的 Hessian 矩阵是:

H = [ 2 0 0 4 ] H = \begin{bmatrix} 2 & 0 \\ 0 & 4 \end{bmatrix} H=[2004]

这个矩阵中的元素 H i j H_{ij} Hij 表示函数对 x i x_i xi x j x_j xj的二阶偏导数。在这个例子中, H 11 = 2 H_{11} = 2 H11=2 H 22 = 4 H_{22} = 4 H22=4,其余元素为零。

观察 Hessian 矩阵的特征值:

det ( H − λ I ) = 0 \text{det}(H - \lambda I) = 0 det(HλI)=0

其中 I I I 是单位矩阵 λ \lambda λ 是特征值。解这个方程可以得到 Hessian 矩阵的特征值。

对于这个例子,特征值为 λ 1 = 2 \lambda_1 = 2 λ1=2 λ 2 = 4 \lambda_2 = 4 λ2=4,都是正值,说明这个函数在原点附近是一个局部最小值点。这与我们对函数形式的了解是一致的,因为 f ( x , y ) = x 2 + 2 y 2 f(x, y) = x^2 + 2y^2 f(x,y)=x2+2y2是一个沿着 x 方向开口朝上的二次型,所以原点是一个局部最小值点。


http://www.ppmy.cn/ops/34464.html

相关文章

深入浅出MySQL-06-【索引的设计和使用】

文章目录 前言1.索引概述2.设计索引的原则3.索引设计的误区4.索引设计的一般步骤5.BTREE索引和HASH索引6.索引在MySQL 8.0中的改进6.1.不可见索引6.2.倒序索引 7.总结 前言 环境: Windows11MySQL-8.0.35 1.索引概述 所有MySQL列类型都可以被索引,对相…

SQL注入基础-3

一、宽字节注入 1、宽字节:字符大小为两个及以上的字节,如GBK,GB2312编码 2、数据库使用GBK编码时,会将两个字符合并为一个汉字(宽字节)。特殊值字符如单引号都会被转义【--->\】,如sqli-lads第32关,输…

VRRP基础

1.基本概念 VRRP(Virtual Router Redundancy protocol,虚拟路由冗余协议) VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。 VRRP协议版本为VRRPv2&…

c语言:打印任意行数的菱形

例如&#xff1a;以下图片形式 #include <stdio.h> int main() {int line 0;scanf_s("%d", &line);int i 0;//打印上半部分for (i 0; i < line; i){//打印空格数int j 0;for (j 0; j < line - 1 - i; j){printf(" ");}//打印*数量for…

迅饶科技 X2Modbus 网关 AddUser 任意用户添加漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…

Docker部署PostgreSQL

1. 指令&#xff1a; # 拉取镜像 docker pull postgres# 创建容器 docker run --name postgres -e POSTGRES_PASSWORDpostgres -p 5432:5432 -v /mydata/docker/postgres/data:/var/lib/postgresql/data -d postgres# 或&#xff1a; docker run \--name postgres \-e POSTGRE…

Linux 设置一个程序开机启动的几种方式

在 Alpine Linux 系统中,你可以通过以下几种方式设置程序开机自启动: 使用 OpenRC 服务管理工具 OpenRC 是 Alpine Linux 默认的初始化系统和服务管理器。你可以编写一个 OpenRC 服务脚本并将其放置在 /etc/init.d 目录下。然后使用以下命令启用该服务: rc-update add 服务名…

【Java基础】设计模式——单例设计模式

单例设计模式&#xff08;Singleton Design Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保⼀个类有且只有⼀个实例&#xff0c;并提供一个全局访问点来访问这个唯一实例。 单例模式主要解决的是&#xff0c;⼀个全局使⽤的类频繁的创建和消费&#xff0c;从⽽提…