1. 程式人生 > >矩陣求導例項

矩陣求導例項



前提及說明

第一次遇見矩陣求導,大多數人都是一頭霧水,而搜了維基百科看也還是雲裡霧裡,一堆的名詞和一堆的表格到底都是什麼呢?這裡總結了我個人的學習經驗,並且通過一個例子可以讓你感受如何進行矩陣求導,下次再遇到需要進行矩陣求導的地方就不會措手不及。

在進行概念的解說之前,首先大家需要先知道下面的這個前提:

前提:x 為行向量

佈局的概念

佈局簡單地理解就是分子 y 是行向量還是列向量。

  • 分子佈局(Numerator-layout): 分子為 y (即,分子為列向量或者分母為行向量)
  • 分母佈局(Denominator-layout): 分子為 yT (即,分子為行向量或者分母為列向量)

為了更加深刻地理解兩種佈局的特點和區別,下面是從維基百科中佈局部分拿來的例子:

分子佈局

  • 標量/向量: 標量/向量 (分母的向量為行向量)

  • 向量/標量: 向量/標量 (分子的向量為列向量)

  • 向量/向量: 向量/向量 (分子為列向量橫向平鋪,分母為行向量縱向平鋪)

  • 標量/矩陣: 標量/矩陣注意這個矩陣部分是轉置的,而下面的分母佈局是非轉置的

  • 矩陣/標量: 矩陣/標量

分母佈局

  • 標量/向量: 標量/向量 (分母的向量為列向量)

  • 向量/標量: 向量/標量 (分子的向量為行向量)

  • 向量/向量: 向量/向量

    (分子為行向量縱向平鋪,分母為列向量橫向平鋪)

  • 標量/矩陣: 標量/矩陣矩陣部分為原始矩陣

一個求導的例子

問題

(yXw)T(yXw)w

說明: yw為矩陣

式子演化

看到這個例子不要急著去查表求導,先看看它的形式,是u(w)v(w)):

(yTyyTXwwTXTy+wTXTXw)w
然後就可以寫成四個部分求導的形式如下(累加後求導=求導後累加):
yTywyTXwwwTXTyw+wTXTXww

求導

  • yTyw

說明:分子部分為標量,分母部分為向量,找到維基百科中的

Scalar-by-vector identities表格,在表格中匹配形式到第1行的位置,因為分母為列向量,因此為分母佈局,對應的求導結果就是 0


  • yTXww

說明:同樣的,在維基百科中的Scalar-by-vector identities表格,在表格中匹配形式到第11行的位置,對應的求導結果就是 XTy


  • wTXTyw

說明:因為分子為標量,標量的轉置等於本身,所以對分子進行轉置操作,其等價於第二部分。


  • wTXTXww

說明:同樣的,在維基百科中的Scalar-by-vector identities表格,在表格中匹配形式到第13行的位置,矩陣的轉置乘上本身(XTX

整合

把四個部分求導結果進行相應的加減就可以得到最終的結果:

yTywyTXwwwTXTyw+wTXTXww=0XTyXTy+2XTXw=2XT(y+Xw)

現在你再看看維基百科裡那成堆的表格,是不是覺得異常實用了!

參考文獻

原文連結:http://blog.csdn.net/nomadlx53/article/details/50849941



前提及說明