海森矩陣和半正定矩陣


多元函數的Hessian矩陣就類似一元函數的二階導。

多元函數Hessian矩陣半正定就相當於一元函數二階導非負,半負定就相當於一元函數二階導非正。如果這個類比成立的話,凸函數的Hessian恆半正定就非常容易理解了——這是一元凸函數二階導必非負的多元拓展。

至於為什么這個類是有道理的,你要這么看。對一元函數f(x)來說,就極值而言,一階導為0是極值點的必要但不充分條件,一階導為0切二階導非負是極小值的充要條件。

為什么呢,因為有泰勒展開f(x)=f(x_0)+f'(x_0)\cdot\text{d}x+\frac{1}{2}f''(x_0)\text{d}x^2。如果一階導為0,二階導非負,dx不論是多少,f(x)一定不比f(x0)小。

你把多元函數也個泰勒展開,主要區別在於:
1) 二階導變成了Hessian。
2) 以前只要考慮x怎么變,現在還要考慮y怎么變,x和y怎么一起變,頭疼了很多。
以二元為例,
f(\begin{bmatrix}x & y\end{bmatrix}) = 
f(\begin{bmatrix}x_0 & y_0\end{bmatrix}) + 
\begin{bmatrix}\text{d}x & \text{d}y\end{bmatrix} \cdot \begin{bmatrix}f_x' \\ f_y' \end{bmatrix}
+ \frac{1}{2} \begin{bmatrix}\text{d}x & \text{d}y\end{bmatrix} \cdot \begin{bmatrix}f_{xx}' & f_{xy}' \\ f_{yx}' & f_{yy}' \end{bmatrix} \cdot \begin{bmatrix}\text{d}x \\ \text{d}y\end{bmatrix}
從一元的情況類比過來,如果一階導為0,是不是極小值完全取決於不同的dx, dy下,能不能做到最后一項一直非負。

只有對於任意\Delta {\bf x},\Delta {\bf x} {\bf H} \Delta {\bf x}^T 一直非負的情況,我們才能說這是極小值。如果\Delta {\bf x} {\bf H} \Delta {\bf x}^T一直非正,這就是極大值。如果它一會正一會負,就是鞍點。

然后“對於任意\Delta {\bf x},\Delta {\bf x} {\bf H} \Delta {\bf x}^T 一直非負”這是啥?半正定的定義嘛!它就是這么引出來的,也是我們為什么需要半正定這個概念的原因



我們首先假設
  • 函數在定義域上連續
  • 函數在定義域上二階可導

現在要證明的是:
  1. definition  \Rightarrow 1st-order condition
  2. 1st-order condition  \Rightarrow 2nd-order condition

實際上這些都是充要關系,但是因為題主的問題並沒有要求證明必要性我這里就偷懶只證明充分性了。

首先凸函數(一元)的定義是:
任意屬於定義域的兩個自變量x_1x_2,且對於任意\[0 \le \theta  \le 1\],如果函數f\left(  \cdot  \right)滿足f\left( {\theta {x_1} + \left( {1 - \theta } \right){x_2}} \right) \le \theta f\left( {{x_1}} \right) + \left( {1 - \theta } \right)f\left( {{x_2}} \right),那么函數f\left(  \cdot  \right)是凸函數。

直觀的理解就是函數曲線上任意兩點為短點的線段一定在函數曲線的上方。
多變量函數可以把自變量寫成一個向量 {\bf{x}} = {\left[ {{x_1},{x_2}, \ldots ,{x_n}} \right]}^T,同理對於定義域的任意兩個自變量 {\bf{x}}_1{\bf{x}}_2,以及任意 0 \le \theta  \le 1,如果函數 f\left(  \cdot  \right)滿足 f\left( {\theta {\bf{x_1}} + \left( {1 - \theta } \right){\bf{x_2}}} \right) \le \theta f\left( {\bf{{x_1}}} \right) + \left( {1 - \theta } \right)f\left( {\bf{x_2}} \right),那么函數 f\left(  \cdot  \right)是凸函數。

 

