[计算数学基础]矩阵微分
矩陣微分
函數對于變量的微分在高等數學里面講的比較多,而矩陣微分在我印象中沒有在高等代數中講解。矩陣微分也是很常用的一個數學工具,我最早是在一門研究生課程“優化設計”中接觸到,優化問題中的一個重要概念--梯度,其定義便是向量的微分形式,在求解優化問題時也大量的用到了矩陣的微分(包括向量的微分)。
在求解線性方程組的過程中,有一種迭代算法是源于最優化問題,叫做共軛梯度法(conjugate gradient method)也涉及到了很多的向量微分,當時讓我很頭疼,對于這個算法的原理我也沒有搞清楚,只是按照偽代碼去進行實現了。這兩天抽空在網上看了下資料[1],說說我自己的理解。
- 先看看向量對于數量微分:
(1)
即向量關于數量的微分是每個維度上的分量關于數量微分組成的向量,微分前后維度不變。
將向量相對于數量微分推廣到二維,矩陣相對于數量的微分,微分前后的維度不變:
(2)
下面是一些矩陣對于數量微分的性質,比較容易理解:
(3)
- 再是數量對于向量的微分:
(4)
上式中數量經過對向量的微分后在向量所在的維度上被展開了,展開之后在所有的維度上都有一個數量關于數量的微分,這些微分再組成一個向量構成了 最后的結果。
再將數量推廣到一維向量
(5)
上式中我們看到,向量經過對向量微分后,相當于的每一個維度對進行微分,于是微分的結果是m維向量的每一個維度都被展開成一個n維向量,這就是一個m×n的矩陣。
繼續往下推廣將之前的向量替換為矩陣,再對向量微分那么結果是什么呢?大家可以試著想象一下,結果會變成三維矩陣。
再講講性質:
(6)
前面兩條顯而易見,需要注意的是第三條,在計算的過程中如果沒有注意,很容易出錯,其中等號右邊第二項作微分的時候a與b都作了轉置,而且相乘的順序也與等號左邊反過來了。
最后還有一個重要的性質
(7)
?
?
到這里講了一些基本的矩陣微分的定義與一些性質,下面我們以最小二乘問題為例子來看看矩陣微分的實際應用。
最小二乘問題就是多方程組求解少量未知數的問題,模型如下:
(其中y,x是向量,為了簡化沒有加上箭頭)
其中已知量y為m行向量,A為m×n的矩陣,未知量x為n行向量(m>n)。由于未知量個數小于方程個數,方程組無精確解。那么既然找不到精確解,我們只能矮子里面拔將軍,從所有的可行解中找到最最接近方程的解。從幾何上說最小二乘問題可理解為尋找向量y在超平面A上的投影,從代數上說我們要找到使得值最小的解(其實這也變成了一個最優化問題)。
下面我們分析,當它取到值極小值時,其關于向量x的導數應該為0。于是我們得到
(8)
矩陣乘法展開,根據式(6)有
(9)
由于y,A為已知量與x無關,它們關于x的微分為0。再根據乘法微分公式,即式(6)中的第三條(注意轉置與乘法順序),展開得到
(10)
根據式(7),化簡得到
(11)
上式是我們得到的結果,這已經轉換為一個線性方程組求解的問題。
這樣我們通過矩陣微分的計算將最小二乘最優化問題簡化成了線性方程組求解問題,這種求解最小二乘問題的方法叫做法方程法(normal equation method[2]),之所以叫做法方程法是因為從幾何上理解我們通過尋找超平面A的正交方向即法方向從而獲得了最小二乘解,這是求解最小二乘問題最常用、最快速的方法。
?
[1].http://wenku.baidu.com/link?url=TdIEytCM-IX6T476uhNSjf6-OutpwcldshCzo22VleP-b66rf4egRcE6bwoNxwe0d7pqjIW_MzrVgx8pIyOrjf_8uUwlh3jMQ7owoI1_FRa
[2].http://mathworld.wolfram.com/NormalEquation.html
轉載于:https://www.cnblogs.com/zhangcong2009/p/3498900.html
總結
以上是生活随笔為你收集整理的[计算数学基础]矩阵微分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果App Icon的问题
- 下一篇: 苹果树的故事(转发的)