为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值

为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值

在学习机器学习的过程中,我们不可绕开的是训练模型的时候怎么找到损失函数的极值。
可能大家都曾记住过这样一个结论:若M点处函数的梯度为0,则M为驻点,那么:
(1)Hessian矩阵正定=>函数在M点有极小值
(2)Hessian矩阵负定=>函数在M点有极大值
(3)Hessian矩阵不定=>M点不是极值点
最初我看到这个结论的时候把他当公式背下来了,但是时间久了容易忘而且理解不深刻,最近试着证明理解了一下,希望大家批评指正。

1.引理:多元函数的Taylor展开

多元函数的在 x ⃗ 0 \vec x_0 x 0处的Taylor展开为:


f ( x 1 , x 2 , . . . . . . , x n ) = f ( x 0 ( 1 ) , x 0 ( 2 ) , . . . . . . , x 0 ( n ) ) + ∑ i = 1 n f x 0 ( i ) ′ ( x 0 ( 1 ) , x 0 ( 2 ) , . . . . . . , x 0 ( n ) ) ( x i − x 0 ( i ) ) + 1 2 ! ∑ i , j = 0 n ( x i − x 0 ( i ) ) ( x j − x 0 ( j ) ) f x 0 ( i ) x 0 ( j ) ′ ′ ( x 0 ( 1 ) , x 0 ( 2 ) , . . . . . . , x 0 ( n ) ) + o n f(x_1,x_2,......,x_n) = f(x_{0(1)},x_{0(2)},......,x_{0(n)})+ \sum_{i=1}^{n}f'_{x_{0(i)}}(x_{0(1)},x_{0(2)},......,x_{0(n)})(x_i - x_{0(i)})\\+ \frac{1}{2!}\sum_{i,j=0}^n(x_i-x_0(i))(x_j-x_{0(j)})f''_{x_0(i)x_0(j)}(x_{0(1)},x_{0(2)},......,x_{0(n)}) + o^n f(x1,x2,......,xn)=f(x0(1),x0(2),......,x0(n))+i=1nfx0(i)(x0(1),x0(2),......,x0(n))(xix0(i))+2!1i,j=0n(xix0(i))(xjx0(j))fx0(i)x0(j)(x0(1),x0(2),......,x0(n))+on

写成矩阵形式:


f ( x ⃗ ) = f ( x ⃗ 0 ) + [ ∇ f ( x 0 ) ] T ( x ⃗ − x ⃗ 0 ) + 1 2 ! [ x ⃗ − x ⃗ 0 ] T H ( x 0 ) [ x ⃗ − x ⃗ 0 ] + o n f(\vec x) = f(\vec x_0) + [\nabla f(x_0)]^T(\vec x - \vec x_0) +\frac{1}{2!}[\vec x - \vec x_0]^TH(x_0)[\vec x - \vec x_0] + o^n f(x )=f(x 0)+[f(x0)]T(x x 0)+2!1[x x 0]TH(x0)[x x 0]+on

其中 H H H是Hessian矩阵

2.从极值原理出发看为什么有极值

假设 x 0 x_0 x0是驻点,我们想判断这个点是否是极值点,那么要看 f ( x 0 + Δ x ) f(x_0+\Delta x) f(x0+Δx) f ( x 0 ) f(x_0) f(x0)的关系:
由Taylor展开的矩阵形式:

f ( x ⃗ + Δ x ⃗ ) − f ( x ⃗ ) = [ ∇ f ( x 0 ) ] T ( Δ x ⃗ ) + 1 2 ! [ Δ x ⃗ ] T H ( x 0 ) [ Δ x ⃗ ] + o n (1) f(\vec x + \vec {\Delta x})-f(\vec x) = [\nabla f(x_0)]^T( \vec {\Delta x}) +\frac{1}{2!}[ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}] + o^n \tag{1} f(x +Δx )f(x )=[f(x0)]T(Δx )+2!1[Δx ]TH(x0)[Δx ]+on(1)

由于 x 0 x_0 x0是驻点,所以 [ ∇ f ( x 0 ) ] T [\nabla f(x_0)]^T [f(x0)]T为0,忽略 o n o^n on,则(1)式的正负仅与 [ Δ x ⃗ ] T H ( x 0 ) [ Δ x ⃗ ] [ \vec {\Delta x}]^TH(x_0)[ \vec {\Delta x}] [Δx ]TH(x0)[Δx ]有关,故:
(1)Hessian矩阵正定=>(1)式大于0恒成立,函数在M点有极小值
(2)Hessian矩阵负定=>(1)式小于0恒成立函数在M点有极大值
(3)Hessian矩阵不定=>(1)式正负性难料,M点不是极值点

Hessian矩阵是多元函数极值判定的重要工具。对于一个具有n个变量的多元函数f(x1, x2, ... , xn),Hessian矩阵是一个n×n的矩阵,其元素为二阶偏导数。Hessian矩阵的定义如下: Hessian矩阵的第i行第j列元素,即Hessian矩阵的第(i, j)元素,表示函数f对第i个变量x_i和第j个变量x_j的混合偏导数。 多元函数极值可能出现在驻点 (critical point)或者临界点 (boundary point)上,通过Hessian矩阵可以判断一个驻点的极值类型。具体的判断方法如下: 1. 首先,计算函数f的一阶偏导数,求出所有的驻点。 2. 对于每个驻点,计算Hessian矩阵。 3. 判断Hessian矩阵正定性(positive definite)、负定性(negative definite)、不定性(indefinite)或者半定性(positive semi-definite和negative semi-definite)。 - 如果Hessian矩阵在驻点处是正定的,则该点为函数极小值点; - 如果Hessian矩阵在驻点处是负定的,则该点为函数的极大值点; - 如果Hessian矩阵在驻点处是不定的,则该点既不是极小值点也不是极大值点; - 如果Hessian矩阵在驻点处是半定的,则需要进一步分析。 4. 进一步分析半定性的情况。 - 如果Hessian矩阵在驻点处是半正定的,则该点可能是函数极小值点,也可能是鞍点; - 如果Hessian矩阵在驻点处是半负定的,则该点可能是函数的极大值点,也可能是鞍点; - 如果Hessian矩阵在驻点处即半正定又半负定,则该点既可能是函数极小值点又可能是极大值点。 通过以上步骤,我们可以利用Hessian矩阵来判断多元函数的驻点的极值类型,从而找到函数极值点。需要注意的是,Hessian矩阵为对称矩阵,而且其元素的值与函数的表达式有关,要根据具体问题进行计算,以得到准确的极值判定结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值