Dérivées de gradient et de vecteur: vecteur ligne ou colonne?

9

Un grand nombre de références (y compris wikipedia et http://www.atmos.washington.edu/~dennis/MatrixCalculus.pdf et http://michael.orlitzky.com/articles/the_derivative_of_a_quadratic_form.php ) définissent la dérivée d'un fonction par un vecteur comme dérivées partielles de la fonction disposée en ligne (donc une dérivée d'une fonction à valeur scalaire est un vecteur de ligne). Dans cette convention, le gradient et la dérivée vectorielle sont transposés l'un de l'autre. L'avantage de cette convention est que nous pouvons interpréter la signification de la dérivée comme une fonction qui vous indique le taux de changement linéaire dans chaque direction. Le gradient reste un vecteur, il vous indique la direction et l'amplitude du plus grand taux de changement.

J'ai récemment lu l'algèbre matricielle de Gentle ( http://books.google.com/books/about/Matrix_Algebra.html?id=Pbz3D7Tg5eoC ) et il semble utiliser une autre convention, où il définit le gradient comme égal à la dérivée vectorielle, résultant dans un arrangement de colonnes (donc une dérivée d'une fonction scalaire est un vecteur de colonnes). Du fait de cet arrangement, chaque résultat de différenciation est la transposition du résultat dans l'autre convention. L'avantage de cette convention, je suppose ici, est simplement que le gradient et la dérivée sont égaux. Ainsi, pour les tâches d'optimisation, au lieu de différencier puis de prendre la transposition, vous pouvez simplement différencier.

Je pense que la tension est entre jacobienne et dégradée. Dans la convention des rangées, le jacobien découle directement de la définition de la dérivée, mais vous devez appliquer une transposition pour obtenir le gradient; alors que dans la convention des colonnes, le gradient est celui qui n'a pas besoin d'être transposé, mais vous devez appliquer une transposition pour obtenir le jacobien. Donc, si vous préférez considérer le résultat dérivé comme une carte linéaire, la première convention est logique; si vous préférez considérer le résultat comme un vecteur / direction, alors la deuxième convention a du sens. Il vous suffit donc d'être cohérent.

Laquelle de ces conventions est la plus utilisée dans le Machine Learning? Vais-je devenir désespérément confus si je passe trop de temps à lire le travail dans la "mauvaise" convention?

Simplefish
la source
Peut-être lié à math.stackexchange.com/questions/336640/… , qui dit essentiellement que la première convention est la voie à suivre, mais je suis toujours curieux de savoir quoi faire avec la convention de Gentle.
Simplefish
chrishecker.com/Column_vs_row_vectors fait un argument fort pour la première convention.
Simplefish
En économétrie, la disposition des colonnes est la convention.
tchakravarty
Un exemple incroyablement frustrant d'ambiguïté dans ce domaine est le manuel de séries chronologiques de Leutkepohl. Il ne spécifie jamais quelle notation est utilisée pour les vecteurs de ligne et de colonne, donc la seule façon d'utiliser les équations du livre est de suivre méticuleusement les preuves et les définitions du début à la fin, ce qui peut impliquer des déclarations dans plusieurs chapitres de livre.
shadowtalker

Réponses:

4

Si vous considérez une carte linéaire entre les espaces vectoriels (comme le jacobien) J:uUvV, les éléments v=Judoivent être en forme avec la définition matrice-vecteur : les composants dev sont les produits intérieurs des rangées de J avec u.

Dans, par exemple, la régression linéaire, l'espace de sortie (scalaire dans ce cas) est une combinaison pondérée de caractéristiques: wu=v, nécessitant à nouveau le produit intérieur.

Quelle convention vous utilisez finalement est sans conséquence, tant que vous gardez la même chose tout au long. Le livre de recettes Matrix de Pedersen et Petersen est une ressource plutôt sèche mais certainement informative.

ocramz
la source
Ah, je vois. J'ai regardé de plus près la définition de Gentle du jacobien et c'est en fait la même chose dans les deux conventions et je suis d'accord avec la définition de la représentation matricielle d'une carte linéaire. Plus précisément, dans la convention des colonnes, il existe une notion de "gradient de matrice" qui est la transposition du jacobien sous la convention des lignes. Mais dans la convention des colonnes, le jacobien est défini comme étant exactement cette transposition, donc la définition matricielle du jacobien est la même sous les deux conventions! Ce ne sont que les entités unidimensionnelles qui sont différentes (vecteurs vs cartes linéaires à R).
Simplefish