Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

27 votos

¿Cómo resuelve SVD el problema de mínimos cuadrados?

¿Cómo puedo demostrar que la solución de mínimos cuadrados para minimizar es A^{+} b, donde A^{+} es la pseudoinversa de A?

0 votos

0 votos

También relacionado: quora.com/…

0 votos

Deje A \in \mathbb R^{m \times n}. La mejor definición de la pseudoinversa A^+ es que A^+ toma un vector b \in \mathbb R^m como entrada y devuelve como salida la solución de menor norma a Ax = \hat b, donde \hat b es la proyección de b en el espacio de columnas de A.

38voto

dantopa Puntos 111

La pseudoinversa de Moore-Penrose es una consecuencia natural de aplicar la descomposición de valores singulares al problema de mínimos cuadrados. La SVD resuelve el problema de mínimos cuadrados en dos componentes: (1) una parte del espacio de rango que se puede minimizar y (2) un término de espacio nulo que no se puede eliminar, es decir, un error residual. La primera parte naturalmente creará la solución seudoinversa.

Definir SVD

Comenzar con una matriz no nula \mathbf{A}\in\mathbb{C}^{m\times n}_{\rho}, donde el rango de la matriz 1\le\rho y \rho. La descomposición de valores singulares, garantizada de existir, es \mathbf{A} = \mathbf{U} \, \Sigma \, \mathbf{V}^{*} = \left[ \begin{array}{cc} \color{blue}{\mathbf{U}_{\mathcal{R}}} & \color{red}{\mathbf{U}_{\mathcal{N}}} \end{array} \right] % \left[ \begin{array}{c} \mathbf{S} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} \end{array} \right] % \left[ \begin{array}{c} \color{blue}{\mathbf{V}_{\mathcal{R}}}^{*} \\ \color{red}{\mathbf{V}_{\mathcal{N}}}^{*} \end{array} \right]. La matriz codominio \mathbf{U}\in\mathbb{C}^{m\times m} y la matriz de dominio \mathbf{V}\in\mathbb{C}^{n\times n} son unitarias: \mathbf{U}^{*}\mathbf{U} = \mathbf{U}\mathbf{U}^{*} = \mathbf{I}_{m}, \quad \mathbf{V}^{*}\mathbf{V} = \mathbf{V}\mathbf{V}^{*} = \mathbf{I}_{n}. Los vectores columna de las matrices del dominio proporcionan bases ortonormales para los cuatro subespacios fundamentales: \begin{array}{ll} % matriz & subespacio \\\hline % \color{blue}{\mathbf{U}_{\mathcal{R}}}\in\mathbb{C}^{m\times\rho} & \color{blue}{\mathcal{R}\left(\mathbf{A}\right)} = \text{span}\left\{\color{blue}{u_{1}},\dots,\color{blue}{u_{\rho}}\right\}\\ % \color{blue}{\mathbf{V}_{\mathcal{R}}}\in\mathbb{C}^{n\times\rho} & \color{blue}{\mathcal{R}\left(\mathbf{A}^{*}\right)} = \text{span}\left\{\color{blue}{v_{1}},\dots,\color{blue}{v_{\rho}}\right\}\\ % \color{red}{\mathbf{U}_{\mathcal{N}}}\in\mathbb{C}^{m\times m-\rho} & \color{red}{\mathcal{N}\left(\mathbf{A^{*}}\right)} = \text{span}\left\{\color{red}{u_{\rho+1}},\dots,\color{red}{u_{m}}\right\}\\ % \color{red}{\mathbf{V}_{\mathcal{N}}}\in\mathbb{C}^{n\times n-\rho} & \color{red}{\mathcal{N}\left(\mathbf{A}\right)} = \text{span}\left\{\color{red}{v_{\rho+1}},\dots,\color{red}{v_{n}}\right\}\\ % \end{array} Hay \rho valores singulares que están ordenados y son reales: \sigma_{1} \ge \sigma_{2} \ge \dots \ge \sigma_{\rho}>0, y son la raíz cuadrada de los autovalores no nulos de las matrices de productos \mathbf{A}^{*}\mathbf{A} y \mathbf{A}\mathbf{A}^{*}. Estos valores singulares forman la matriz diagonal de valores singulares \mathbf{S} = \text{diagonal} (\sigma_{1},\sigma_{2},\dots,\sigma_{\rho}) = \left[ \begin{array}{ccc} \sigma_{1} \\ & \ddots \\ && \sigma_{\rho} \end{array} \right] \in\mathbb{R}^{\rho\times\rho}. La matriz \mathbf{S} está incrustada en la matriz sabot \Sigma\in\mathbb{R}^{m\times n} cuya forma garantiza la conformabilidad.

Definir solución de mínimos cuadrados

