無標題文章

向量求導在當前線性系統的優化問題中經常用到,比如最小二乘:
$$\hat{\mathbf{x}{\rm LS}} = \arg\min{\mathbf{x}}{|A\mathbf{x}-\mathbf{b}|_2^2}$$

注:argmin是值取使得后式最小的參數值,與min的區別如下,
min f(x) = f_min(x)
argmin f(x) = x_min
ref:
Arg max
公式 t0=arg max g(t) 的 arg 是什么意思啊?

這是一個凸問題,極值就是最值,且極值唯一,可通過求導(梯度)直接求解極值來得到最值,于是先展開,
$$\phi = \mathbf{x}TATA\mathbf{x} - \mathbf{x}TAT\mathbf{b} - \mathbf{b}^TA\mathbf{x} + \mathbf{b}^T\mathbf{b}$$
計算梯度,并令其等于0
$$\frac{{\rm d}\phi}{{\rm d}\mathbf{x}} = 2A^TA\mathbf{x} - 2A^T\mathbf{b} = 0$$
可以得到最小二乘解,
$$\mathbf{x}_{\rm LS} = \left(ATA\right){-1}A^T\mathbf{b}$$
其實這僅僅是實值標量函數$f(\mathbf{x}),\ f:\mathbf{R}^m \rightarrow \mathbf{R}$的求導,然而矩陣微分包含更多的情況,那我們目前主要針對實值函數。


<br /><br />

實值函數

實值函數包括以下情況,

| 函數類型 | 向量變元 $\mathbf{x} \in \mathbf{R}^m$ | 矩陣變元 $X \in \mathbf{R}^{m \times n}$ |
| :--- |
|標量函數 $f \in \mathbf{R}$ | $f(\mathbf{x}),\ f:\mathbf{R}^m \rightarrow \mathbf{R}$ | $f(X),\ f:\mathbf{R}^{m \times n} \rightarrow \mathbf{R}$|
|向量函數 $\mathbf{f} \in \mathbf{R}p$|$\mathbf{f}(\mathbf{x}), \mathbf{f}:\mathbf{R}m \rightarrow \mathbf{R}^p$ | $\mathbf{f}(X),\ \mathbf{f}:\mathbf{R}^{m\times n} \rightarrow \mathbf{R}^p$|
|矩陣函數 $F \in \mathbf{R}^{p \times q}$|$F(\mathbf{x}),\ F:\mathbf{R}^m \rightarrow \mathbf{R}^{p\times q}$ | $F(X),\ F:\mathbf{R}^{m\times n} \rightarrow \mathbf{R}^{p\times q}$|
不管是上述啥類型的函數,他們的偏導總歸是每一個標量因變量對應每個標量自變量的導數(偏導數),只不過排成了向量或是矩陣的形式。矩陣的那個稱為Jacobian矩陣,向量的那個常常是偏導行向量。同時還存在著梯度,梯度是偏導(Jacobian矩陣/偏導行向量)的轉置。微分就是函數的總變量用各個變元的變量線性表示,系數當然就是其對應的偏導數。微分和jacobian的關系并不一定是矩陣相乘的關系,詳情見表3.2.3。


<br /><br />

向量變元的標量值函數的微分定義

考慮到最小二乘等問題遇到最多的還是這種函數的求導,我們著重分析這個情況。

偏導向量

對于標量值向量變元的函數,可以看成是多變量變元函數(多元函數),其求導就是每個變元的偏導,現在合成一個向量,那就是把每個變元的偏導數排成一個向量而已。
因此偏導算子有,
$${\rm D}{\mathbf{x}} = \frac{\partial}{\partial \mathbf{x}^T} = \left[\frac{\partial}{\partial x_1},\dots, \frac{\partial}{\partial x_m}\right]$$
可見向量變元的偏導是偏導向量,值得注意的是這個向量是行向量,偏導算子寫成對x的轉置求導,即把每個變元的偏導數排成行向量,因此標量值向量變元的函數$f(\mathbf{x})$的偏導向量為,
$${\rm D}
{\mathbf{x}}f(\mathbf{x}) = \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}^T} = \left[\frac{\partial f(\mathbf{x})}{\partial x_1},\dots, \frac{\partial f(\mathbf{x})}{\partial x_m}\right]$$
其實在向量變元的標量值函數的情況下,其jacobian矩陣就是其偏導行向量,因此我們可以用jacobian矩陣指代我們的導數。

梯度向量

至于梯度向量,多元函數中梯度是偏導構成的向量,而現在偏導本身也是向量了,那我們就把梯度搞成各個變元偏導數的列向量,這樣就是偏導向量的轉置了,因此有梯度算子,
$$\nabla_{\mathbf{x}} = \frac{\partial}{\partial \mathbf{x}} = \left[\frac{\partial}{\partial x_1},\dots, \frac{\partial}{\partial x_m}\right]^T$$
因此標量值向量變元的函數$f(\mathbf{x})$的梯度向量為,
$$\nabla_{\mathbf{x}}f(\mathbf{x}) = \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} = \left[\frac{\partial f(\mathbf{x})}{\partial x_1},\dots, \frac{\partial f(\mathbf{x})}{\partial x_m}\right]^T$$

微分

