黑塞矩陣和雅可比矩陣,相信搞機器學習方向的同學多多少少也聽過一點。但是平時畢竟用到的還是不多,因此也不是很重視,甚至對它們的定義也不是很清楚。😫😫😫此次,就借這個博客梳理一下黑塞矩陣及其用途。🐳
定義
黑塞矩陣是由多元函數的二階偏導組成的矩陣。假設 \(f(x_1, x_2, ..., x_n)\) 二階可導,則其黑塞矩陣為:
\[\left[ \begin{array}{cccc} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & ... & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2^2} & \frac{\partial^2 f}{\partial x^2_2} & ... & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ ... & ... & ... & ... \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & ... & \frac{\partial^2 f}{\partial x^2_n} \\ \end{array} \right] \]
一般情況下,多元函數的混合二階偏導與求導次序無關,即:
\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial^2 f}{\partial x_j \partial x_i} \]
函數凹凸性與黑塞矩陣
先說一下凹凸函數:
凹函數:
對於函數 \(f(\boldsymbol{x})\) ,對於其定義域內的任意兩點 \(\boldsymbol{x,\ y}\) ,以及任意實數 \(\theta \in [0, 1]\) ,若\[f(\theta \boldsymbol{x} + (1 - \theta) \boldsymbol{y}) \leq \theta f(\boldsymbol{x}) + (1 - \theta) f(\boldsymbol{y}) \]成立,則 \(f\) 為凸函數(下凸)。若上式嚴格成立(將小於等於換成小於),則為嚴格凸函數。同理可定義凹函數(上凸)和嚴格凹函數。
假設 \(f(x_1, x_2, ..., x_n)\) 二階可導,則
- 若其黑塞矩陣半正定,則函數是凸函數
- 若黑塞矩陣正定,則函數為嚴格凸函數
- 若黑塞矩陣半負定,則函數為凹函數
- 若黑塞矩陣負定,則函數為嚴格凹函數
函數極值與黑塞矩陣
令 \(\boldsymbol{x}_0\) 為 \(f(\boldsymbol{x})\) 的駐點(梯度為0的點),則:
- 黑塞矩陣在該點處正定,則 \(f\) 在該點有嚴格極小值
- 黑塞矩陣在該點處負定,則 \(f\) 在該點有嚴格極大值
- 黑塞矩陣在該點處不定,則該點不是極值點,為鞍點
多元函數求極值的過程:求梯度,找到所有駐點 ==> 計算在駐點處的黑塞矩陣 ==> 判斷駐點是否為極值點。