矩陣求導例項
前提及說明
第一次遇見矩陣求導,大多數人都是一頭霧水,而搜了維基百科看也還是雲裡霧裡,一堆的名詞和一堆的表格到底都是什麼呢?這裡總結了我個人的學習經驗,並且通過一個例子可以讓你感受如何進行矩陣求導,下次再遇到需要進行矩陣求導的地方就不會措手不及。
在進行概念的解說之前,首先大家需要先知道下面的這個前提:
前提: 若 x 為行向量
佈局的概念
佈局簡單地理解就是分子 y 是行向量還是列向量。
- 分子佈局(Numerator-layout): 分子為 y (即,分子為列向量或者分母為行向量)
- 分母佈局(Denominator-layout): 分子為 yT (即,分子為行向量或者分母為列向量)
為了更加深刻地理解兩種佈局的特點和區別,下面是從維基百科中佈局部分拿來的例子:
分子佈局
標量/向量: (分母的向量為行向量)
向量/標量: (分子的向量為列向量)
向量/向量: (分子為列向量橫向平鋪,分母為行向量縱向平鋪)
標量/矩陣: (注意這個矩陣部分是轉置的,而下面的分母佈局是非轉置的)
矩陣/標量:
分母佈局
標量/向量: (分母的向量為列向量)
向量/標量: (分子的向量為行向量)
向量/向量:
標量/矩陣: (矩陣部分為原始矩陣)
一個求導的例子
問題
∂(y−Xw)T(y−Xw)∂w
說明: y、w為矩陣
式子演化
看到這個例子不要急著去查表求導,先看看它的形式,是u(w)∗v(w)):
然後就可以寫成四個部分求導的形式如下(累加後求導=求導後累加):
∂yTy∂w−∂yTXw∂w−∂wTXTy∂w+∂wTXTXw∂w
求導
- ∂yTy∂w
說明:分子部分為標量,分母部分為向量,找到維基百科中的
- ∂yTXw∂w
說明:同樣的,在維基百科中的Scalar-by-vector identities表格,在表格中匹配形式到第11行的位置,對應的求導結果就是 XTy 。
- ∂wTXTy∂w
說明:因為分子為標量,標量的轉置等於本身,所以對分子進行轉置操作,其等價於第二部分。
- ∂wTXTXw∂w
說明:同樣的,在維基百科中的Scalar-by-vector identities表格,在表格中匹配形式到第13行的位置,矩陣的轉置乘上本身(XTX 。
整合
把四個部分求導結果進行相應的加減就可以得到最終的結果:
現在你再看看維基百科裡那成堆的表格,是不是覺得異常實用了!
參考文獻
- 維基百科 Matrix calculus
- 求導的例子來自《機器學習實戰》-第八章 迴歸 138頁
原文連結:http://blog.csdn.net/nomadlx53/article/details/50849941