7 votos

Cálculo del pseudoinverso de Moore-Penrose

Tengo un problema con un proyecto que requiere que calcule la pseudoinversa de Moore-Penrose. También tengo publicado sobre esto en StackOverflow, donde puedes ver mi progreso.

Por lo que entiendo de Planeta Matemático se puede calcular simplemente el pseudoinverso sólo la primera fórmula que puedo entender, pero también dice que esto es para casos generales y tienes que hacer SVD (descomposición del valor singular) y la fórmula se complica mucho ( la segunda fórmula ) que no entiendo... Quiero decir,

  1. ¿Qué es V? ¿Qué es la S? Estoy confundido.
  2. ¿Cómo puedo calcular la SVD?
  3. ¿Puede ayudarme a construir el código/algoritmo, o un simple consejo?
  4. ¿Por qué hay dos pseudofórmulas inversas?

Fórmula pseudoinversa izquierda $$A_\text{left} = (A^TA)^{-1}A^T$$ Fórmula pseudoinversa derecha $$A_\text{right}=A^T(AA^T)^{-1}$$

Muchas gracias, Daniel.

5voto

andy.holmes Puntos 518

Estas fórmulas son para diferentes formatos de la matriz rectangular $A$ .

La matriz a (pseudo)invertir debe tener rango completo. (añadido:) Si $A\in I\!\!R^{m\times n}$ es una matriz alta, $m>n$ Entonces, esto significa que $rank(A)=n$ es decir, las columnas tienen que ser linealmente independientes, o $A$ como un mapa lineal tiene que ser inyectivo. Si $A$ es una matriz amplia, $m<n$ entonces las filas de la matriz tienen que ser independientes para dar el rango completo. (/edit)

Si el rango completo es un hecho, entonces es mejor simplificar estas fórmulas utilizando una descomposición QR para $A$ resp. $A^T$ . Allí el factor R es cuadrado y $Q$ es una matriz estrecha y alta con el mismo formato que $A$ o $A^T$ ,

Si $A$ es alto, entonces $A=QR$ y $A^{\oplus}_{left}=R^{-1}Q^T$

Si $A$ es amplia, entonces $A^T=QR$ , $A=R^TQ^T$ y $A^{\oplus}_{right}=QR^{-T}$ .


Sólo necesitas una SVD si $A$ se sospecha que no tiene el rango máximo para su formato. Entonces una estimación fiable del rango sólo es posible comparando las magnitudes de los valores singulares de $A$ . La diferencia es $A^{\oplus}$ que tiene un número muy grande o un cero como valor singular donde $A$ tiene un valor singular muy pequeño.


Añadido, ya que la wikipedia no dice nada al respecto: Numéricamente, primero se calcula o se deja que una biblioteca calcule el SVD $A=U\Sigma V^T$ donde $Σ=diag(σ_1,σ_2,\dots,σ_r)$ es la matriz diagonal de valores singulares, ordenada en tamaño decreciente $σ_1\ge σ_2\ge\dots\ge σ_r$ .

Luego se estima el rango efectivo buscando el menor $k$ con, por ejemplo $σ_{k+1}<10^{-8}σ_1$ o como otra estrategia, $σ_{k+1}<10^{-2}σ_k$ o una combinación de ambos. Los factores que definen lo que es "suficientemente pequeño" son una cuestión de gusto y experiencia.

Con este rango efectivo estimado $k$ se computa $$Σ^⊕=diag(σ_1^{-1},σ_2^{-1},\dots,σ_k^{-1},0,\dots,0)$$ y $$A^⊕=VΣ^⊕U^T.$$

Obsérvese cómo los valores singulares en $Σ^⊕$ y por lo tanto $A^⊕$ son crecientes en esta forma, es decir, el truncamiento en el rango efectivo es una operación muy sensible, las diferencias en esta estimación conducen a resultados muy variables para el pseudoinverso.

4voto

Razor Puntos 723

Aunque la SVD proporciona una forma "limpia" de construir el pseudoinverso, a veces es un "exceso" en términos de eficiencia.

El pseudoinverso de Moore-Penrose puede verse como sigue: Sea $\ell:\mathbb R^n\rightarrow\mathbb R^m$ sea un mapa lineal. Entonces $\ell$ induce un isomorfismo $\ell':{\rm Ker}(\ell)^\perp\rightarrow {\rm Im}(\ell)$ . Entonces el pseudoinverso de Moore-Penrose $\ell^+:\mathbb R^m\rightarrow \mathbb R^n$ puede describirse como sigue.

$$\ell^+(x)=\ell'^{-1}(\Pi(x)),$$ donde $\Pi$ es la proyección ortogonal de $x$ en ${\rm Im}(\ell)$ .

En otras palabras, lo que se necesita es calcular las bases ortonormales de ${\rm Im}(\ell)$ y de ${\rm Ker}(\ell)^\perp$ para construir el pseudoinverso de Moore-Penrose.

Para un algoritmo, puede interesarle el método iterativo aquí

edit: a grandes rasgos, una forma de ver por qué el SVD podría ser un "exceso" es que si $A$ es una matriz con coeficientes racionales, entonces $A^+$ también tienen coeficientes racionales (véase por ejemplo este documento ), mientras que las entradas de la SVD son números algebraicos.

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