Maintenant que la question a convergé vers une formulation plus précise du problème d'intérêt, j'ai trouvé une solution pour le cas 1 (paramètre de crête connu). Cela devrait également aider pour le cas 2 (pas exactement une solution analytique, mais une formule simple et quelques contraintes).
Résumé: Aucune des deux formulations de problèmes inverses n'a de réponse unique. Dans le cas 2 , où le paramètre de crête est inconnu, il existe une infinité de solutions , pour . Dans le cas 1, où est donné, il existe un nombre fini de solutions pour , en raison de l'ambiguïté dans le spectre de valeurs singulières.X ω ω ∈ [ 0 , ω max ] ω X ωμ≡ω2Xωω∈[0,ωmax]ωXω
(La dérivation est un peu longue, donc TL, DR: il y a un code Matlab fonctionnel à la fin.)
Cas sous-déterminé («OLS»)
Le problème suivant est
où , et . X∈ R n × p B∈ R p × q Y∈ R n × q
minB∥XB−Y∥2
X∈Rn×pB∈Rp×qY∈Rn×q
Sur la base de la question mise à jour, nous supposons , alors est sous déterminée donnée et . Comme dans la question, nous supposerons le "défaut" (minimumB X Y L 2 B = X + Y X + Xn<p<qBXYL2 solution -norme)
où est la pseudo - de .
B=X+Y
X+X
De la décomposition en valeurs singulières ( SVD ) deX = U S V T = U S 0 V T 0 X + = V S + U T = V 0 S - 1 0 U T X S - 1 0X , donnée par *
le pseudoinverse peut être calculé comme **
(* Les premières expressions utilisent le SVD complet, tandis que les secondes expressions utilisent le SVD réduit. ** Pour plus de simplicité, je suppose que a un rang complet, c'est-à-dire que existe.)
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
XS- 10
Donc, le problème avancé a la solution
Pour référence future, je note que , où est le vecteur de valeurs singulières.S 0 = d i a g ( σ 0 ) σ 0 > 0
B ≡ X+Oui= ( V0S- 10UT) O
S0= d i a g ( σ0)σ0> 0
Dans le problème inverse, on nous donne etB B X XOuiB . Nous savons que est venu du processus ci - dessus, mais nous ne savons pas . La tâche consiste alors à déterminer le approprié .BXX
Comme indiqué dans la question mise à jour, dans ce cas, nous pouvons récupérer X 0 = Y B + BX en utilisant essentiellement la même approche, à savoir
en
utilisant maintenant la pseudo de .
X0= YB+
B
Cas surdéterminé (estimateur Ridge)
Dans le cas "OLS", le problème sous-déterminé a été résolu en choisissant la solution de norme minimale , c'est-à-dire que notre solution "unique" a été implicitement régularisée .
Plutôt que de choisir le solution de norme minimale , nous introduisons ici un paramètre pour contrôler "la taille" de la norme, c'est-à-dire que nous utilisons la régression de crête .ω
Dans ce cas, nous avons une série de problèmes de pour , , qui sont donnés par
Collecte des différents vecteurs gauche et droit dans
cette collection de les problèmes peuvent être réduits au problème "OLS" suivant
où nous avons introduit les matrices augmentées
k = 1 , … , q min β ‖ X β - y k ‖ 2 + ω 2 ‖ β ‖ 2 B ω = [ β 1 , … , β k ]βkk = 1 , … , q
minβ∥ Xβ- yk∥2+ ω2∥ β∥2
min B ‖ X ω B - Y ‖ 2 X ω = [ X ω I ]Bω= [ β1, … , Βk],Oui= [ y1, … , Yk]
minB∥ XωB - Y ∥2
Xω= [ XωI],Y=[Y0]
Dans ce cas surdéterminé, la solution est toujours donnée par le pseudo-inverse
mais le pseudo-inverse est maintenant changé, résultant en *
où la nouvelle matrice "spectre de singularité" a une diagonale (inverse) **
(* Le calcul quelque peu compliqué requis pour dériver ceci a été omis par souci de concision. Il est similaire à l'exposé ici pour leB ω = ( V 0 S - 2 ω U T ) Y σ 2 ω = σ 2 0 + ω 2
Bω=X+Y
Bω=(V0S−2ωUT)Y
p≤nσωσ0σ2ω=σ20+ω2σ0
p≤n . ** Ici les entrées du vecteur est exprimé en termes de vecteur , où toutes les opérations sont en entrée.)
σωσ0
Maintenant, dans ce problème, nous pouvons toujours récupérer formellement une "solution de base" comme
mais ce n'est plus une vraie solution.
Xω=YB+ω
Cependant, l'analogie tient toujours dans le fait que cette "solution" a SVD
σ 2 ω
Xω=US2ωVT0
avec les valeurs singulières données ci-dessus.
σ2ω
Nous pouvons donc dériver une équation quadratique reliant les valeurs singulières souhaitées aux valeurs singulières récupérables et le paramètre de régularisationσ 2 ω ω σ 0 = ˉ σ ± Δ σσ0σ2ωω . La solution est alors
σ0=σ¯±Δσ,σ¯=12σ2ω,Δσ=(σ¯+ω)(σ¯−ω)−−−−−−−−−−−−√
La démonstration de Matlab ci-dessous (testée en ligne via Octave ) montre que cette méthode de solution semble fonctionner aussi bien en théorie qu'en théorie. La dernière ligne montre que toutes les valeurs singulières de sont dans la reconstruction , mais je n'ai pas complètement compris quelle racine prendre ( = vs ). Pour ce sera toujours la racine . Cela semble généralement tenir pour « petit » , alors que pour « grand » laˉ σ ± Δ σ + - ω = 0 + ω ω -Xσ¯±Δσsgn
+−ω=0+ωω− racine semble prendre le dessus. (La démo ci-dessous est actuellement réglée sur un "grand" cas.)
% Matlab demo of "Reverse Ridge Regression"
n = 3; p = 5; q = 8; w = 1*sqrt(1e+1); sgn = -1;
Y = rand(n,q); X = rand(n,p);
I = eye(p); Z = zeros(p,q);
err = @(a,b)norm(a(:)-b(:),Inf);
B = pinv([X;w*I])*[Y;Z];
Xhat0 = Y*pinv(B);
dBres0 = err( pinv([Xhat0;w*I])*[Y;Z] , B )
[Uw,Sw2,Vw0] = svd(Xhat0, 'econ');
sw2 = diag(Sw2); s0mid = sw2/2;
ds0 = sqrt(max( 0 , s0mid.^2 - w^2 ));
s0 = s0mid + sgn * ds0;
Xhat = Uw*diag(s0)*Vw0';
dBres = err( pinv([Xhat;w*I])*[Y;Z] , B )
dXerr = err( Xhat , X )
sigX = svd(X)', sigHat = [s0mid+ds0,s0mid-ds0]' % all there, but which sign?
Je ne peux pas dire à quel point cette solution est robuste , car les problèmes inverses sont généralement mal posés et les solutions analytiques peuvent être très fragiles. Cependant, des expériences superficielles polluant avec du bruit gaussien (c'est-à-dire qu'il a donc un rang complet rapport à un rang réduit ) semblent indiquer que la méthode se comporte raisonnablement bien.p nBpn
Quant au problème 2 (ie inconnu), ce qui précède donne au moins une limite supérieure sur . Pour que le discriminant quadratique soit non négatif, nous devons avoir
ω ω ≤ ω max = ˉ σ n = min [ 1ωω
ω≤ωmax=σ¯n=min[12σ2ω]
Pour l'ambiguïté du signe racine quadratique, l'extrait de code suivant montre que, indépendamment du signe, tout donnera la même solution de crête avant , même lorsque diffère de .X^Bσ0SVD[X]
Xrnd=Uw*diag(s0mid+sign(randn(n,1)).*ds0)*Vw0'; % random signs
dBrnd=err(pinv([Xrnd;w*I])*[Y;Z],B) % B is always consistent ...
dXrnd=err(Xrnd,X) % ... even when X is not