1st-order condition 一階條件,還是以一元函數為例:
對於定義域內任意兩個自變量x_1x_2,函數f\left(  \cdot  \right)滿足則函f\left( {{x_2}} \right) \ge f\left( {{x_1}} \right) + f'\left( {{x_1}} \right)\left( {{x_2} - {x_1}} \right)f\left(  \cdot  \right)為凸函數。

直觀的理解就是函數曲線始終位於任意一點的切線的上方。類似於前面
 
提到的二階Taylor展開中必須保證二次項非負。推廣到多變量函數同理可以寫為f\left( {{{\bf{x}}_1}} \right) \ge f\left( {{{\bf{x}}_2}} \right) + \nabla f\left( {{{\bf{x}}_2}} \right) \cdot \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right),其中梯度向量\nabla f\left( {\bf{x}} \right) = \left( {\frac{{\partial f\left( {\bf{x}} \right)}}{{\partial {x_1}}},\frac{{\partial f\left( {\bf{x}} \right)}}{{\partial {x_2}}}, \ldots ,\frac{{\partial f\left( {\bf{x}} \right)}}{{\partial {x_n}}}} \right)也就是在該點對各個變量求偏導構成的向量。

 

現在要證明的凸函數有f\left( {{x_2}} \right) \ge f\left( {{x_1}} \right) + f'\left( {{x_1}} \right)\left( {{x_2} - {x_1}} \right)的性質。

假設函數f\left(  \cdot  \right)在定義域上是凸函數,那么有:
\begin{align}
f\left( {\theta {{\bf{x}}_1} + \left( {1 - \theta } \right){{\bf{x}}_2}} \right) & \le \theta f\left( {{{\bf{x}}_1}} \right) + \left( {1 - \theta } \right)f\left( {{{\bf{x}}_2}} \right) \\
f\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right) &\le f\left( {{{\bf{x}}_2}} \right) + \theta \left( {f\left( {{{\bf{x}}_1}} \right) - f\left( {{{\bf{x}}_2}} \right)} \right) \\
f\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right) - f\left( {{{\bf{x}}_2}} \right) &\le \theta \left( {f\left( {{{\bf{x}}_1}} \right) - f\left( {{{\bf{x}}_2}} \right)} \right) \\
\frac{{f\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right) - f\left( {{{\bf{x}}_2}} \right)}}{\theta } &\le f\left( {{{\bf{x}}_1}} \right) - f\left( {{{\bf{x}}_2}} \right)
\end{align}
然后稍微變形可以得到f\left( {{{\bf{x}}_1}} \right) \ge f\left( {{{\bf{x}}_2}} \right) + \frac{{f\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right) - f\left( {{{\bf{x}}_2}} \right)}}{\theta }
g\left( \theta  \right) = f\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right),則g\left( 0 \right) = f\left( {{{\bf{x}}_2}} \right),那么有
f\left( {{{\bf{x}}_1}} \right) \ge f\left( {{{\bf{x}}_2}} \right) + \frac{{g\left( \theta  \right) - g\left( 0 \right)}}{\theta },當\theta趨近於0時,有\mathop {\lim }\limits_{\theta  \to 0} \frac{{g\left( \theta  \right) - g\left( 0 \right)}}{\theta } = g'(0)這一項也就是函數{g\left( \theta  \right)}\theta=0處的導數值,\[{g\left( \theta  \right)}\]實際是\[f\left( {{{\bf{x}}}} \right)\]{\bf{x}} = {{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)的復合函數,容易求導得\frac{{dg}}{{d\theta }} = \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)\frac{{df\left( {{{\bf{x}}_2} + \theta \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)} \right)}}{{d{\bf{x}}}},由於只要求在\theta=0處的導數值所以容易得{\left. {\frac{{dg}}{{d\theta }}} \right|_{\theta  = 0}} = \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)\frac{{df\left( {{{\bf{x}}_2}} \right)}}{{d{\bf{x}}}} = \nabla f\left( {{{\bf{x}}_2}} \right) \cdot \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right),代入回不等式即可得到
f\left( {{{\bf{x}}_1}} \right) \ge f\left( {{{\bf{x}}_2}} \right) + \nabla f\left( {{{\bf{x}}_2}} \right) \cdot \left( {{{\bf{x}}_1} - {{\bf{x}}_2}} \right)