Considerar que el sistema lineal \mathbf{A} x = b no tiene una solución exacta, por lo que generalizamos la pregunta y pedimos la mejor solución vectorial x. Utilizando la norma 2-, pedimos la solución de mínimos cuadrados que minimiza r^{2}(x) = \lVert \mathbf{A} x - b \rVert_{2}^{2}, la suma de los cuadrados de los errores residuales: x_{LS} = \left\{ x \in \mathbb{C}^{n} \colon \big\lVert \mathbf{A} x - b \big\rVert_{2}^{2} \text{ se minimiza} \right\}

Explotar SVD - resolver componentes de espacio rango y nulo

Una propiedad útil de las transformaciones unitarias es que son invariantes bajo la norma 2-. Por ejemplo \lVert \mathbf{V} x \rVert_{2} = \lVert x \rVert_{2}. Esto proporciona una libertad para transformar problemas en una forma más fácil de manipular. En este caso, \begin{align} r\cdot r &= \lVert \mathbf{A}x - b \rVert_{2}^{2} = \lVert \mathbf{U}^{*}\left(\mathbf{A}x - b \right) \rVert_{2}^{2} = \lVert \mathbf{U}^{*}\left(\mathbf{U} \, \Sigma \, \mathbf{V}^{*}x - b \right) \rVert_{2}^{2} \\ &= \lVert \Sigma \mathbf{V}^{*} x - \mathbf{U}^{*} b \rVert_{2}^{2}. \end{align} Al cambiar a la forma en bloque se separan los términos de espacio rango y espacio nulo, \begin{align} r^{2}(x) &= \big\lVert \Sigma \mathbf{V}^{*} x - \mathbf{U}^{*} b \big\rVert_{2}^{2} = \Bigg\lVert % \left[ \begin{array}{c} \mathbf{S} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} \end{array} \right] % \left[ \begin{array}{c} \color{blue}{\mathbf{V}_{\mathcal{R}}}^{*} \\ \color{red}{\mathbf{V}_{\mathcal{N}}}^{*} \end{array} \right] % x - \left[ \begin{array}{c} \color{blue}{\mathbf{U}_{\mathcal{R}}}^{*} \\ \color{red}{\mathbf{U}_{\mathcal{N}}}^{*} \end{array} \right] b \Bigg\rVert_{2}^{2} \\ &= \big\lVert \mathbf{S} \color{blue}{\mathbf{V}_{\mathcal{R}}}^{*} x - \color{blue}{\mathbf{U}_{\mathcal{R}}}^{*} b \big\rVert_{2}^{2} + \big\lVert \color{red}{\mathbf{U}_{\mathcal{N}}}^{*} b \big\rVert_{2}^{2} \end{align}

La separación entre las contribuciones de espacio rango y espacio nulo al error total es también una separación entre componentes que están controladas y no controladas. El vector que controlamos es el vector solución x que aparece solo en el término de espacio rango (azul). Lo que queda es el término de espacio nulo (rojo), un error residual.

Resolver y recuperar la pseudoinversa de Moore-Penrose

Seleccionar el vector x en el término de espacio rango que fuerce a ese término a ser 0: \mathbf{S} \color{blue}{\mathbf{V}_{\mathcal{R}}}^{*} x - \color{blue}{\mathbf{U}_{\mathcal{R}}}^{*} b = 0 \qquad \Rightarrow \qquad x = \color{blue}{\mathbf{V}_{\mathcal{R}}} \mathbf{S}^{-1} \color{blue}{\mathbf{U}_{\mathcal{R}}}^{*}b. Esta es la solución de mínimos cuadrados \color{blue}{x_{LS}} = \color{blue}{\mathbf{A}^{\dagger} b} = \color{blue}{\mathbf{V}_{\mathcal{R}}} \mathbf{S}^{-1} \color{blue}{\mathbf{U}_{\mathcal{R}}}^{*}b usando la SVD delgada.

Queda un término de error que no podemos eliminar, un error residual, dado por r^{2}\left(x_{LS}\right) = \big\lVert \color{red}{\mathbf{U}_{\mathcal{N}}^{*}} b \big\rVert_{2}^{2}, que cuantifica la porción del vector de datos b que reside en el espacio nulo.

1 votos

¿Qué significa R(A)? ¿El espacio de columnas de A? ¿O es el espacio de filas?

1 votos

@Nina Kaprez: \color{blue}{\mathcal{R}\left(\mathbf{A}\right)} es el espacio de rango de la matriz \mathbf{A}. Es el espacio generado por los vectores de columna de \mathbf{A}. Para más detalles: espacio de columna

0 votos