矩陣微分在多元函數中是各個變元增量的線性組合,在向量變元的標量函數中當然還是這個含義,只不過可以用向量乘積來表示了,
$${\rm d}f(\mathbf{x}) = \frac{\partial f(\mathbf{x})}{\partial x_1}{\rm d}x_1 + \dots + \frac{\partial f(\mathbf{x})}{\partial x_m}{\rm d}x_m = \left[\frac{\partial f(\mathbf{x})}{\partial x_1^T},\dots, \frac{\partial f(\mathbf{x})}{\partial x_m^T}\right] \begin{bmatrix} {\rm d}x_1 \ \dots \ {\rm d}x_m \end{bmatrix}$$

在最開始的例子中,我們得到三者其中任何一個就可以用來計算極值了,那么如何計算呢?


<br /><br />

向量變元的標量值函數的微分求導計算

計算偏導向量(梯度向量)的方法

  • 定義法
  • 利用運算法則
  • 標量函數jacobian矩陣的辨識法:跡函數

用定義法計算$\mathbf{b}^TA\mathbf{x}$

x
將$\mathbf{b}TA$看成一個整體,這個整體顯然是一個行向量(無論是從前面看是行向量和矩陣的乘積,還是從后面看它要與列向量相乘得到標量),記為$\mathbf{c}T$,因此這個標量函數可以寫成$\mathbf{c}^T \mathbf{x} = \sum_{i}^{m} {c_ix_i}$,可見$c_i$是$x_i$的系數,也就是該變量的偏導數。$c_i = \mathbf{b}^T\mathbf{a}i $(當然你也可以繼續得到$c_i = \sum{j}^{n}{b_ja_{ij}}$,不過沒有必要)。此時如果是求jacobian矩陣(偏導行向量),偏導數排成行向量,即$\left[ \mathbf{b}^T\mathbf{a}_1 ,\dots, \mathbf{b}^T\mathbf{a}_n \right]$,顯然寫成矩陣形式就是$\mathbf{b}TA$;如果是求梯度,那就是排成列向量,自然就是其轉置了$AT\mathbf{b}$。

從這里我們也可以總結到一個結論:

  • $\mathbf{x}$前的東西就是jacobian矩陣,轉置就是梯度矩陣
  • $\mathbf{x}$前的東西就是梯度矩陣,轉置就是jacobian矩陣

用定義法計算$\mathbf{x}^TA\mathbf{x}$

設$A\in \mathbf{R}^n*n$,$\mathbf{x}\in \mathbf{R}^n$(之前都是$\mathbf{x}\in \mathbf{R}^m$),則,
$$\mathbf{x}^TA\mathbf{x} = \sum_{k=1}{n}{\sum_{l=1}{n}{a_{kl} x_k x_l}}$$
其對$x_i$求導為,
$$\sum_{k=1}^{n}{a_{ki} x_k} + \sum_{l=1}^{n}{a_{il} x_l}$$
這兩項實為$\mathbf{x}$與第i列和第i行乘積,立即得到行偏導向量${\rm D}f(\mathbf{x}) = \mathbf{x}^TA +\mathbf{x}TAT = \mathbf{x}T(A+AT)$

用標量函數$f(\mathbf{x})$的Jacobian矩陣辨識方法計算$\mathbf{x}^TA\mathbf{x}$

對標量函數$f(\mathbf{x})$用跡來辨識Jacobian矩陣(偏導向量),其關鍵式子:
$${\rm d}f(\mathbf{x}) = {\rm tr}(A{\rm d}\mathbf{x}) \Longleftrightarrow {\rm D}_{\mathbf{x}} f(\mathbf{x})= A$$
對其使用該方法有,
$${\rm d}f(\mathbf{x}) = {\rm d}({\rm tr} (\mathbf{x}^TA\mathbf{x})) = {\rm tr}[({\rm d}\mathbf{x})^TA\mathbf{x} + \mathbf{x}^TA{\rm d}\mathbf{x} ]
\
= {\rm tr}[({\rm d}\mathbf{x}TA\mathbf{x})T + \mathbf{x}^TA{\rm d}\mathbf{x} ]
\
= {\rm tr}[\mathbf{x}TA\mathbf{x}T{\rm d}\mathbf{x} + \mathbf{x}^TA{\rm d}\mathbf{x} ]
\
= {\rm tr}(\mathbf{x}T(A+AT){\rm d}\mathbf{x})
$$

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 目錄 [TOC] 引言 量化交易是指以先進的數學模型替代人為的主觀判斷,利用計算機技術從龐大的歷史數據中海選能帶來...
    雷達熊閱讀 1,009評論 0 2
  • I.數學基礎-1.運籌學-變分法 《變分法基礎》 1.3.1 方向導數及梯度 方向導數:$$\frac{\part...
    JAYANDJEAN閱讀 787評論 0 0
  • 01 畢業工作兩年后,我辭職了。開始了一段漫長且艱難的面試之旅。 以為可以輕松地找到工作,誰知屢屢碰壁。面對面試官...
    墨小虎閱讀 1,191評論 11 17
  • 老白:沒搞錯吧?你今天沒去過節?怎么有空來找我這種老人? 我:哈哈哈!伯伯好!知道伯伯今天不過節,特地來關懷一下。...
    留許多閱讀 260評論 0 0
  • 不知怎么,突然想寫關于奶茶的文章,也許喝著喝著,喝出了一種叫懷念的東西…… 說起我和奶茶的故事,那還給回到小學三年...
    4c385424e0da閱讀 465評論 0 3