1.Hessian矩阵定义及性质
在上一节说过,梯度 \(\nabla f(\mathbf{X})\) 是\(f(\mathbf{X})\) 关于\(\mathbf{X}\) 的一阶导数,现在一个问题\(f(\mathbf{X})\) 关于 \(\mathbf{X}\) 的二阶导数是什么?Hessian 矩阵(海森矩阵)是一个多变量实值函数\(f(\mathbf{X})\)的二阶导数构成得方阵,其几何意义是描述了一个多元函数或场函数的局部曲率。在机器学习、优化问题和物理反演问题中,Hessian矩阵扮演着重要的角色,尤其是在寻找函数的极值点(如损失函数或目标函数的最小值)和分析系统的稳定性。下面是关于Hessian矩阵的详细介绍:
Definition 4.1.1 设\(f:\mathbb{R}^n\rightarrow{\mathbb{R}}\) , \(\mathbf{X}\in{R}^n\) ,如果\(f\)在点\(\mathbf{X}_0\) 处对于自变量\(\mathbf{X}\) 的各个分量\(x_i,x_j\) 的二阶偏导
\\\frac{\\part{f(\\mathbf{X}_0)}}{\\part{x_i}\\part{x_j}} \\hspace{2em} (i,j=1,2,...,n) \\
都存在,则称函数\(f\) 在点\(\mathbf{X}_0\) 处二阶可导,并且称矩阵:
\\\nabla\^2f(\\mathbf{X}_0)=\\left(\\begin{matrix}\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_1\^2}},\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_1}\\part{x_2}},\&\\cdots,\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_1}\\part{x_n}}\\\\ \\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_1}\\part{x_2}},\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_2\^2}},\&\\cdots,\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_2}\\part{x_n}}\\\\ \\cdots \&\\cdots \&\\cdots \&\\cdots \\\\ \\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_n}\\part{x_1}},\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_n}\\part{x_2}},\&\\cdots,\&\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_n}\^2} \\end{matrix}\\right) \\tag{2} \\
是\(f\)在点\(\mathbf{X}0\) 处的Hessian矩阵 ,记为\(\mathbf{H}{ij}=\frac{\part^2{f}}{\part{x_i}\part{x_j}}\)。
在数学分析中已经知道,当\(f\) 在点\(\mathbf{X}_0\) 处的所有二阶偏导数为连续时有:
\\\frac{\\part\^2f(\\mathbf{X}_0)}{\\part{x_i}\\part{x_j}}=\\frac{\\part\^2{f(\\mathbf{X}_0)}}{\\part{x_j}\\part{x_i}} \\tag{3} \\
因此,在这种情况下Hessian矩阵是对称矩阵。
推论 1 设\(\mathbf{a}\in{\mathbf{R}^n},\mathbf{X}\in{\mathbf{R}^n},b\in{R}\),求线性函数:
\f(\\mathbf{X})=\\mathbf{a}\^T\\mathbf{X}+b\\tag{4} \\
在任意点\(\mathbf{X}\) 处的梯度向量和Hessian矩阵:
\\\begin{aligned} \&\\nabla{f(\\mathbf{X})}=\\mathbf{a}\\\\ \&\\nabla\^2{f(\\mathbf{X})}=\\mathbf{0} \\end{aligned} \\tag{5} \\
证 明: 设\(\mathbf{a}=a_1,a_2,\\cdots,a_n^{T},\mathbf{X}=x_1,x_2,\\cdots,x_n^{T}\) 则:
\f(x_1,x_2,\\cdots,x_n)=\\sum\^{n}_{i=1}a_ix_i+b \\tag{6} \\
根据梯度向量\(\nabla{f}\)的定义:
\\\nabla{f(\\mathbf{X})}=\\frac{\\part{f}}{\\part{x_i}}=a_i \\hspace{2em} (i=1,2,\\cdots,n) \\tag{7} \\
由式(7)可知,
\\\nabla{f(\\mathbf{X})}=\[a_1,a_2,\\cdots,a_n^T=\mathbf{a} \tag{8} \]
根据式(2)的\(Hessian\)矩阵的定义:
\\\frac{\\part\^2{f}}{\\part{x_i}\\part{x_j}}=0, \\hspace{2em} i,j=1,2,\\cdots,n \\tag{9} \\
所以:
\\\nabla\^2{f(\\mathbf{X})}=\\mathbf{0} \\tag{10} \\
推论 2 设\(\mathbf{A}\in{R^{n\times{n}}}\) 是对称实方阵,\(\mathbf{b}\in{\mathbf{R}^n},c\in\mathbf{R}^1\) ,其二次函数\(f(\mathbf{X})=\frac{1}{2}\mathbf{X}^T\mathbf{A}\mathbf{X}+\mathbf{b}^T\mathbf{X}+c\) ,在任意点处的梯度向量\(\nabla{f(\mathbf{X})}\) 及Hessian矩阵 \(\nabla^2f(\mathbf{X})\) 为如下形式:
\\\begin{aligned} \&\\nabla{f}=\\mathbf{AX+b} \\\\ \&\\nabla\^2{f}=\\mathbf{A} \\end{aligned} \\tag{11} \\
证 明: 设\(\mathbf{A}=a_{ij}_{n\times{n}}\) ,\(\mathbf{X}=x_1,x_2,...,x_n^T\), \(\mathbf{b}=b_1,b_2,...,b_n^T\) ,二次函数\(f(\mathbf{X})\) 可以写成如下形式:
\f(x_1,x_2,\\cdots,x_n)=\\frac{1}{2}\\sum_{i=1}\^{n}\\sum_{j=1}\^{n}a_{ij}x_ix_j+\\sum_{i=1}\^{n}b_ix_i+c \\tag{12} \\
将它对各个变量 \(x_i\) (\(i=1,\cdots,n\)) 求偏导数,得到:
\\\nabla{f(\\mathbf{X})}=\\left( \\begin{matrix} \\sum_{j=1}\^n a_{1j}x_j+b_1\\\\ \\vdots \\\\\\sum_{j=1}\^{n}a_{n_j}x_j+b_n \\end{matrix} \\right)= \\left(\\begin{matrix}\\sum_{j=1}\^{n}a_{1j}x_j\\\\\\vdots\\\\\\sum_{j=1}\^na_{nj}x_j\\end{matrix}\\right)+\\left(\\begin{matrix}b_1\\\\ \\vdots \\\\b_n\\end{matrix}\\right) \\tag{13} \\
所以:
\\\nabla{f(\\mathbf{X})}=\\mathbf{AX+b} \\tag{14} \\
再对它们的求偏导数是:
\ \\frac{\\part{f(\\mathbf{X})}}{\\part{x_i}\\part{x_j}}=a_{ij} \\tag{15} \\
所以:
\\\nabla\^2f(\\mathbf{X})=\\mathbf{A} \\tag{16} \\
以上两个例子说明,\(n\)元函数求导与一元函数求导在形式上一致的,即线性函数的一阶导数的求导为常向量,其二阶导数为零矩阵;而二次函数的一阶导数为线性向量函数, 其二阶导数为常矩阵。
在此介绍在今后的计算中要用到的向量函数的导数。
Definition 4.1.2 设一个向量函数\(h:R^{n}\rightarrow{R^m},\mathbf{X}_0\in{R^n}\),记\(h(\mathbf{X})=\{h_1(\mathbf{X}),h_2(\mathbf{X}),\cdots,h_m(\mathbf{X})\}^T\),如果\(h_i(i=1,2,\cdots,m)\) 在点\(\mathbf{X}_0\) 处对于自变量\(\mathbf{X}=x_1,x_2,x_3,\\cdots,x_n^T\) 的各分量的偏导数\(\frac{\part{h_i(\mathbf{X}_0)}}{\part{x_j}}\space(j=1,2,3,\cdots,m)\) 都存在,则称向量函数\(h(\mathbf{X})\) 在点\(\mathbf{X}_0\) 处是一阶可导的,并且称矩阵:
\\\nabla_{m\\times{n}}h(\\mathbf{X}_0)=\\left\[\\begin{matrix} \\frac{\\part{h_1(\\mathbf{X}_0)}}{\\part{x_1}} \&\\frac{\\part{h_1(\\mathbf{X}_0)}}{\\part{x_2}} \&\\cdots \&\\frac{\\part{h_1(\\mathbf{X}_0)}}{\\part{x_n}} \\\\ \\frac{\\part{h_2(\\mathbf{X}_0)}}{\\part{x_1}} \&\\frac{\\part{h_2(\\mathbf{X}_0)}}{\\part{x_2}} \&\\cdots \&\\frac{\\part{h_2(\\mathbf{X}_0)}}{\\part{x_n}}\\\\ \\cdots \&\\cdots \&\\cdots \&\\cdots \\\\ \\frac{\\part{h_m(\\mathbf{X}_0)}}{\\part{x_1}} \&\\frac{\\part{h_2(\\mathbf{X}_0)}}{\\part{x_2}} \&\\cdots \&\\frac{\\part{h_2(\\mathbf{X}_0)}}{\\part{x_n}} \\end{matrix}\\right \tag{17} \]
是\(h\)在点\(X_0\) 处的一阶导数或Jacobi 矩阵,简记为
\\\nabla{\\mathbf{h}(\\mathbf{X}_0)}=\\nabla_{m\\times{n}}\\mathbf{h}(\\mathbf{X}_0) \\tag{18} \\
由于\(n\)元函数\(f:\mathbf{R}^n\rightarrow \mathbf{R}^1\) 的梯度是向量函数:
\\\nabla{f(\\mathbf{X})}=\\left\[\\frac{\\part{f(\\mathbf{X})}}{\\part{x_1}},...,\\frac{\\part{f(\\mathbf{X})}}{\\part{x_n}}\\right^T \tag{19} \]
所以\(\nabla f(\mathbf{X})\) 的一阶导数或Jacobi 矩阵为:
\\\begin{aligned} \\nabla_{n\\times{n}}\\nabla{f(\\mathbf{X})}\&=\\left\[\\begin{matrix}\\frac{\\part}{\\part{x_1}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_1}}\\right) \&\\frac{\\part}{\\part{x_2}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_1}}\\right) \&\\cdots \&\\frac{\\part}{\\part{x_n}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_1}}\\right)\\\\ \\frac{\\part}{\\part{x_1}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_2}}\\right) \&\\frac{\\part}{\\part{x_2}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_2}}\\right) \&\\cdots \&\\frac{\\part}{\\part{x_n}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_2}}\\right)\\\\ \\cdots \&\\cdots \&\\cdots \&\\cdots \\\\ \\frac{\\part}{\\part{x_1}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_n}}\\right) \&\\frac{\\part}{\\part{x_2}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_n}}\\right) \&\\cdots \&\\frac{\\part}{\\part{x_n}}\\left(\\frac{\\part{f(\\mathbf{X})}}{\\part{x_n}}\\right) \\end{matrix}\\right\\ &=\left\\begin{matrix}\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_1\^2}} \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_1x_2}} \&\\cdots \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_1x_n}}\\\\ \\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_1x_2}} \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_2\^2}} \&\\cdots \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_2x_n}}\\\\ \\cdots \&\\cdots \&\\cdots \&\\cdots\\\\ \\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_1x_n}} \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_2x_n}} \&\\cdots \&\\frac{\\part\^2{f(\\mathbf{X})}}{\\part{x_n\^2}} \\end{matrix}\\right\\ &=\nabla^2{f(\mathbf{X})} \end{aligned} \tag{20} \]
即:
\\\nabla_{n\\times{n}}\\nabla{f(\\mathbf{X})}=\\nabla\^2f(\\mathbf{X}) \\tag{21} \\
据此,从上式的得知,函数梯度的Jacobi的矩阵为此函数\(f(\mathbf{X})\) 的Hessian矩阵。
下面给出常用Jacobi矩阵的几个公式和推论:
- \(\nabla{\mathbf{c}{n\times1}}=\mathbf{0}{n\times{n}}\) ,其中\(\mathbf{c}\) 是分量全部为常量的\(n\)维向量,\(\mathbf{0}\) 是\(n\times{n}\) 阶零向量;
- \(\nabla{\mathbf{X}}=\mathbf{I}\),其中\(\mathbf{X}\) 是\(n\)维向量,\(I\) 为\(n\times{n}\) 阶单位矩阵;
- \(\nabla{\mathbf{AX}}=\mathbf{A}^T\),其中\(\mathbf{A}\)是\(m\times{n}\)阶矩阵;
- 设 \(\phi{(t)}=f(\mathbf{X}_0+t\mathbf{P})\),其中\(f:\mathbf{R}^n\rightarrow\mathbf{R}^{1}\), \(\phi:\mathbf{R}\rightarrow\mathbf{R}\),则\(\phi^{\prime}(t)=\nabla f(\mathbf{X}_0+t\mathbf{P})^T\mathbf{P}\), \(\phi^{\prime\prime}=\mathbf{P}^T\nabla^2{f(\mathbf{X}_0+t\mathbf{P})}\mathbf{P}\)
2.多元函数的Taylor展开
多元函数的Taylor展开式在最优化方法中是十分重要的,许多方法及其收敛方法的证明是从其出发,这里给出Taylor展开定理及其证明。Taylor展开近似可以有效地将复杂函数化为二次函数。
定 理 4.2.1 设\(f:\mathbf{R}^{n}\rightarrow\mathbf{R}\) 具有二阶连续偏导数,则
\f(\\mathbf{X}+\\mathbf{P})=f(\\mathbf{X})+\\nabla{f(\\mathbf{X})}\^T\\mathbf{P}+\\frac{1}{2}\\mathbf{P}\^T\\nabla\^2f(\\overline{\\mathbf{X}})\\mathbf{P} \\tag{22} \\
其中:\(\overline{\mathbf{X}}=\mathbf{X}+\theta\mathbf{P}(\theta\in{(0,1)})\)。
证 明 :设 \(\psi(t)=f(\mathbf{X}+t\mathbf{P})\) 其中 \(t\in0,1\):
\\\psi(0)=f(\\mathbf{X}) , \\psi(1)=f(\\mathbf{X}+\\mathbf{P}) \\tag{23} \\
对\(\psi(t)\) 按照一元函数在\(t=0\)点展开,得到下式:
\ \\psi(t)=\\psi(0)+\\psi\^{\\prime}(0)t+\\frac{1}{2}\\psi\^{\\prime\\prime}(\\theta t)t\^2 \\tag{24} \\
其中 \(\theta\in(0,1)\)。令\(t=1\),于是
\\\psi(1)=\\psi(0)+\\psi\^{\\prime}(0)+\\frac{1}{2}\\psi\^{\\prime\\prime}(\\theta) \\tag{25} \\
又因为上节中 \(\psi^{\prime}(\theta)=\nabla{f(\mathbf{X})}^T\mathbf{P},\psi^{\prime\prime}(\theta)=\mathbf{P}^T\nabla^2f(\mathbf{X}+\theta{\mathbf{P}})\mathbf{P}\) ,代入式(25)中得到:
\f(\\mathbf{X}+\\mathbf{P})=f(\\mathbf{X})+\\nabla{f(\\mathbf{X})}\^T\\mathbf{P}+\\frac{1}{2}\\mathbf{P}\^T\\nabla\^2f(\\mathbf{X}+\\theta\\mathbf{P})\\mathbf{P} \\tag{26} \\
式(26)还可以写成:
\f(\\mathbf{X}+\\mathbf{P})=f(\\mathbf{X})+\\nabla{f(\\mathbf{X})}\^{T}\\mathbf{P}+\\frac{1}{2}\\mathbf{P}\^T\\nabla\^2f(\\mathbf{X})\\mathbf{P}+o(\|\|\\mathbf{P}\|\|\^2) \\tag{27} \\