梯度和向量導數:行向量還是列向量?
相當多的參考資料(包括維基百科和http://www.atmos.washington.edu/~dennis/MatrixCalculus.pdf和http://michael.orlitzky.com/articles/the_derivative_of_a_quadratic_form.php)定義了 a 的導數函數由一個向量作為排列成一行的函數的偏導數(因此標量值函數的導數是行向量)。在這個約定中,梯度和向量導數是彼此的轉置。這個約定的好處是我們可以將導數的含義解釋為一個函數,它告訴你每個方向的線性變化率。梯度仍然是一個向量,它告訴你最大變化率的方向和幅度。
我最近閱讀了 Gentle 的矩陣代數(http://books.google.com/books/about/Matrix_Algebra.html?id=Pbz3D7Tg5eoC),他似乎使用了另一種約定,它將梯度定義為等於向量導數,結果在列排列中(因此標量值函數的導數是列向量)。由於這種安排,每個微分結果都是另一個約定中結果的轉置。我猜這個約定的好處就是梯度和導數相等。因此,對於優化任務,您可以只進行微分,而不是先微分然後再進行轉置。
我認為張力在雅可比和梯度之間。在行約定中,雅可比矩陣直接來自導數的定義,但您必須應用轉置來獲得梯度;而在列約定中,梯度是不需要轉置的,但您必須應用轉置才能獲得雅可比行列式。因此,如果您更願意將導數結果視為線性映射,那麼第一個約定是有意義的;如果您更願意將結果視為矢量/方向,那麼第二個約定是有意義的。所以你只需要保持一致。
這些約定中哪一個更常用於機器學習?如果我花太多時間在“錯誤”的約定中閱讀作品,我是否會感到無可救藥的困惑?
如果考慮向量空間之間的線性映射(例如雅可比行列式), 要素必須在形狀上與矩陣向量定義一致:是行的內積和.
在例如線性回歸中,(在這種情況下為標量)輸出空間是特徵的加權組合:,再次要求內積。
只要您始終保持相同,您最終使用的約定無關緊要。Pedersen 和 Petersen 的 Matrix Cookbook 是一個相當枯燥但絕對信息豐富的資源。