zoukankan      html  css  js  c++  java
  • Hessian矩阵与局部极小值

    一、Hassion矩阵定义

    实值函数f(x)相对于n×1实向量x的二阶偏导是一个由n2个二阶偏导组成的矩阵,即(Hassion矩阵):

                                         

    根据定义,Hessian矩阵的第i行第j列是梯度 f(x)/xi=xif(x)第j个分量的梯度,即:

                                        

               

    Hessian矩阵求法: 

         (1)求实值函数f(x)关于向量变元x的偏导数,得到实值函数的梯度 ∂f(x)∂x/∂f(x)∂x;
         (2)再求梯度 ∂f(x)/∂x相对于1×n行向量xT的偏导数,得到梯度的梯度即Hessian矩阵。

    二、局部极小点的条件

      根据定义确定某个点x*是否为目标函数的局部极小点,需要将目标函数在该点的取值与函数在该点领域里所有点的取值进行比较。这显然是不实际的做法。然而,如果f(x)是二次连续可微分的话,直接通过检验梯度∇xf(x∗)和Hessian矩阵∇x2f(x∗), 即可判断点x∗是否为局部极小点(甚至是严格局部极小点)。若(Δx)TΔx很小, 即函数f(x)的二阶Taylor级数展开为:

                                 

    定理:假设 2xf(x)∇x2f(x)在 xx∗的开邻域内连续,并且

                           

    则 x∗是函数f(x)的严格局部极小点。式中 ∇x2f(x∗)>0表示Hessian矩阵 ∇x2f(x∗)正定。(具体即 (Δx)Tx2f(x)Δx>0)

    证明:由函数f(x)的二阶Taylor级数展开 f(x∗+Δx)=f(x∗)+(Δx)T∇xf(x∗)+1/2(Δx)T2xf(x∗)Δx,且 ∇xf(x∗)=0, (Δx)T2xf(x∗)Δx>0可得:f(x∗+Δx)>f(x∗),所以 x∗是函数f(x)的严格局部极小点。
      

    应当注意的是,该二阶充分条件并不是必要条件:有的点 x∗可能是函数f(x)的严格局部极小点,但是在该点的Hessian矩阵却不是正定的。例如,观察知,点 x=0是函数 f(x)=(xTx)2的严格局部极小点,但是Hessian矩阵

                         

    在严格局部极小点 x=0处为零矩阵,不是正定矩阵。

    定理:凸函数f(x)的任何局部极小点x∗都是该函数的一个全局极小点。
    证明:假设x∗是局部极小点,但不是一个全局极小点。于是,可以求出一点z∈R满足f(z)<f(x∗).考虑从x∗到z的线段上的点x,则

                           

    根据凸函数的性质,有

                         

     则当 x趋近于x∗时,有 f(x)<f(x∗),所以 x∗不是局部极小点,与假设矛盾。因此,局部极小点 x∗必定时一个全局极小点。

     转载于:https://blog.csdn.net/Flying_sfeng/article/details/81196582

     

  • 相关阅读:
    django QuerySet对象转换成字典对象
    HTTP请求中三种参数类型
    django开发中遇到的问题
    win7下mysql8.0.12解压缩版安装
    Django小部件
    程序员上班有什么提高效率的技巧?
    Android应用AsyncTask处理机制详解及源码分析
    Android常用工具类
    Android Volley解析
    Android 开发有哪些新技术出现?
  • 原文地址:https://www.cnblogs.com/kayiko/p/14583988.html
Copyright © 2011-2022 走看看