La implicación final parece un poco fuera de lugar. ¿No implica solo { \mathbf{S} \mathbf{V} _{\mathcal{R}} ^{*} x - \mathbf{U} _{\mathcal{R}} ^{*} b = 0 } la igualdad { \mathbf{V} _{\mathcal{R}} ^{*} x = \mathbf{S} ^{-1} \mathbf{U} _{\mathcal{R}} ^{*} b }? Dado que { \mathbf{V} _{\mathcal{R}} } es { n \times \rho }, esto da una familia de soluciones para { x }. Dado que { x = \mathbf{V} _{\mathcal{R}} \mathbf{S} ^{-1} \mathbf{U} _{\mathcal{R}} ^{*} b } es una solución particular, el conjunto completo de soluciones es { \text{(solución anterior)} + \mathcal{N}(\mathbf{V} _{\mathcal{R}} ^{*}) }.

5voto

d.k.o. Puntos 4022

Primer condición de orden:

\frac{d}{dx}||Ax-b||_2^2=\frac{d}{dx}(Ax-b)'(Ax-b)=A'(Ax-b)=0

Por lo tanto,

x=(A'A)^{-1}A'b=A^+b

1 votos

¿Cuáles son tus suposiciones sobre A?

1 votos

A'A es invertible (A tiene rango completo por columnas)

3 votos

@d.k.o. Me refería a un caso general. A puede ser deficiente en rango.

2voto

glS Puntos 399

Lo primero que hay que saber es que los posibles valores de Ax cubren todos y solo el rango de A: \{Ax: x\in V\}=\mathrm{Range}(A). Esto significa que el problema Ax=b es solucionable si y solo si b\in\mathrm{Range}(A).

Ahora consideremos el caso más general en el que b\in \mathrm{Range}(A) no es necesariamente cierto, y por lo tanto el problema no puede resolverse exactamente. Dado que A nos permite generar todo en \mathrm{Range}(A) mediante una elección adecuada de x, entonces es natural que el x que brinde la mejor solución (en cuanto a la norma \|\cdot\|_2) sea aquel tal que Ax sea igual a la proyección de b en \mathrm{Range}(A). En otras palabras, denotando con \mathbb P_R el proyector en \mathrm{Range}(A), queremos que x cumpla con Ax=\mathbb P_R b.\tag A Con esta elección de x, la distancia entre Ax y b es entonces \|b-\mathbb P_R b\|_2=\|(I-\mathbb P_R)b\|_2.

Ahora, ¿por qué entra en la discusión la descomposición en valores singulares (SVD)? Bueno, mayormente porque proporciona una forma fácil de encontrar el x que satisface (A).

Para ver esto, escribamos la SVD en notación dyádica como A=\sum_k s_k u_k v_k^*,\tag B donde s_k>0 son los valores singulares, y \{u_k\} y \{v_k\} son bases ortonormales para \mathrm{Range}(A) y A^{-1}(\mathrm{Range}(A)\setminus \{0\})=\mathrm{Ker}(A)_\perp, respectivamente. La expresión (B) es equivalente a la forma tal vez más común de ver la SVD, A=UDV^\dagger, con v_k siendo las columnas de V y u_k las columnas de U.

La pseudo-inversa A^+ tiene una buena expresión en función de su SVD: A^+=\sum_k s_k^{-1} v_k u_k^*. \tag C Con estas expresiones, puedes notar cómo A(A^+ y)=\sum_k u_k u_k^* y=\sum_k u_k\langle u_k,y\rangle=\mathbb P_R y. Ahora, recuerda que queremos acercarnos lo más posible a b, y por lo tanto estamos buscando algún y tal que A(A^+ y)=\mathbb P_R y=\mathbb P_R b. Esto nos dice que queremos que y=b, y por lo tanto x=A^+ b.

1voto

Considera la ecuación { Ax = b } donde { A \in \mathbb{R} ^{m \times n} ,} { b \in \mathbb{R} ^{m} }. El objetivo es encontrar una solución aproximada { \hat{x} \in \mathbb{R} ^{n} ,} aquella para la cual { \lVert A \hat{x} - b \rVert = \min _{x \in \mathbb{R} ^n} \lVert Ax - b \rVert}. Tal { \hat{x} } no necesita ser única. Por ejemplo, cuando { m = 1 } y { b = 0 }.

Tenemos dos enfoques, y el enfoque de SVD proporciona una solución explícita.

Sin SVD:

Elige cualquier base { \mathcal{B} = (v _1, \ldots, v _r) } de { \text{colsp}(A) }.

Una opción natural para la base es: Supongamos que la forma escalonada reducida por filas de { A } es { A ^{'} = E _k \ldots E _1 A = (A ^{'} _1, \ldots, A ^{'} _{n}) ,} con columnas pivote en posiciones { i _1 \lt \ldots \lt i _r }. Entonces { (A ^{'} _{i _1}, \ldots, A ^{'} _{i _r}) } es una base de { \text{colsp}(A^{'}) }.
Ahora { \mathscr{B} = (A _{i _1}, \ldots, A _{i _r}) } es una base de { \text{colsp}(A) }. [Ya que para cualquier matriz elemental { E }, { (M _{i _1}, \ldots, M _{i _r}) } es una base de { \text{colsp}(M) } si y solo si { (EM _{i _1}, \ldots, EM _{i _r}) } es una base de { \text{colsp}(EM) }].

