跳至內容

微積分/矩陣上的微積分

來自華夏公益教科書

本節概述瞭如何在矩陣上應用微積分。請注意,需要對線性代數有一個基本的理解——您應該熟悉矩陣操作的常用方法。

考慮一個nn矩陣和一個n乘1向量。例如,我們如何求?現在,如果您要天真地應用單變數微積分規則,一個合理的答案將是

畢竟,問題的相應標量形式確實是a。實際上,向量形式的答案是。但現在考慮以下問題:。如果您要採用標量形式,您可能會認為答案應該是。但這並不正確——實際上答案是,其中T表示向量x的轉置。

本節的目的是觸及這個美麗領域的表面——因為它不是大學裡普通的微積分 3 線性代數課程會講到的東西——但它有自己的特點。它有什麼用?矩陣微積分在機器學習和計算金融等其他領域得到了廣泛應用。它還可以幫助我們避免使用(可能很麻煩的)拉格朗日,並有效地將問題簡化為單變數場景!

關於向量的導數

[編輯 | 編輯原始碼]

在本節中,我們考慮涉及對向量x進行微分的問題。與上面一樣,我們假設x是一個列向量。

思考這個問題的一種方法是將其簡化為標量問題。請注意,我們可以將x視為標量的集合 。現在分別求 的偏導數,其中 。最後將它們組合在一起。我們實際上是在尋找 - 步驟相同(只是之前,x 的大小是 2 或 3,代表 i、j 和 k 座標系)。

所以讓我們從上面的例子中嘗試一下。我們想要找到,對於所有的

... 也就是A。對於每個i都一樣。

現在,如果你將所有偏導數組合起來會得到什麼?就像你如何找到 ,你會得到 。這僅僅是A!實際上,這就是為什麼

邁向矩陣的第一步

[編輯 | 編輯原始碼]

現在我們回到另一個問題:.

假設A是一個2×2的矩陣,並表示A。使用x相同的記法,進行矩陣乘法

A的每個元素求偏導數(這等效於求雅可比矩陣)。對於,求

但是,接下來該怎麼做呢?如何將結果“組合”起來?顯然,我們遺漏了一些東西。

f的維度

[編輯 | 編輯原始碼]

讓我們退一步,問一個問題:給定一個向量 的維度應該是什麼?

考慮上面的例子。我們有兩個變數:A 有 4 個元素(2x2)和 x 有 2 個元素,我們想要找到 。很容易看出 f 的維度是一個列向量,其中 ,其中 。因此,我們還需要考慮關於 的導數。換句話說, 是一個 2x2 向量,對應於矩陣 A 的每個元素的偏導數。

總共有多少個元素?對於構成 f 的兩個標量中的每一個,都有四個偏導數。這導致了 (2 * (2 * 2)) = 8 個元素 - 實際上是一個張量(可以看作是更高階的矩陣)。這就是事情開始變得混亂的地方,但幸運的是,這是一個足夠簡單的例子。

獲得解決方案

[edit | edit source]

所以讓我們利用上面的觀察來解決這個問題。

首先考慮 ,其中 。計算各個偏導數: 。類似地,

現在,我們如何將這些組合起來?問題是 是一個張量,但我們只能使用矩陣顯示二維表示。因此,讓我們取與 對應的“面”。我們可以用矩陣表示我們上面找到的偏導數集合(即雅可比矩陣):。類似地,。我們觀察到什麼?這僅僅是 (注意從列向量到行向量的變化)!事實上,這就是我們證明 的方法。

在實踐中

[編輯 | 編輯原始碼]

在實踐中,你無需每次都進行所有這些工作來尋找矩陣的導數。相反,存在許多矩陣手冊(有時也稱為速查表),它們提供了一張關於矩陣的常見導數的表格,而這正是你在實踐中可能需要的。 這裡有一個

一個例子

[編輯 | 編輯原始碼]

考慮 Markowitz 問題。假設我們有n支股票,我們希望分配權重 。每支股票之間的互元素協方差為 ,對於所有 。假設我們想以傳統的方式解決這個問題。那麼最佳化問題是最小化 ,受約束條件的約束,雖然很重要,但我們這裡不提。

由於存在雙重求和,解決這個問題可能很麻煩。 讓我們嘗試矩陣微積分。 令 **w** 為一個 N 行 1 列的向量, 為一個 N 行 N 列的矩陣。 上述問題可以簡化為最小化 ,你只需要對 **w** 求導數! 如上所示,使用矩陣微積分手冊,,這比計算單個偏導數要優雅得多。

華夏公益教科書