Partage
  • Partager sur Facebook
  • Partager sur Twitter

Décomposition de Matrice en vecteurs

    16 février 2019 à 22:21:53

    Bonjour,

    Je voudrais savoir si toutes les matrices réelles sans valeurs nulles peuvent être décomposées en un produit de 2 vecteurs réels ou complexes ?

    Je n'ai pas trouvé cette info mais dans le cas ou la matrice peut avoir des valeurs nulles, j'ai trouvé un contre-exemple avec le vecteur U = (a, b) et V = (c, d) tq U x V.T = ((0, 1), (1, 0)) 

    Du coup je me demande si cette condition assure la décomposition de la matrice. Et si c'est le cas, existe t'il une méthode pour trouver U et V ?

    Merci d'avance,

    Coni

    • Partager sur Facebook
    • Partager sur Twitter
      16 février 2019 à 23:45:45

      De quel produit de vecteurs parles tu? J'imagine qu'il s'agit du produit tensoriel de deux vecteurs ( ou produit de Kronecker)

      Dans l'exemple en dimension 2, les  composantes du produit tensoriel sont (ac,ad,bc,bd) qui peuvent se mettre sous la forme d' une matrice 2x2.

       inversement si on se donne une matrice 2x2 quelconque de coefficients \( r,s,t,u\) quelconques, pour être décomposable en produit tensoriel de deux vecteurs, on devrait avoir \(ac=r,ad=s,bc=t,bd=u\) qui n'aura en général pas de solution, sauf si les coefficients vérifient \(\frac{r}{s}=\frac{t}{u}\) qui est une condition nécessaire évidente.  

      D'une façon générale, une matrice nxn ne sera décomposable en produit tensoriel de deux vecteurs de \(\mathbb{R}^n\) que pour des valeurs particulières des coefficients .
      En fait, en analyse tensorielle, les coefficients d'une matrice nxn peut être vu comme un vecteur d'un espace \(\mathbb{R}^n \otimes \mathbb{R}^n\)  de dimension \(n^2\). Cet espace est donc de dimension beaucoup plus grande que l'espace vectoriel  produit cartésien  \(\mathbb{R}^n \times \mathbb{R}^n\) de dimension 2n. 

      Par contre on montre que tout vecteur de \(\mathbb{R}^n \otimes \mathbb{R}^n\)  de dimension \(n^2\) est toujours décomposable en une combinaison linéaire de produits tensoriels de vecteurs de \(\mathbb{R}^n  \) 

      • Partager sur Facebook
      • Partager sur Twitter
      tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable
        17 février 2019 à 0:42:29

        Merci pour la réponse ! En effet je parlais bien du produit tensoriel.

        Je suis d'accord dans le cas ou l'on reste dans R. Ce que je me demande c'est si en passant dans un espace un peu plus grand (celui des complexes), une matrice de R pourrait toujours se décomposer en 2 vecteurs de C si la matrice n'a pas de valeurs nulles.

        Je pose la question car j'ai vu une analyse intéressante sur le filtrage bokeh qui peut etre fortement accélérer en décomposant ce filtre réel de dimension N x N en 2 convolutions d'un filtre de N x 1 mais dans un espace complexe. 

        @Bibou34, merci pour le lien, j'ai testé plein de facon

        • \( ... )\,
        • \\( ... \\)
        • $$ ... $$
        • directement le HTML avec les balises math

        mais en vain...

        -
        Edité par coni63 17 février 2019 à 11:04:36

        • Partager sur Facebook
        • Partager sur Twitter
          17 février 2019 à 11:49:51

          En traitrement d'image, on a souvent à faire à un produit de convolution de la matrice représentant l'image d'origine par la matrice d'un filtre noyau ou masque NxN ( souvent N=3 ou 5 pour des filtres classiques).
          C'est en principe  la décomposition de ce noyau en produit  de convolution discrète de deux vecteurs  (N,1) que l'on recherche pour accélérer le calcul. Ce n'est pas spécifique du filtrage bokeh mais de tout filtre à noyau décomposable en produit de convolution de deux vecteurs. ( qui revient pour deux vecteurs à un produit  tensoriel) .Certains  filtres  permettent facilement cette décomposition  dans \(\mathbb{R}\) parce que leurs composantes ont justement les propriétés de proportionnalité ad-hoc  comme  que je le mentionnais rapidement  en dimension 2 dans mon premier post 

          On trouve d'ailleurs dans les ouvrages qui traitent de la question cette CNS pour qu'un filre 2D soit séparable en produit de convolution 1D (sur le même corps) : les coefficients des lignes et colonnes doivent être proportionnels.
          Je n'ai par contre pas trouvé grand chose sur une décomposition en vecteurs sur \(\mathbb{C}\) . N'étant pas expert en traitement d'images ( et encore moins en filtre de bokeh ! que j'imagine non décomposable sans passer aux complexes), il faudrait en savoir un peu plus sur l'aspect mathématique  de l'analyse dont tu parles.

          Parce que, a priori, le produit de convolution de deux vecteurs complexes sera une matrice complexe ... qui aura du mal à être égale à une matrice  réelle si on ne fait pas autre chose que le seul produit de convolution.  

          remarque LaTeX: normalement en écrivant en LaTeX dans le corps du texte avec les délimiteurs standard \(...\) cela devrait marcher.

          Tentes d'écrire un exemple qui ne marche pas . On pourra peut être te dire ce qui coince!

          -
          Edité par Sennacherib 18 février 2019 à 14:05:37

          • Partager sur Facebook
          • Partager sur Twitter
          tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable
            18 février 2019 à 19:51:43

            Super merci pour cette réponse détaillé. En effet, je m'attarde un peu sur cette question après avoir vu cette vidéo concernant les filtre gaussien puis cette vidéo sur le filtre de Bokeh. Pour moi il me semblait assez simple (grâce aux propriétés de l'exponentielle) de décomposer un filtre gaussien en un produit de 2 vecteurs (gaussiens aussi).

            Quand au filtre de Bokeh, j'ai été surpris qu'il soit possible de l'approcher grâce à la transformée de fourrier (levrai filtre étant atteint avec une somme infinie). Cela se comprend car la filtre n'est pas "continu" et des cotés du filtres sont à 0. 

            Je me suis amusé à reprendre et comprendre son code. J'ai fais quelques tests et son bénéfice sur le temps de calcul étant intéressant, je me suis demandé s'il n'y a pas une condition particulière pour décomposer un filtre dans \(\mathbb{C}\). Ayant vu le contre exemple dans \(\mathbb{R}\) précédemment, je me suis demandé si avoir une condition de valeurs non nulles pourrait suffire. Mais je doute que ce soit suffisant... et là, mon niveau en math me rattrape ^^

            Par contre, à la rédaction de cette réponse, je me demande si tous filtres, peut être approximés à l'aide d'une fft en un produit de 2 vecteurs. Certes en Machine Learning, on a peu de grands filtres (3x3 en général)... Le bénéfice serait inexistant (voir même négatif car il faut faire 2 convolutions par "éléments" de la fft...). Mais tout de même c'est une question intéressante, sachant que l'on peut "approximer" des dessins 2D avec la fft (comme cette très bonne vidéo).

            Concernant LaTex, ca à l'air de fonctionner... peut-être qu'il n'aurait pas fallu que je copie-colle les exemples de la page... (bien que j'ai nettoyé le html après)

            -
            Edité par coni63 18 février 2019 à 19:52:51

            • Partager sur Facebook
            • Partager sur Twitter

            Décomposition de Matrice en vecteurs

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown