就像高中用二阶导数来判断一维二次函数的凹凸走向一样,Hessian矩阵不过是用来判断多维函数在某一指定点的凹凸性而已,看完这个博客想必你会立马恍然大悟,文章篇幅不大,还请耐心看完全程。

1. 基础一:什么是行列式

这个想必大家都懂得,以二维矩阵为例:
在这里插入图片描述

2.基础二:特征值和特征向量

矩阵最大的应用之一就是在几何变换上,比如旋转,平移,反射,以及倍数变大或变小。
举例:
X = [ 3 − 1 ] X=\left [\begin{matrix}3&-1 \end{matrix}\right] X=[31]
[ 2 0 0 2 ] ∗ X \left[\begin{matrix} 2&0\\0&2\end{matrix} \right]*X [2002]X
[ 6 − 2 ] \left[\begin{matrix}6&-2\end{matrix} \right] [62]
可以看出,相等于把矩阵X每个元素都扩大了2倍。
再比如,给定一个普通矩阵
[ 2 3 5 4 ] \left[\begin{matrix} 2&3\\5&4\end{matrix} \right] [2534]
这个矩阵看上去很普通,但是如果乘以
[ 3 5 ] \left[\begin{matrix} 3\\5\end{matrix} \right] [35]
可以得到
[ 21 35 ] \left[\begin{matrix} 21\\35\end{matrix} \right] [2135]
就好比乘以了一个标量7。此时我们便得到了一个特征向量以及特征值。对于分析Hessian矩阵,特征向量不是很重要,但是特征值很重要

3.基础三:求解特征值

简单粗暴,没什么解释的,就这么求的方法为:
∣ [ a b c d ] − [ x 0 0 x ] ∣ = 0 \left|\left[\begin{matrix}a&b\\c&d\end{matrix}\right]-\left[\begin{matrix}x&0\\0&x\end{matrix}\right]\right|=0 [acbd][x00x]=0
∣ a − x b c d − x ∣ = 0 \left|\begin{matrix}a-x&b\\c&d-x\end{matrix}\right|=0 axcbdx=0
我们已经复习过了求行列式的方法,所以上述行列式不难求。
举例,求 [ 2 3 5 4 ] \left[\begin{matrix}2&3\\5&4\end{matrix}\right] [2534]的特征值,你会得到 [ 2 − x 3 5 4 − x ] \left[\begin{matrix}2-x&3\\5&4-x\end{matrix}\right] [2x534x]
计算行列式(determinant)可得
( 2 − x ) ( 4 − x ) − 15 = 0 8 − 6 x + x 2 − 15 = 0 x 2 − 6 x − 7 = 0 ( x − 7 ) ( x + 1 ) = 0 x = 7 / − 1 (2-x)(4-x)-15=0\\8-6x+x^2-15=0\\x^2-6x-7=0\\(x-7)(x+1)=0\\x=7/-1 (2x)(4x)15=086x+x215=0x26x7=0(x7)(x+1)=0x=7/1
7或者-1就是我们要求的特征值。

4.应用:特征值的含义

Hessian矩阵我们已经知道是二阶导数矩阵,有时候二阶导数仍然带有未知数,所以求给定点的Hessian矩阵才有意义,给定坐标后,Hessain矩阵变成常数矩阵,然后就可以求其特征值

  1. 如果Hessian矩阵所有特征值均为正:开口向上凹的点
    在这里插入图片描述
  2. 如果均为负:开口向下凹的点
    在这里插入图片描述
  3. 如果有正有负:存在鞍点
    在这里插入图片描述
  4. 如果有一项为0:不确定情况。

5.结论

Hessain矩阵的几何意义就是判断点的凹凸性,基于Hessian矩阵的牛顿法,只适用于所有特征值均为正的情况。
(本文翻译自Bing搜索某一链接,如有侵权,请立即联系我,我会立刻删除,谢谢☺)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