Hessian矩阵及局部极小点的条件
一 Hessian矩阵:
实值函数f(x)相对于 n×1 n × 1 n\times 1实向量x的二阶偏导是一个由 m2 m 2 m^2个二阶偏导组成的矩阵(称为Hessian矩阵),定义为:
{\partial ^2f(x)\over \partial x \partial x^T}={\partial \over \partial x^T}[{\partial f(x)\over \partial x}]
或者简写为梯度的梯度:
\nabla_x^2f(x)=\nabla_x(\nabla_xf(x))
根据定义,Hessian矩阵的第i行第j列是梯度 ∂f(x)∂xi=∇xif(x) ∂ f ( x ) ∂ x i = ∇ x i f ( x ) {\partial f(x)\over \partial {x_i}}=\nabla_{x_i}f(x)第j个分量的梯度,即:
[{\partial ^2f(x)\over \partial x \partial x^T}]_{i,j}={\partial ^2f(x)\over \partial x_i \partial x_j},
或者写做:
{\partial ^2f(x)\over \partial x \partial x^T}=\begin{bmatrix}{\partial ^2f(x)\over \partial x_1 \partial x_1} & \cdots \\{\partial ^2f(x)\over \partial x_2 \partial x_1} & \cdots \\\vdots & \vdots & \ddots & \vdots \\{\partial ^2f(x)\over \partial x_n \partial x_1} & \cdots \\\end{bmatrix}
因此,Hessian矩阵可以用两步法求出来:
(1)求实值函数f(x)关于向量变元x的偏导数,得到实值函数的梯度 ∂f(x)∂x; ∂ f ( x ) ∂ x ; {\partial f(x)\over \partial {x}};
(2)再求梯度 ∂f(x)∂x ∂ f ( x ) ∂ x {\partial f(x)\over \partial {x}}相对于 1×n 1 × n 1\times n行向量 xT x T x^T的偏导数,得到梯度的梯度即Hessian矩阵。
二 局部极小点的条件
根据定义确定某个点 x∗ x ∗ x_*是否为目标函数的局部极小点,需要将目标函数在该点的取值与函数在该点领域里所有点的取值进行比较。这显然是不实际的做法。然而,如果f(x)是二次连续可微分的话,直接通过检验梯度 ∇xf(x∗) ∇ x f ( x ∗ ) \nabla _xf(x_*)和Hessian矩阵 ∇2xf(x∗) ∇ x 2 f ( x ∗ ) \nabla _x^2f(x_*), 即可判断点 x∗ x ∗ x_*是否为局部极小点(甚至是严格局部极小点)。
若 (Δx)TΔx ( Δ x ) T Δ x (\Delta x)^T\Delta x很小, 即函数f(x)的二阶Taylor级数展开为:
f(x+\Delta x)=f(x)+(\Delta x)^T\nabla_xf(x)+{1\over 2}(\Delta x)^T\nabla_x^2f(x)\Delta x
关于判断一个局部极小点的一阶必要条件和一阶充分条件,请参考《矩阵分析与应用》270页(张贤达著),下面主要讲解其二阶充分条件:
定理:假设 ∇2xf(x) ∇ x 2 f ( x ) \nabla_x^2f(x)在 x∗ x ∗ x_*的开邻域内连续,并且
\nabla_xf(x_*)=0, \ \nabla_x^2f(x_*)>0
则 x∗ x ∗ x_*是函数f(x)的严格局部极小点。式中 ∇2xf(x∗)>0 ∇ x 2 f ( x ∗ ) > 0 \nabla_x^2f(x_*)>0表示Hessian矩阵 ∇2xf(x∗) ∇ x 2 f ( x ∗ ) \nabla_x^2f(x_*)正定。(具体即 (Δx)T∇2xf(x)Δx>0 ( Δ x ) T ∇ x 2 f ( x ) Δ x > 0 (\Delta x)^T\nabla_x^2f(x)\Delta x>0)
证明:由函数f(x)的二阶Taylor级数展开 f(x∗+Δx)=f(x∗)+(Δx)T∇xf(x∗)+12(Δx)T∇2xf(x∗)Δx f ( x ∗ + Δ x ) = f ( x ∗ ) + ( Δ x ) T ∇ x f ( x ∗ ) + 1 2 ( Δ x ) T ∇ x 2 f ( x ∗ ) Δ x f(x_*+\Delta x)=f(x_*)+(\Delta x)^T\nabla_xf(x_*)+{1\over 2}(\Delta x)^T\nabla_x^2f(x_*)\Delta x,且 ∇xf(x∗)=0, (Δx)T∇2xf(x∗)Δx>0 ∇ x f ( x ∗ ) = 0 , ( Δ x ) T ∇ x 2 f ( x ∗ ) Δ x > 0 \nabla_xf(x_*)=0, \ (\Delta x)^T\nabla_x^2f(x_*)\Delta x>0可得: f(x∗+Δx)>f(x∗) f ( x ∗ + Δ x ) > f ( x ∗ ) f(x_*+\Delta x)>f(x_*),所以 x∗ x ∗ x_*是函数f(x)的严格局部极小点。
应当注意的是,该二阶充分条件并不是必要条件:有的点 x∗ x ∗ x_*可能是函数f(x)的严格局部极小点,但是在该点的Hessian矩阵却不是正定的。例如,观察知,点 x=0 x = 0 x=0是函数 f(x)=(xTx)2 f ( x ) = ( x T x ) 2 f(x)=(x^Tx)^2的严格局部极小点,但是Hessian矩阵
{\partial ^2f(x)\over \partial x \partial x^T}={\partial ^2\over \partial x \partial x^T}(x^Tx)^2=12x^Tx
在严格局部极小点 x=0 x = 0 x=0处为零矩阵,不是正定矩阵。
定理:凸函数f(x)的任何局部极小点 x∗ x ∗ x_*都是该函数的一个全局极小点。
证明:假设 x∗ x ∗ x_*是局部极小点,但不是一个全局极小点。于是,可以求出一点 z∈R z ∈ R z\in R满足 f(z)<f(x∗) f ( z ) < f ( x ∗ ) f(z).考虑从 x∗ x ∗ x_*到 z z z的线段上的点x" role="presentation">xxx,则
x=\lambda z+(1-\lambda)x_*, \ \ \lambda \in (0,1]
根据凸函数的性质,有
f(x)\le \lambda f(z)+(1-\lambda)f(x_*).
则当 x x x趋近于x∗" role="presentation">x∗x∗x_*时,有 f(x)<f(x∗) f ( x ) < f ( x ∗ ) f(x),所以 x∗ x ∗ x_*不是局部极小点,与假设矛盾。因此,局部极小点 x∗ x ∗ x_*必定时一个全局极小点。
参考:《矩阵分析与应用》(张贤达著)
Hessian矩阵及局部极小点的条件相关推荐
- 机器学习中的数学——Jacobian矩阵和Hessian矩阵
分类目录:<机器学习中的数学>总目录 有时我们需要计算输入和输出都为向量的函数的所有偏导数.包含所有这样的偏导数的矩阵被称为Jacobian矩阵.具体来说,如果我们有一个函数f:Rm→Rn ...
- 最优化--中科院实景课堂--第二节 局部极小点+凸函数+无约束优化引言
1.目标函数很复杂,甚至可能需要采样,而且来之不易.因此需要用少的步数算出最值 2.gloal.local(weak平/strict严格/isolated孤立[他的邻域内只有这样一个极小点,没有震荡] ...
- 矩阵的二次型,矩阵的迹、正定矩阵、Hessian矩阵、实对称
一.二次型: 1.1 定义 含有nnn个变量x1,x2,-,xnx_1,x_2,\dots,x_nx1,x2,-,xn的二次齐次函数(如果变量乘以一个系数,则新函数会是原函数再乘上系数的某次方倍 ...
- Jacobin和Hessian矩阵
参考 Jacobin和Hessian矩阵 - 云+社区 - 腾讯云 有时我们需要计算输入和输出都为向量和函数的所有偏导数.包含所有这样的偏导数的矩阵被称为Jacobian矩阵.具体来说,如果我们有一 ...
- 多元函数极值、Hessian矩阵、正定矩阵
这篇笔记,来自我对支持向量机(SVM)算法原理的学习.支持向量机算法最终归结为二次规划问题,研究二次规划问题,必须先从一般的最优化问题开始分析.如无特别声明,本文最优化问题特指寻求目标函数最小值. 一 ...
- Hessian矩阵在XGBoost算法的应用小结
来源:机器学习算法那些事本文约1100字,建议阅读5分钟 本文深入浅出的总结了Hessian矩阵在XGboost算法中的两种应用,即权重分位点算法和样本权重和算法 . 前言 Hessian矩阵最常见的 ...
- 如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题
如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题? 1.首先介绍一下,矩阵的病态问题 矩阵病态主要是因为矩阵向量之间相关性太大,在二维上说就是矩阵向量之间的夹角太小,导致这两 ...
- 牛顿法, Jacobian矩阵 和 Hessian矩阵
牛顿法 主要有两方面的应用: 求方程的根: 求解最优化方法: 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解为 牛顿法是一种迭代求解方法(Newton童鞋 ...
- 眼底图像血管增强与分割--(5)基于Hessian矩阵的Frangi滤波算法
在最优化里面提到过的hessian矩阵(http://blog.csdn.net/piaoxuezhong/article/details/60135153),本篇讲的方法主要是基于Hessian矩阵 ...
最新文章
- 使用OpenCV和Python计算图像的“彩色度”
- 我司用了 6 年的 Redis 分布式限流器,很牛逼了!
- getprocaddress得到为0_拼接图像得到全景图
- 11.15 dmidecode:查询系统硬件信息
- java 中 image 和 byte[] 相互转换
- 计算机专业评副高论文要求,护士晋升副高职称论文要求
- matlab中garchred是什么意思,MATLAB里的aic是啥意思
- Android10apk怎么传数据,Android不同apk之间传递参数与数据
- Lua之table(表)
- C++中继承和派生详解(公有、私有、保护继承的区别)
- 基于pyspark 大数据分析_基于阿里云平台的大数据教学案例 —— B站弹幕数据分析...
- jenkins+testNG
- Wireless Network概念解析
- ABAQUS中获取参考点时间-位移曲线
- Aspnet Mvc 前后端分离项目手记(一) 关于跨域问题(还有前言)
- uni-app 地图拖拽后,回到我的位置
- 魔方(4)二阶魔方、六阶魔方、七阶魔方
- android:TableRow之平均分布列
- 计算机专业中agp是什么意思,计算机的主板,cpu,内存,显卡,硬盘的主要用途是什么?它们的单位都是什么意思?...
- 议题预告 | Pulsar Summit Asia 2021:Day 1 -主题演讲
热门文章
- 子类内部调用父类成员函数,及子类对象在外部调用父类成员函数问题(C++)
- 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程
- 金融IT的“困”与“道”
- 拍摄UFP 单一职责原则
- bom树形结构 表设计_BOM模块常用表结构
- bzoj4544: 椭圆上的整点
- adb:failed to install app.apk Failure [INSTALL_FAILED_VERSION_DOWNGRADE: Package Verification Result
- MATLAB代码:基于模型预测控制的楼宇负荷需求响应研究
- uni-app APP端-微信登录流程
- [4G5G专题-90]:流程 - 4G LTE 终端在RRC IDLE状态下的行为