Maison  >  Article  >  Périphériques technologiques  >  Introduction à la décomposition en valeurs singulières (SVD) et ses exemples en compression d'images

Introduction à la décomposition en valeurs singulières (SVD) et ses exemples en compression d'images

王林
王林avant
2024-01-22 14:42:251065parcourir

奇异值分解(SVD)概念 奇异值分解进行图片压缩示例

La décomposition en valeurs singulières (SVD) est une méthode utilisée pour la factorisation matricielle. Il décompose une matrice en produit de trois matrices, à savoir la matrice vectorielle singulière gauche, la matrice vectorielle singulière droite et la matrice valeur singulière. SVD est largement utilisé dans la réduction de dimensionnalité des données, le traitement du signal, les systèmes de recommandation et d'autres domaines. Grâce à SVD, nous pouvons réduire les données de grande dimension dans un espace de faible dimension pour extraire les principales caractéristiques des données. Dans le traitement du signal, SVD peut être utilisé pour la réduction du bruit et la reconstruction du signal. Dans les systèmes de recommandation, SVD peut nous aider à découvrir des associations cachées entre les utilisateurs et les éléments afin de faire des recommandations précises. En bref, SVD est une méthode de décomposition matricielle puissante et flexible qui résout pour nous de nombreux problèmes. SVD est l'abréviation de décomposition en valeurs singulières, qui décompose une matrice en trois parties : U, Σ et V^T. Parmi eux, U est une matrice m×m, et chaque colonne est un vecteur propre de la matrice AA^T, qui est appelé vecteur singulier gauche V est une matrice n×n, et chaque colonne est un vecteur propre de la matrice A ; ^TA., est appelé le vecteur singulier droit ; Σ est une matrice m×n, et les éléments sur sa diagonale sont appelés valeurs singulières. Ce sont les racines carrées des valeurs propres non nulles des matrices AA^T et. UN^TA. Grâce à la décomposition SVD, nous pouvons désassembler une matrice complexe en parties simples pour mieux comprendre et traiter les données.

SVD est une méthode de décomposition matricielle couramment utilisée qui peut être utilisée pour la compression matricielle et la réduction de dimensionnalité. Il se rapproche de la matrice originale en conservant la plus grande partie des valeurs singulières, réduisant ainsi la complexité de stockage et de calcul de la matrice. De plus, SVD peut également être appliqué aux systèmes de recommandation. En effectuant une décomposition SVD sur les matrices d'évaluation des utilisateurs et des éléments, nous pouvons obtenir les vecteurs cachés des utilisateurs et des éléments. Ces vecteurs latents peuvent capturer la relation potentielle entre les utilisateurs et les éléments, fournissant ainsi des résultats de recommandation précis pour le système de recommandation.

Dans les applications pratiques, la complexité de calcul du SVD est élevée, des techniques d'optimisation doivent donc être utilisées pour accélérer le calcul, telles que le SVD tronqué et le SVD aléatoire. Ces techniques peuvent réduire la quantité de calcul et améliorer l’efficacité des calculs.

Troncation SVD fait référence à la conservation de la plus grande partie des valeurs singulières et à la mise à zéro des valeurs singulières les plus petites pour obtenir une compression matricielle et une réduction de dimensionnalité. Le SVD stochastique se rapproche de la décomposition du SVD par projection aléatoire pour accélérer les calculs.

SVD a également des formes étendues, telles que SVD pondéré, SVD incrémentiel, SVD distribué, etc., qui peuvent être appliquées à des scénarios plus complexes.

Weighted SVD introduit des poids sur la base du SVD standard pour effectuer une décomposition pondérée de la matrice afin de mieux s'adapter aux besoins des applications pratiques.

Incremental SVD fait référence à la mise à jour incrémentielle de la matrice en fonction des résultats de décomposition SVD d'origine, évitant ainsi la surcharge liée au recalcul du SVD à chaque fois.

Le SVD distribué fait référence à la distribution du calcul de la décomposition SVD sur plusieurs ordinateurs pour accélérer le calcul et convient au traitement de données à grande échelle.

SVD est largement utilisé dans l'apprentissage automatique, les systèmes de recommandation, le traitement d'images et d'autres domaines, et constitue un outil d'analyse de données important. Ce qui précède décrit les principes et les techniques d'optimisation de la décomposition en valeurs singulières, puis examinons l'application pratique de la décomposition en valeurs singulières.

Comment utiliser la décomposition en valeurs singulières pour la compression d'image

L'idée de base de l'utilisation de la décomposition en valeurs singulières pour la compression d'image est de décomposer la matrice d'image via SVD, puis de ne conserver que certaines des valeurs singulières les plus grandes ​​et les vecteurs singuliers gauche et droit correspondants, obtenant ainsi une compression d'image.

Les étapes spécifiques sont les suivantes :

1 Convertir l'image couleur en une image en niveaux de gris et obtenir une matrice A.

2. Effectuez une décomposition SVD sur la matrice A pour obtenir trois matrices U, S et V, où S est une matrice diagonale et les éléments sur la diagonale sont des valeurs singulières.

3. Ne conservez que les k premières valeurs singulières plus grandes dans la matrice S et les vecteurs singuliers gauche et droit correspondants pour obtenir de nouvelles matrices S', U' et V'.

4. Multipliez S', U' et V' pour obtenir la matrice approximative A' et remplacez la matrice d'origine A par A-A', ce qui permet d'obtenir la compression.

Plus précisément, à l'étape 3, le nombre k de valeurs singulières à conserver doit être déterminé en fonction du taux de compression et des exigences de qualité d'image. Dans des circonstances normales, il est possible de conserver les 20 à 30 premières valeurs singulières. obtenir de meilleurs résultats. Dans le même temps, afin d'obtenir un meilleur effet de compression, les valeurs singulières conservées peuvent être quantifiées et codées.

Il convient de noter que lors du processus de compression d'image utilisant une décomposition en valeurs singulières, une certaine quantité d'informations sur l'image peut être perdue, un compromis doit donc être fait entre le taux de compression et la qualité de l'image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer