Betrachten wir ein Standard OLS Regressionsproblem : Ich habe Matrizen und und ich möchte \ B finden, um L = \ | \ Y- \ X \ B \ | ^ 2 zu minimieren . Die Lösung ist gegeben durch \ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Y.X
Ich kann auch ein "umgekehrtes" Problem aufwerfen: Wenn \ und , finde , das , dh minimiere . In Worten, ich habe die Antwortmatrix und den Koeffizientenvektor und ich möchte die Prädiktormatrix finden, die Koeffizienten in der Nähe von . Dies ist natürlich auch ein OLS-Regressionsproblem mit der Lösung
Klarstellungsaktualisierung: Wie in seiner Antwort unter @ GeoMatt22 erläutert, ist ein Vektor (dh, wenn es nur eine Antwortvariable gibt), dann hat den ersten Rang, und das umgekehrte Problem ist massiv unterbestimmt. In meinem Fall ist tatsächlich eine Matrix (dh es gibt viele Antwortvariablen, es ist eine multivariate Regression). So ist , ist und ist .
Ich bin daran interessiert, ein "umgekehrtes" Problem für die Gratregression zu lösen. Nämlich, meine Verlustfunktion ist jetzt
Das "umgekehrte" Problem besteht darin,
Wieder habe ich eine Antwortmatrix und einen Koeffizientenvektor und ich möchte eine Prädiktormatrix finden, die Koeffizienten nahe bei \ B ^ * ergibt .
Tatsächlich gibt es zwei verwandte Formulierungen:
- Find gegeben und und .
- Finden Sie und gegeben und .
Hat einer von ihnen eine direkte Lösung?
Hier ist ein kurzer Matlab-Auszug, um das Problem zu veranschaulichen:
% generate some data
n = 10; % number of samples
p = 20; % number of predictors
q = 30; % number of responses
Y = rand(n,q);
X = rand(n,p);
mu = 0;
I = eye(p);
% solve the forward problem: find beta given y,X,mu
betahat = pinv(X'*X + mu*I) * X'*Y;
% backward problem: find X given y,beta,mu
% this formula works correctly only when mu=0
Xhat = Y*betahat'*pinv(betahat*betahat');
% verify if Xhat indeed yields betahat
betahathat = pinv(Xhat'*Xhat + mu*I)*Xhat'*Y;
max(abs(betahathat(:) - betahat(:)))
Dieser Code gibt Null aus, wenn mu=0
nicht anders.
quelle
Antworten:
Nachdem sich die Frage auf eine genauere Formulierung des interessierenden Problems konzentriert hat, habe ich eine Lösung für Fall 1 (bekannter Kammparameter) gefunden. Dies sollte auch für Fall 2 hilfreich sein (keine exakte analytische Lösung, sondern eine einfache Formel und einige Einschränkungen).
(Die Ableitung ist etwas langwierig, also TL, DR: Am Ende befindet sich ein funktionierender Matlab-Code.)
Unterbestimmter Fall ("OLS")
Das Vorwärtsproblem ist wobei , und .
Basierend auf der aktualisierten Frage nehmen wir an, dass , so dass bei und . Wie in der Frage wird die "Standard" (Minimum ) wobei die Pseudoinverse von .n<p<q B X Y L2
Aus der Singularwertzerlegung ( SVD ) von , gegeben durch * die Pseudoinverse berechnet werden als ** (* Die ersten Ausdrücke verwenden die vollständige SVD, während die zweiten Ausdrücke die reduzierte SVD verwenden. ** Der Einfachheit halber gehe ich davon aus, dass den vollen Rang hat, dh existiert.)X
So ist die Vorwärts-Problem hat Lösung Für die Zukunft stelle ich fest , dass , wo ist der Vektor der Singularwerte.
Bei dem inversen Problem werden wir gegeben und . Wir wissen, dass aus dem obigen Prozess stammt, aber wir kennen . Die Aufgabe besteht dann darin, das entsprechende zu bestimmen .Y B B X X
Wie in der aktualisierten Frage erwähnt, in diesem Fall können wir erholen im Wesentlichen mit dem gleichen Ansatz, dh jetzt der Pseudo - Inverse der Verwendung .X
Überbestimmter Fall (Ridge Estimator)
Im "OLS" -Fall wurde das unterbestimmte Problem durch die Wahl der Minimum-Norm-Lösung gelöst , dh unsere "einzigartige" Lösung wurde implizit geregelt .
Anstatt die minimale Normlösung zu wählen , führen wir hier einen Parameter zu steuern, "wie klein" die Norm sein soll, dh wir verwenden die Kammregression .ω
In diesem Fall haben wir eine Reihe von Vorwärtsproblemen für , , die durch Sammeln der verschiedenen Vektoren der linken und rechten Seite in diese Sammlung von Probleme können auf das folgende "OLS" -Problem bei dem wir die erweiterten Matrizenβk k=1,…,q
In diesem überbestimmten Fall wird die Lösung immer noch durch das pseudoinverse aber das pseudoinverse wird jetzt geändert, was zu * wobei die neue Matrix "Singularitätsspektrum" eine (inverse) Diagonale ** (* Die etwas Berechnung, die erforderlich ist, um dies abzuleiten, wurde der Kürze halber weggelassen. Sie ähnelt der Darstellung hier für den Fall . ** Hier die Einträge des Vektor werden als Vektor , bei dem alle Operationen sind.)
Jetzt können wir in diesem Problem noch formal eine "Basislösung" als aber dies ist keine echte Lösung mehr.
Die Analogie gilt jedoch immer noch, dass diese "Lösung" SVD mit den oben angegebenen singulären Werten .
Wir können also eine quadratische Gleichung ableiten, die die gewünschten Singularwerte mit den wiederherstellbaren Singularwerten und dem Regularisierungsparameter . Die Lösung wird dannσ0 σ2ω ω
Die folgende Matlab-Demo (online über Octave getestet ) zeigt, dass diese Lösungsmethode sowohl in der Praxis als auch in der Theorie funktioniert. Die letzte Zeile zeigt, dass alle singulären Werte von in der Rekonstruktion , aber ich habe nicht vollständig herausgefunden, welche Wurzel ich nehmen soll ( = vs. ). Bei dies immer die Wurzel . Diese Regel scheint für „klein“ zu halten , während für „große“ der Wurzel scheint zu übernehmen. (Demo unten ist derzeit auf "Groß" eingestellt.)X σ¯±Δσ + − ω=0 + ω ω −
sgn
Ich kann nicht sagen, wie robust diese Lösung ist, da inverse Probleme im Allgemeinen schlecht gestellt sind und analytische Lösungen sehr fragil sein können. Allerdings scheinen flüchtige Experimente, die mit Gaußschem Rauschen belasten (dh es hat den vollen Rang gegenüber dem reduzierten Rang ), darauf hinzudeuten, dass sich die Methode angemessen verhält.B p n
Für Problem 2 (dh unbekannt) gibt das Obige mindestens eine Obergrenze für . Damit die quadratische Diskriminante nicht negativ ist, mussω ω
Für die Mehrdeutigkeit des quadratischen Wurzelzeichens zeigt der folgende Codeausschnitt, dass unabhängig vom Vorzeichen jedes dieselbe Vorwärts- Grat-Lösung ergibt, auch wenn von abweicht .X^ B σ0 SVD[X]
quelle
pinv
ist keine gute Sache, stimmst du zu?