Directorio de artículos
1. Descomposición de valores singulares
Hay muchos tutoriales que explican la descomposición de valores singulares (SVD), no entraré en detalles aquí, solo registraré mi propia comprensión.
Para la siguiente fórmula de descomposición de valores singulares:
M = U Σ VT \begin{aligned} M &= U \Sigma V^\text{T} \end{aligned}m=U Σ Vt
donde:
MMLa matriz M puede no ser una matriz cuadrada, es decir, su dimensión esm × nm \times nmetro×norte . UU.
La matriz U esm × mm \times mmetro×La matriz cuadrada de m representa el vector base descompuesto.
Σ\SigmaLa matriz Σ es una matriz no cuadrada con dimensionesm × nm \times nmetro×Una matriz diagonal de n , los elementos diagonales son valores singulares.
V.V.La matriz V es de dimensiónn × nn \times nnorte×Matriz ortogonal de n .
Por ejemplo, cuando MMLa dimensión matricial de M es 4 × 2 4 \times 24×2 , la fórmula de descomposición del valor singular se puede escribir de la siguiente forma
M = U Σ VT [ x 1 y 1 x 2 y 2 x 3 y 3 x 4 y 4 ] = [ — — — — — — — — — — — — — — — — — ] [ a 0 0 b 0 0 0 0 ] [ — — — — ] \begin{aligned} M &= U \Sigma V^\text{T} \\ \left[\begin{matrix} x_1 & y_1 \\ x_2 & y_2 \\ x_3 & y_3 \ \ x_4 & y_4 \\ \end{matrix}\right] &= \left[\begin{matrix} — & — & — & — \\ — & — & — & — \\ — & — & — & — \ \ — & — & — & — \\ \end{matrix}\right] \left[\begin{matrix} a & 0 \\ 0 & b \\ 0 & 0 \\ 0 & 0 \\ \end{matrix }\right] \left[\begin{matrix} — & — \\ — & — \\ \end{matrix}\right] \end{aligned}METRO X1X2X3X4y1y2y3y4 =U Σ Vt= ———————————————— a0000b00 [————]
Puede que no lo entiendas en este momento, pero está bien. Sólo quería revisar primero la fórmula SVD y seguir leyendo.
2. A partir de la transformación lineal de datos.
La transformación lineal de datos es un concepto matemático que generalmente se usa para cambiar la representación o base de los datos sin cambiar la estructura o relación esencial de los datos. En el espacio vectorial, la transformación lineal se puede lograr multiplicando por una matriz.
Si hay un vector en un plano bidimensional, la transformación lineal puede consistir en operaciones como escalado, rotación e inclinación.
Por ejemplo,
-
Una operación de escalado puede utilizar la matriz S = [ 2 0 0 1 ] S = \left[\begin{matrix} 2 & 0 \\ 0 & 1 \\ \end{matrix}\right]S=[2001] significa que esta matriz convertiráxxcoordenada x multiplicada por 2,yyLa coordenada y se multiplica por 1.
-
Además, el rango de la ecuación R = [ cos ( θ ) − sin ( θ ) sin ( θ ) cos ( θ ) ] R = \left[\begin{matrix} \cos(\theta) & - \]. sin(\theta)\\\sin(\theta) & \cos(\theta)\\\end{matrix}\right]R=[porque ( θ )pecado ( θ ).−pecado ( θ )porque ( θ ).] significa que esta matriz convertiráxxx 和 y y y旋转θ \thetaÁngulo θ .
Las dos matrices anteriores SSS yRRR también se puede derivar de la base ortogonali ⃗ , j ⃗ \vec{i}, \vec{j}i,jrespectivamente ver SS sobre la transformación deS yRREfecto de transformación de la matriz R.
Si la base ortonormal original es i ⃗ = [ 1 0 ], j ⃗ = [ 0 1 ] \vec{i} = \left[\begin{matrix} 1 \\ 0 \\ \end{matrix}\right], \vec{j} = \left[\begin{matrix} 0 \\ 1 \\ \end{matrix}\right]i=[10],j=[01] , después deSSDespués de la transformación de la matriz S
, la base ortonormal se convierte enS i ⃗ = [ 2 0 ], S j ⃗ = [ 0 1 ] S\vec{i} = \left[\begin{matrix} 2 \\ 0 \ \ \end{matrix}\right], S\vec{j} = \left[\begin{matrix} 0 \\ 1 \\ \end{matrix}\right]Si=[20], Sj=[01]。
Si la base ortonormal original es i ⃗ = [ 1 0 ], j ⃗ = [ 0 1 ] \vec{i} = \left[\begin{matrix} 1 \\ 0 \\ \end{matrix}\right], \vec{j} = \left[\begin{matrix} 0 \\ 1 \\ \end{matrix}\right]i=[10],j=[01] , después deRRDespués de la transformación de la matriz R ,
la base ortogonal transformada se convierte enR i ⃗ = [ cos ( θ ) sin ( θ ) ], R j ⃗ = [ − sin ( θ ) cos ( θ ) ] R\vec {i} = \left[\begin{matrix} \cos(\theta) \\ \sin(\theta) \\ \end{matrix}\right], R\vec{j} = \left[\begin{ matriz} -\sin(\theta) \\ \cos(\theta) \\ \end{matrix}\right]Ri=[porque ( θ )pecado ( θ ).], rj=[−pecado ( θ )porque ( θ ).]。
En el video [Aula de último año] ¿Qué es la descomposición de valores singulares SVD? ¿Cómo descompone SVD la matriz espacio-tiempo? - bilibili , el ejemplo utiliza un conjunto de vectores
D = [ x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 ] D = \left[\begin{matrix} x_1 & x_2 & x_3 & x_4 \\ y_1 & y_2 & y_3 & y_4 \\ \end {matriz}\derecha]D=[X1y1X2y2X3y3X4y4]
También puede entenderse como un grupo de puntos de datos planos bidimensionales.
A continuación, echemos un vistazo a las operaciones de estiramiento y rotación de este grupo de puntos de datos, porque hay animaciones correspondientes en el video, que es más fácil de entender.
1. Ampliar
Para el DD anteriorMatriz de puntos de datos D , mire la matriz de transformaciónSSEfecto S.
Formalmente podemos ver que la matriz SSLa función de S es escalar, que también se puede ver en las siguientes operaciones de datos, es decir, cuandoDDD se deja multiplicado por una matriz de transformaciónSSDespués de S ,DDD se convierte
SD = [ 2 0 0 1 ] [ x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 ] = [ 2 x 1 2 x 2 2 x 3 2 x 4 y 1 y 2 y 3 y 4 ] \ comenzar{alineado} SD = \left[\begin{matrix} 2 y 0 \\ 0 y 1 \\ \end{matrix}\right] \left[\begin{matrix} x_1 y x_2 y x_3 y x_4 \\ y_1 & y_2 & y_3 & y_4 \\ \end{matrix}\right] =\left[\begin{matrix} 2x_1 & 2x_2 & 2x_3 & 2x_4 \\ y_1 & y_2 & y_3 & y_4 \\ \end{matrix}\right ] \end{alineado}SD _=[2001][X1y1X2y2X3y3X4y4]=[2x _1y12x _2y22x _3y32x _4y4]
La transformación anterior también se puede ver en el siguiente gráfico dinámico.
2. Girar
A continuación, eche un vistazo a la matriz de rotación RR.Efecto R.
Formalmente podemos ver que la matriz RRLa función de R es la rotación, que también se puede ver en las siguientes operaciones de datos, es decir, cuando elSD SDLuego se deja la matriz S D multiplicada por una matriz de transformación RRDespués de R ,SD SDSD se convierte en
RSD = [ cos ( θ ) − sen ( θ ) sen ( θ ) cos ( θ ) ] [ x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 ] = [ x 1 cos ( θ ) − y 1 pecado ( θ ) x 2 cos ( θ ) − y 2 pecado ( θ ) ⋯ x 1 pecado ( θ ) + y 1 cos ( θ ) x 2 pecado ( θ ) + y 2 cos ( θ ) ⋯ ] \begin{aligned} RSD = \left[\begin{matrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\ ". theta) \\\end{matrix}\right]\left[\begin{matrix}x_1&x_2&x_3&x_4\\y_1&y_2&y_3&y_4\\end{matrix}\right] =\left[ \begin{matrix} x_1 \cos(\theta ) - y_1 \sin(\theta) & x_2 \cos(\theta) - y_2 \sin(\theta) & \cdots \\ x_1 \sin(\theta) + y_1 \cos(\theta) & x_2 \sin( \theta) + y_2 \cos(\theta) & \cdots\\end{matrix}\right]\end{aligned}RSD _=[porque ( θ )pecado ( θ ).−pecado ( θ )porque ( θ ).][X1y1X2y2X3y3X4y4]=[X1porque ( θ )−y1pecado ( θ )X1pecado ( θ )+y1porque ( θ ).X2porque ( θ )−y2pecado ( θ )X2pecado ( θ )+y2porque ( θ ).⋯⋯]
Datos SD SDEl efecto de rotación de SD se puede observar en el siguiente diagrama dinámico.
3. Conocimientos complementarios: cómo distinguir el efecto de transformación de la matriz.
Para analizar el efecto de la transformación de una matriz (ya sea escalado, rotación o sesgo), debemos considerar cómo opera la matriz en los vectores base u observar sus propiedades específicas.
-
Escalado:
La matriz de escalamiento tendrá valores distintos de 1 en la diagonal y 0 en el resto. Por ejemplo, la matriz de escala en un espacio bidimensional es:
[ sx 0 0 sy ] \left[\begin{matrix} s_x & 0 \\ 0 & s_y \\ \end{matrix}\right][sx00sy]
sx, sy s_x, s_ysx,syrespectivamente xxdirección x y yyFactor de escala en la dirección y . -
Rotación:
La matriz de rotación tiene la siguiente forma en un espacio bidimensional:
[ cos ( θ ) − sin ( θ ) sin ( θ ) cos ( θ ) ] \left[\begin{matrix} \cos(\ theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \\ \end{matrix}\right][porque ( θ )pecado ( θ ).−pecado ( θ )porque ( θ ).]
Entoncesθ \thetaθ es el ángulo de rotación. El determinante de la matriz de rotación es 1 y su inversa es su transpuesta.
Además, para conocer la forma del vector base de la matriz de rotación espacial tridimensional, consulte[Conocimientos matemáticos] El proceso de derivación de la matriz de rotación, que se realiza en función de la rotación del vector, y al mismo tiempo resuelve el Limitaciones no lineales de la transformación euclidiana. Para conocer laforma del ángulo de Euler, consulte:Capítulo 3 - Base de conocimientos de matemáticas -> Conversión de coordenadas. -
Sesgar o cortar:
En dos dimensiones, xxx 和 y y La matriz de inclinación en la dirección y es:
[ 1 s 0 1 ] , [ 1 0 s 1 ] \left[\begin{matrix} 1 & s \\ 0 & 1 \\ \end{matrix}\right], \ quad \ left[\begin{matrix} 1 & 0 \\ s & 1 \\ \end{matrix}\right][10s1],[1s01]
dondesss es la cantidad de corte o inclinación.
En aplicaciones prácticas, una matriz puede representar múltiples transformaciones al mismo tiempo, es decir, una matriz es una combinación de múltiples transformaciones. Para determinar su función, normalmente necesitamos descomponerlo. Por ejemplo, la descomposición SVD común puede obtener las matrices de rotación, escala y corte.
Al mismo tiempo, si desea comprender intuitivamente cómo opera la matriz, también puede aplicarla a vectores de base estándar (como [ 1 0 ] \left[\begin{matrix} 1 \\ 0 \\ \end{ en matriz espacial bidimensional }\right][10]和[ 0 1 ] \left[\begin{matrix} 0 \\ 1 \\ \end{matrix}\right][01] ), observe el resultado de la transformación de la base vectorial.
3. De 2 × 2 2 \times 22×La fórmula SVD se obtiene a partir de 2 matrices.
Con los conocimientos básicos anteriores, ahora asumimos que existe un 2 × 2 2 \times 22×MatrizMM de 2m._ _ ¿Puedes saberMM?La matriz M debe representar algún tipo de transformación lineal. En cuanto a si es un tipo o una combinación de varios tipos, necesitamos más análisis.
SupongamosMM_ _El efecto de transformación de la matriz M se muestra en la siguiente figura.
Podemos encontrar un conjunto de bases ortonormales en los ejes de coordenadas antes de la transformación, llamado v ⃗ 1 , v ⃗ 2 \vec{v}_1, \vec{v}_2v1,v2, después de MMDespués de la transformación lineal M ,v ⃗ 1 \vec{v}_1v1se convierte en u ⃗ 1 \vec{u}_1tu1,v ⃗ 2 \vec{v}_2v2se convierte en u ⃗ 2 \vec{u}_2tu2, y las longitudes son respectivamente σ 1 \sigma_1pag1y σ 2 \sigma_2pag2. Este proceso se puede expresar mediante la siguiente relación
M v ⃗ 1 = σ 1 u ⃗ 1 M v ⃗ 2 = σ 2 u ⃗ 2 \begin{aligned} M \vec{v}_1 &= \sigma_1 \vec{u}_1 \\ M \vec{v} _2 &= \sigma_2 \vec{u}_2 \end{alineado}METROv1METROv2=pag1tu1=pag2tu2
Analíticamente se utiliza una matriz para representar la base ortogonal, es decir
V = [ v ⃗ 1 v ⃗ 2 ] , U = [ u ⃗ 1 u ⃗ 2 ] , Σ = [ σ 1 0 0 σ 2 ] \begin{aligned} V=\left[\begin{matrix} \vec{ v}_1 & \vec{v}_2 \\ \end{matrix}\right] , \quad U &= \left[\begin{matrix} \vec{u}_1 & \vec{u}_2 \\ \ end{matrix}\right] , \quad \Sigma = \left[\begin{matrix} \sigma_1 & 0 \\ 0 & \sigma_2 \\ \end{matrix}\right] \end{aligned}V=[v1v2],Ud.=[tu1tu2],S=[pag100pag2]
Entonces hay
M [ v ⃗ 1 v ⃗ 2 ] = [ u ⃗ 1 u ⃗ 2 ] [ σ 1 0 0 σ 2 ] MV = U Σ MVV − 1 = U Σ V − 1 M = U Σ VT ( V 是正交矩阵,故 V − 1 = VT ) \begin{aligned} M \left[\begin{matrix} \vec{v}_1 & \vec{v}_2 \\ \end{matrix}\right] &= \left[ \begin{matrix} \vec{u}_1 & \vec{u}_2 \\ \end{matrix}\right] \left[\begin{matrix} \sigma_1 & 0 \\ 0 & \sigma_2 \\ \end {matriz}\right] \\ MV &= U \Sigma \\ MVV^{-1} &= U \Sigma V^{-1} \\ M &= U \Sigma V^{\text{T}} \quad (V 是\text{正交矩阵,故} V^{-1} = V^\text{T}) \end{aligned}METRO[v1v2]mv _M F F− 1m=[tu1tu2][pag100pag2]=la s=U Σ V− 1=U Σ Vt( V es una matriz ortogonal, entonces V− 1=VT)
Observando la descomposición SVD desde la perspectiva de la transformación gráfica, matriz MMM es equivalente a pasar primero por la matriz de rotaciónVTV^\text{T}VT se gira y luego se pasa a través de la matriz de escalaΣ \SigmaSe escala Σ y finalmente se utiliza la matriz de rotaciónUUU gira y alcanza el mismo nivel queMM.El mismo efecto de transformación lineal que la matriz M.
4. SVD se extiende a m × nm \times nmetro×norte matriz
En el ejemplo anterior de descomposición de valores singulares
M = U Σ VT \begin{aligned} M &= U \Sigma V^{\text{T}} \end{aligned}m=U Σ Vt
Las dimensiones de la matriz son:
MMM:2 × 2 2 \veces 22×2 ,
UUU:2 × 2 2 \veces 22×2,
Σ \SigmaΣ :2 × 2 2 \ veces 22×2,
VVV:2 × 2 2 \veces 22×2 .
si mmLa dimensión matricial de M es m × nm \times nmetro×n,
NanayuUUU:m × mm \veces mmetro×m,
Σ \SigmaΣ:m × nm \ veces nmetro×norte,
VVV:n × nn \ veces nnorte×norte .
Este punto corresponde a lo que describimos en el primer paso.
5. Encuentra la descomposición SVD
Sabemos que la forma básica de descomposición SVD es
M = U Σ VT \begin{aligned} M &= U \Sigma V^{\text{T}} \end{aligned}m=U Σ Vt
那么
MTM = ( U Σ VT ) TU Σ VTMTM = V Σ TUTU Σ VT \begin{aligned} M^\text{T} M &= (U \Sigma V^{\text{T}})^\text{ T} U \Sigma V^{\text{T}} \\ M^\text{T} M &= V \Sigma^\text{T} U^\text{T} U \Sigma V^{\text {T}} \end{alineado}METROTM _METROTM _=( U Σ VT )TU ΣV_t=V STU _TU ΣV_t
Causa UUIntercambio de corrección U , hayUTU = IU^\text{T} U = IUd.TU _=yo entonces
MTM = V Σ TUTU Σ VTMTM = V Σ TI Σ VTMTM = V Σ T Σ VT \begin{aligned} M^\text{T} M &= V \Sigma^\text{T} U^\text{T} U \Sigma V^{\text{T}} \\ M^\text{T} M &= V \Sigma^\text{T} I \Sigma V^{\text{T}} \\ M^\ texto{T} M &= V \Sigma^\text{T} \Sigma V^{\text{T}} \end{aligned}METROTM _METROTM _METROTM _=V STU _TU ΣV_t=V STI ΣV_t=V ST ΣVt
Y porque Σ \SigmaΣ es una matriz diagonal, entoncesΣ T = Σ \Sigma^\text{T} = \SigmaSt=S,即
MTM = V Σ T Σ VTMTM = V Σ Σ VT \begin{aligned} M^\text{T} M &= V \Sigma^\text{T} \Sigma V^{\text{T}} \\ M ^\text{T} M &= V \Sigma \Sigma V^{\text{T}} \end{alineado}METROTM _METROTM _=V ST ΣVt=V SS Vt
令 L = Σ Σ L = \Sigma \Sigma l=SS ,有
MTM = V Σ Σ VTMTM = VLVT \begin{aligned} M^\text{T} M &= V \Sigma \Sigma V^{\text{T}} \\ M^\text{T} M &= VLV ^{\text{T}} \end{alineado}METROTM _METROTM _=V SS Vt=FLF _ _t
Porque VVV también es una matriz ortogonal, por lo que se puede desplazar de la siguiente manera
MTM = VLVTMTMV = VLVTV = VLV − 1 VMTMV = VL \begin{aligned} M^\text{T} M &= VLV^{\text{T}} \\ M^\text{T} MV &= VLV^ {\text{T}} V = VLV^{-1} V \\ M^\text{T} MV &= VL \end{aligned}METROTM _METROTMV __METROTM V_=FLF _ _t=FLF _ _televisión _=FLF _ _- 1V _=VL _
Debe utilizar la definición de vectores propios aquí. Si lo olvida, puede consultar el artículo [Conocimiento matemático] Valores propios, vectores propios y vectores propios izquierdos .
Cuando queremos encontrar MTMM^\text{T} MMETROCuando el vector propio deTM es
MTM v ⃗ 1 = λ 1 v ⃗ 1 MTM v ⃗ 2 = λ 2 v ⃗ 2 \begin{aligned} M^\text{T} M \vec{v}_1 &= \lambda_1 \vec{v}_1 \ \ M^\text{T} M \vec{v}_2 &= \lambda_2 \vec{v}_2 \end{aligned}METROTM _v1METROTM _v2=yo1v1=yo2v2
Escríbelo de otra forma:
MTM [ v ⃗ 1 v ⃗ 2 ] = [ v ⃗ 1 v ⃗ 2 ] [ λ 1 0 0 λ 2 ] \begin{aligned} M^\text{T} M \left[\begin{matrix} \vec{ v}_1 & \vec{v}_2 \\ \end{matrix}\right] &= \left[\begin{matrix} \vec{v}_1 & \vec{v}_2 \\ \end{matrix} \right] \left[\begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2\\ \end{matrix}\right] \end{aligned}METROTM _[v1v2]=[v1v2][yo100yo2]
Echemos otro vistazo a las conclusiones a las que llegamos antes.
MTMV = VL \begin{aligned} M^\text{T} MV &= VL \end{aligned}METROTM V_=VL _
entonces vvV是MTMM^\text{T} MMETROVector propio dela matriz TM , LLL es su valor propio.
而 L = Σ Σ L = \Sigma \Sigma l=La matriz ΣΣ es la matriz diagonalΣ \SigmaLa multiplicación de Σ es
L = Σ Σ = [ σ 1 0 0 σ 2 ] [ σ 1 0 0 σ 2 ] = [ σ 1 2 0 0 σ 2 2 ] = [ λ 1 0 0 λ 2 ] \begin{aligned} L &= \ Sigma \Sigma = \left[\begin{matrix} \sigma_1 & 0 \\ 0 & \sigma_2 \\ \end{matrix}\right] \left[\begin{matrix} \sigma_1 & 0 \\ 0 & \sigma_2 \\ \end{matrix}\right] = \left[\begin{matrix} \sigma_1^2 & 0 \\ 0 & \sigma_2^2 \\ \end{matrix}\right] \\ &= \left[ \begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2 \\ \end{matrix}\right] \end{aligned}l=SS=[pag100pag2][pag100pag2]=[pag1200pag22]=[yo100yo2]
Al mismo tiempo Σ \SigmaElemento σ 1 \sigma_1en la matriz Σpag1Los llamamos valores singulares.
A través de la fórmula anterior, también sabemos por qué existe una relación cuadrada entre valores singulares y valores propios.
De la misma manera podemos obtener
MMTU = UL \begin{aligned} MM^\text{T} U &= UL \end{aligned}M MTU _=UL
Se sigue la misma conclusión, es decir, UU.U是MMT MM^\text{T}M MVectores propios de la matriz T.
En resumen, el proceso de resolución de SVD es
- 求MTMM^\text{T}MMETROEl vector propio deTM obtiene VVV,
- 求MMT MM^\text{T}M MEl vector propio de T se vuelve UUU ,
- 求MTMM^\text{T}MMETROT M或MMT MM^\text{T}M MEl valor propio de T , el valor singular, se obtiene sacando la raíz cuadrada,
- Utilice valores singulares para formar una matriz diagonal Σ \SigmaS. _
Árbitro
- ¿Cómo explicar de forma fácil de entender qué es PCA (Análisis de Componentes Principales)? - Saber casi
- [Aprendizaje automático] Reducción de dimensionalidad - PCA (muy detallado) - Zhihu
- [Aula de último año] ¿Qué es la descomposición de valores singulares SVD? ¿Cómo descompone SVD la matriz espacio-tiempo? - bilibili
- ¿Cómo entender los valores singulares de forma popular? - Compañera de clase mamá