Estoy resolviendo un sistema usando la descomposición de valores singulares. Los valores singulares (antes de escalar) son:
1.82277e+29
1.95011e+27
1.15033e+23
1.45291e+21
4.79336e+17
7.48116e+15
8.31087e+12
1.71838e+11
5.63232e+08
2.17863e+08
9.02783e+07
1.72345e+07
1.73889e+05
8.09382e+02
2.16644e+00
He descubierto que aceptar todos los valores singulares y su contribución asociada a mi vector de solución produce malos resultados. Los escalo por el número más grande, produciendo valores singulares de:
1.0
1.06986e-02
6.31091e-07
7.97089e-09
2.62971e-12
4.10428e-14
4.55948e-17
9.42732e-19
3.08998e-21
1.19523e-21
4.95281e-22
9.45510e-23
9.53980e-25
4.44040e-27
1.18854e-29
La mejor solución solo comienza a ser mala si incluyo los dos últimos, y solo se vuelve buena alrededor del término .
Hay una fuerte caída en la precisión cuando incluyo los últimos 2 términos. ¿Porqué es eso? ¿Cuáles son los criterios para incluir / no incluir valores singulares?
Mi ecuación matricial proviene de un ajuste lineal de mínimos cuadrados donde estoy usando un conjunto de bases polinómicas para ajustar algunos datos ruidosos que creé. Estoy resolviendo el sistema sobredeterminado estándar ( matrix donde ) multiplicando cada lado ( ) por la transposición de ( ) y realizando SVD en eso.m ≫ n A ⋅ X = B A A ⊤ A X = A ⊤ X
Estoy juzgando las respuestas a mis soluciones por lo bien que se aproxima a mis datos ruidosos.
También he notado que, incluso en los ajustes "buenos", no estoy ajustando muy bien cerca de cero (mis datos oscilan entre y ). ¿Porqué es eso?10
fuente
Respuestas:
Dicho esto, como mencionó JM, es mucho más estable evitar formar :UNAHUNA
Primero, necesitamos calcular la descomposición del valor singular luego, podemos definir el pseudoinverso a través de donde A † = V
La solución se puede calcular como
fuente
Augh !! ¡No, no , mil veces, no !
¡La razón por la que las personas usan SVD es precisamente para evitar tener que formar la matriz de productos cruzados , ya que la formación de esta matriz es una buena receta para formar sistemas lineales mal condicionados! La descomposición está destinado a ser aplicado directamente a . (Ver también algunas de mis respuestas anteriores ).AUNA⊤UNA UNA
Les he mencionado antes que el criterio habitual para poner a cero los valores singulares es compararlos con el producto del valor singular más grande y la máquina épsilon. Sin embargo, esto se vuelve discutible por su formación de la matriz de productos cruzados. Intente ejecutar la descomposición nuevamente, pero esta vez, en la matriz de diseño en lugar de la matriz de productos cruzados. Cualquier otra forma es el abuso flagrante de la descomposición.
fuente
Creo que varias personas aquí han proporcionado valiosos consejos para su problema.
Sin embargo, para referencia futura, su pregunta sobre cómo resolver un problema de mínimos cuadrados lineales mal planteados podría responderse mirando el inmenso cuerpo de literatura sobre este problema.
Específicamente, podría usar la TSVD (Descomposición de valor singular truncado) como un método simple para obtener la solución: donde es el i-ésimo valor singular, y son la ésima columna en las matrices y de la factorización , es el lado derecho de su problema, y la notación significa el complejo conjugado de las entradas y luego se convirtió en una fila vector, de modo queσiuiviUVUSVH=AbuHuHbxk
El principal problema en esta configuración, además de verse obligado a calcular el SVD que es bastante costoso, es cómo elegir el número de valores singulares que se utilizarán, es decir, . Una vez más, hay varias maneras de hacerlo, pero las más populares serían el principio de discrepancia, el método de validación cruzada generalizada y la curva en L.k
Todo esto (y mucho más) se implementa, en Matlab, en la excelente caja de herramientas Herramientas de regularización , escrita por el profesor Per Christian Hansen, quien también ha publicado varios artículos y algunos libros sobre problemas inversos. La caja de herramientas es fácil de usar y debería ser bastante fácil de traducir a otros lenguajes de programación.
En conclusión, mientras que otros han proporcionado información importante sobre su aplicación que sugiere que otros enfoques son más apropiados, lo anterior es un resumen rápido sobre cómo podría resolver el problema si aún lo necesita.
fuente