從圖形上也可以直觀去理解這個推導結果,取函數曲線上兩點作直線,被函數圖像截斷的那部分始終在曲線上方,而其他部分始終在曲線下方,那么這兩個點取的無限接近,也就是通常我們說的“割線逼近切線”,那么切線就始終在曲線下方了,曲線不知道高到哪里去了。

現在我們來做第二部分也就是用1st-order condition推導2nd-order condition的部分的證明了。

2nd-order condition的內容就是凸函數的Hessian矩陣半正定。多元Taylor展開如果不熟悉的話可以參考Taylor's theorem的公式自己理解,我這里就不詳細展開了,直接寫在\bf{x_0}點處二階展開形式:
f\left( {\bf{x}} \right) = f\left( {{{\bf{x}}_0}} \right) + \nabla f\left( {{{\bf{x}}_0}} \right)\left( {{\bf{x}} - {{\bf{x}}_0}} \right) + \frac{1}{2}{\left( {{\bf{x}} - {{\bf{x}}_0}} \right)^T}{\bf{H}}\left( {{\bf{x}} - {{\bf{x}}_0}} \right),這里的\bf{H}f(\bf{x})\bf{x_0}點處的Hessian矩陣,也可以寫作{\nabla ^2}f\left( {\bf{x}_0} \right)可以理解為把梯度向量推廣為二階形式,梯度向量本身也是Jacobian矩陣的一種特例。
f(\bf{x})的Hessian矩陣第i行第j個元素為f(\bf{x})對第i個變量先求導,對第j個變量后求導的二階導數,也就是{{\bf{H}}_{ij}} = \frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_i}\partial {x_j}}},寫成矩陣形式就是:
\[{\bf{H}} = \left[ {\begin{array}{*{20}{c}}
{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial x_1^2}}}&{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_1}\partial {x_2}}}}& \cdots &{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_1}\partial {x_n}}}}\\
{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_2}\partial {x_1}}}}&{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial x_2^2}}}& \cdots &{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_2}\partial {x_n}}}}\\
 \vdots & \vdots & \ddots & \vdots \\
{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_n}\partial {x_1}}}}&{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial {x_n}\partial {x_2}}}}& \ldots &{\frac{{{\partial ^2}f\left( {\bf{x}} \right)}}{{\partial x_2^2}}}
\end{array}} \right]\]
回到上面那個Taylor展開式,對於一個凸函數,我們可以試用1st-order condition得到f\left( {\bf{x}} \right) \ge f\left( {{{\bf{x}}_0}} \right) + \nabla f\left( {{{\bf{x}}_0}} \right)\left( {{\bf{x}} - {{\bf{x}}_0}} \right)對於任意的\bf{x}{{{\bf{x}}_0}}都成立,那么二次項\frac{1}{2}{\left( {{\bf{x}} - {{\bf{x}}_0}} \right)^T}{\bf{H}}\left( {{\bf{x}} - {{\bf{x}}_0}} \right) \ge 0必須對於任意的兩個自變量\bf{x}{{{\bf{x}}_0}}恆成立,我們這里以增量簡寫\Delta {\bf{x}} = {\bf{x}} - {{\bf{x}}_0},這個增量可以任意取值,那么需要\Delta {{\bf{x}}^T}{\bf{H}}\Delta {\bf{x}} \ge 0對於任意一個\Delta {\bf{x}}恆成立,而這就是\bf{H}是半正定的充要條件。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM