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?
la source
Réponses:
Si vous considérez une carte linéaire entre les espaces vectoriels (comme le jacobien)J:u∈U→v∈V , les éléments v=Ju doivent ê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:w⊺u=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.
la source