Queremos un { \tilde{x} \in \mathbb{R} ^{r} } para el cual { \mathcal{B} \tilde{x} } (un punto genérico en { \text{colsp}(\mathcal{B}) = \text{colsp}(A) }) sea el más cercano a { b }. Para tal { \tilde{x} }, tenemos que { b - \mathcal{B}\tilde{x} } es ortogonal a { \text{colsp}(\mathcal{B}) }, es decir, { \mathcal{B} ^{T} (b - \mathcal{B} \tilde{x}) = 0}, es decir, { \mathcal{B} ^{T} b = \mathcal{B} ^{T} \mathcal{B} \tilde{x} ,} es decir, { \tilde{x} = (\mathcal{B} ^T \mathcal{B}) ^{-1} \mathcal{B} ^{T} b }.

Entonces diferentes elecciones de bases { \mathcal{B} } de { \text{colsp}(A) } dan diferentes puntos { \mathcal{B}\tilde{x} = \mathcal{B}(\mathcal{B} ^T \mathcal{B}) ^{-1} \mathcal{B} ^{T} b \in \text{colsp}(A) } más cercanos a { b }. (Por cierto, la invertibilidad de { \mathcal{B} ^{T} \mathcal{B} } se sigue, por ejemplo, de aquí).

Con SVD:

[Igual que la respuesta de dantopa arriba]

Considera la notación en aquí. Sustituir la SVD de { A } en { \lVert Ax - b \rVert ^2 } da { \begin{align*} \lVert A x - b \rVert ^{2} &= \left\lVert \mathscr{U} \begin{pmatrix} \Sigma _r &0 \\ 0 &0 \end{pmatrix} \mathscr{V} ^{*} x - b \right\rVert ^{2} \\ &= \left\lVert \mathscr{U} \left( \begin{pmatrix} \Sigma _r &0 \\ 0 &0 \end{pmatrix} \mathscr{V} ^{*} x - \mathscr{U} ^{*} b \right) \right\rVert ^{2} \\ &= \left\lVert \begin{pmatrix} \Sigma _r &0 \\ 0 &0 \end{pmatrix} \begin{pmatrix} \mathscr{V} _{r} ^{*} \\ \mathscr{V} _{n-r} ^{*} \end{pmatrix} x - \begin{pmatrix} \mathscr{U} _{r} ^{*} \\ \mathscr{U} _{m-r} ^{*} \end{pmatrix} b \right\rVert ^{2} \\ &= \left\lVert \Sigma _{r} \mathscr{V} _{r} ^{*} x - \mathscr{U} _{r} ^{*} b \right\rVert ^{2} + \left\lVert \mathscr{U} _{m-r} ^{*} b \right\rVert ^{2}. \end{align*} }

Los minimizadores de esta cantidad son precisamente aquellos { x } que satisfacen { \Sigma _{r} \mathscr{V} _{r} ^{*} x - \mathscr{U} _{r} ^{*} b = 0 } es decir, { \mathscr{V} _{r} ^{*} x = \Sigma _{r} ^{-1} \mathscr{U} _{r} ^{*} b. }

Nota que { x = \mathscr{V} _{r} \Sigma _{r} ^{-1} \mathscr{U} _{r} ^{*} b } es una solución particular, por lo tanto, el conjunto completo de soluciones es { \begin{align*} x &\in \mathscr{V} _{r} \Sigma _{r} ^{-1} \mathscr{U} _{r} ^{*} b + \mathcal{N}(\mathscr{V} _r ^{*}) \\ &= A ^{\dagger} b + \text{span}(\mathscr{V} _{n-r}). \end{align*} }

En particular, el conjunto de minimizadores es de dimensión { (n-r) }.

Nota que { A ^{\dagger} b = \mathscr{V} _{r} \Sigma _{r} ^{-1} \mathscr{U} _{r} ^{*} b } está en { \text{span}(\mathscr{V} _r) } y por lo tanto es ortogonal a { \text{span}(\mathscr{V} _{n-r}) }. Así que entre los minimizadores { A ^{\dagger} b + \text{span}(\mathscr{V} _{n-r}) }, el minimizador con la menor norma es { x = A ^{\dagger} b }.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X