Pourquoi la norme matricielle par défaut est la norme spectrale et non la norme Frobenius?

17

Pour la norme vectorielle, la norme L2 ou «distance euclidienne» est la définition largement utilisée et intuitive. Mais pourquoi la définition de norme "la plus utilisée" ou "par défaut" pour une matrice est la norme spectrale , mais pas la norme Frobenius (qui est similaire à la norme L2 pour les vecteurs)?

Cela a-t-il quelque chose à voir avec les algorithmes itératifs / les puissances matricielles (si le rayon spectral est inférieur à 1, alors l'algorithme convergera)?


  1. Il est toujours discutable pour les mots comme "le plus utilisé", "par défaut". Le mot "par défaut" mentionné ci-dessus vient du type de retour par défaut dans la Matlabfonction norm. Dans Rla norme par défaut pour la matrice est la norme L1. Les deux sont «contre nature» pour moi (pour une matrice, il semble plus «naturel» de le faire i,jai,j2 comme dans le vecteur). (Merci pour @ usεr11852 et les commentaires de @ whuber et désolé pour la confusion.)

  2. Peut-être étendre l' utilisation de la norme matricielle m'aiderait à mieux comprendre?

Haitao Du
la source
4
Je ne suis pas sûr que la norme spectrale soit la plus largement utilisée. Par exemple, la norme Frobenius est utilisée pour NNMF et généralement lors de l'approximation de la solution à des matrices de corr / covariance qui ne sont pas Pos.Def. et sont régularisés pour devenir Pos. Def. En général, la norme de Forbenius est une norme "élément par élément" en soi alors que la norme spectrale est basée sur les valeurs propres, elle est donc un peu plus "universelle" mais c'est une question d'opinion. Par exemple, " Matrix Algebra " de Gentle a littéralement un chapitre nommé: " La norme Frobenius - La norme" habituelle " ". Il est donc clair que la norme spectrale n'est pas la norme par défaut pour tous.
usεr11852 dit Réintégrer Monic
2
@ hxd1011: Dans MATLAB au moins, cela se fait parce que la norme spectrale est en fait la norme de matrice L2 . La norme de matrice L2 est une norme de type euclidienne puisqu'elle est induite par la norme vectorielle euclidienne, où ||A||2=max||x||2=1||Ax||2 . Que le problème d'avoir des normes induites pour les matrices, elles sont induites par une norme vectorielle. Je suppose que c'est aussi l'idée derrière R. Il est logique que la normcommande "default" renvoie toujours la même norme.
usεr11852 dit Réintégrer Monic
3
Je ne suis pas d'accord pour dire que la valeur par défaut est euclidienne et que la plus utilisée est Spectrale.
Aksakal
5
Je suis dérouté par cette question parce que je ne vois pas comment les normes matricielles sont une question de préférence ou d'utilisation. Si une norme particulière est pertinente pour un problème, alors elle est utilisée; si un autre est pertinent, il est utilisé. Sans aucun problème ou application clair à l'esprit, je ne vois donc pas comment répondre à cette question.
whuber
5
@ usεr11852 Merci de l'avoir signalé. Il est important que le texte de la question contienne toutes ces informations. Ne comptez pas sur les gens qui lisent les commentaires, surtout quand ils sont nombreux. Soit dit en passant, la page d'aide pour "norme {base}" dans ma copie de Rrépertorie la norme L1 par défaut, pas la norme spectrale.
whuber

Réponses:

13

En général, je ne suis pas sûr que la norme spectrale soit la plus largement utilisée. Par exemple, la norme Frobenius est utilisée pour approximer la solution sur la factorisation matricielle non négative ou la régularisation matricielle de corrélation / covariance . Je pense qu'une partie de cette question découle de la faute terminologique de certaines personnes (moi y compris) lorsqu'elles se réfèrent à la norme Frobenius comme norme de matrice euclidienne . Nous ne devrions pas, car en fait la norme de matrice (c'est-à-dire la norme spectrale) est celle qui est induite aux matrices lors de l'utilisation de la norme vectorielle L 2 . La norme Frobenius est la suivante: élément par élément: | | A | |L2L2 , tandis que lanorme de matriceL2(||A||2=||UNE||F=je,juneje,j2L2) est basé sur des valeurs singulières, il est donc plus "universel". (pour la chance d'un meilleur terme?) Lanorme de matriceL2est une norme de type euclidienne puisqu'elle est induite par la norme vectorielle euclidienne, où| | A| | 2=max | | x | | 2 = 1 | | Ax| | 2. C'est donc unenorme induitepour les matrices car elle estinduitepar un||UNE||2=λmuneX(UNETUNE))L2||A||2=max||x||2=1||Ax||2norme vectorielle , la norme vectorielle dans ce cas.L2

MATLAB vise probablement à fournir la norme par défaut lors de l'utilisation de la commande ; en conséquence, il fournit la norme vectorielle euclidienne mais aussi la norme de matrice L 2 , c'est-à-dire. la norme de matrice spectrale (plutôt que la norme de matrice de Frobenius / Euclidienne citée à tort ). Enfin, permettez-moi de noter que ce qui est la norme par défaut est une question d'opinion dans une certaine mesure: Par exemple, " Matrix Algebra - Theory, Computations, and Applications in Statistics " de JE Gentle a littéralement un chapitre (3.9.2) nommé: " The Frobenius Norme - La norme «habituelle»L2normL2"; si clairement que la norme spectrale n'est pas la norme par défaut pour toutes les parties considérées! :) Comme l'a commenté @amoeba, différentes communautés peuvent avoir des conventions terminologiques différentes. Il va sans dire que je pense que le livre de Gentle est une ressource inestimable sur la question de Application Lin. Algebra dans Statistics et je vous invite à regarder plus loin!

usεr11852 dit Reinstate Monic
la source
1
très bonne réponse!! m'a beaucoup aidé! A2=maxx2=1Ax2
Haitao Du
Je suis content d'avoir pu aider. Veuillez également prendre note des autres réponses. Ils sont assez perspicaces.
usεr11852 dit Réintégrer Monic
8

Une partie de la réponse peut être liée à l'informatique numérique.

Lorsque vous résolvez le système

Ax=b
avec une précision finie, vous n'obtenez pas la réponse exacte à ce problème. Vous obtenez une approximation x~ raison des contraintes de l'arithmétique finie, de sorte que Ax~b , dans un sens approprié. Qu'est-ce que votre solution représente alors? Eh bien, cela pourrait bien être une solution exacte à un autre système comme
A~x~=b~
Donc, pour que x~ soit utile, le système tilde doit être proche du système d'origine:
A~A,b~b
Sivotre algorithmede résolution du système d'origine satisfait cette propriété, alors il est appeléstable en arrière. Maintenant, l'analyse précise de l'ampleur des écartsA~A,b~bconduit finalement à des erreurs sur les bornes qui sont exprimées commeA~A,b~b. Pour certaines analyses, lanormel1(somme maximale des colonnes) est la plus simple à faire passer, pour d'autres, lal norme ((somme maximale des lignes) est la plus simple à passer (pour les composants de la solution dans le cas du système linéaire, par exemple), et pour d'autres encore, lanorme spectralel2 est la plus appropriée (induite par lel2 traditionnel 2 , comme indiquédans une autre réponse). Pour le cheval de bataille du calcul statistique en inversion de matrice psd symétrique,la décomposition de Cholesky(anecdote: le premier son est un [x] comme dans la lettre grecque "chi", pas [tʃ] comme dans "chase"), la norme la plus pratique pour garder la trace des limites d'erreur est lanormel2 ... bien que la norme Frobenius apparaisse également dans certains résultats, par exemple sur l'inversion de matrice partitionnée.

StasK
la source
3
+1, in particular for the trivia. I have always thought it starts with [k]. I looked it up now and apparently André-Louis Cholesky was of Polish decent (born in France though). Shouldn't it be "sh" sound then, like in Chopin? However, in Russian Cholesky is indeed traditionally written as Холецкий.
amoeba says Reinstate Monica
3
I take it back. Turns out Chopin's father was French, hence the French pronunciation of the surname. But Cholesky's parents were Polish and in Polish it should have been pronounced with [χ]. Cheers.
amoeba says Reinstate Monica
Yeah... I'd thought that as a Russian with a Polish first name, and having first read that Russian spelling a decade or so before first seeing it spelled in Latin letters, I'd have some idea how to pronounce it ;)
StasK
2
Who cares how to pronounce it, just use the damn thing.
Mark L. Stone
7

The answer to this depends on the field you're in. If you're a mathematician, then all norms in finite dimensions are equivalent: for any two norms a and b, there exist constants C1,C2, which depend only on dimension (and a,b) such that:

C1xbxaC2xb.

This implies that norms in finite dimensions are quite boring and there is essentially no difference between them except in how they scale. This usually means that you can choose the most convenient norm for the problem you're trying to solve. Usually you want to answer questions like "is this operator or procedure bounded" or "does this numerical process converge." With boundedness, you only usually care that something is finite. With convergence, by sacrificing the rate at which you have convergence, you can opt to use a more convenient norm.

For example, in numerical linear algebra, the Frobenius norm is sometimes preferred because it's a lot easier to calculate than the euclidean norm, and also that it naturally connects with a wider class of Hilbert Schmidt operators. Also, like the Euclidean norm, it's submultiplictive: ABFAFBF, unlike say, the max norm, so it allows you to easily talk about operator multiplication in whatever space you're working in. People tend to really like both the p=2 norm and the Frobenius norm because they have natural relations to both the eigenvalues and singular values of matrices, along with being submultiplictive.

For practical purposes, the differences between norms become more pronounced because we live in a world of dimensions and it usually matters how big a certain quantity is, and how it's measured. Those constants C1,C2 above are not exactly tight, so it becomes important just how much more or less a certain norm xa is compared to xb.

Alex R.
la source
7
Unfortunately, the term "equivalence", as in norms, can and has been misinterpreted, including by people with Ph.D.s in Computer Science. I needed to implement a certain non-trivial calculation using a 2-norm, and this guy produced a solution using a 1-norm, because that was much easier, and after all, he had heard that all norms are equivalent. Well, being off by a factor of (up to) n was not adequate for me. In that application, I could only afford to be off by a factor of 1.
Mark L. Stone
@MarkL.Stone: Right, hence the distinction between theoretical (really: topological) and practical.
Alex R.
@MarkL.Stone: +1 Clearly he was not unit-testing his code. :) (Nice anecdote! I will definitely use it when talking about miscommunications in technical computing!)
usεr11852 says Reinstate Monic
@usεr11852 ha ha, no, it's worse than that. He did "unit-test" the code as correctly implementing the calculation based on the 1-norm. It failed my system-level examination because it used the wrong norm.
Mark L. Stone
@MarkL.Stone: Oh... that's a pity! Having said that, I don't know if you were using an particular hardware configuration or something but to begin with coding a norm calculation from scratch is no-no; there are mathematics libraries one should use to avoid such issues altogether.
usεr11852 says Reinstate Monic