Teraz, gdy pytanie skupiło się na bardziej precyzyjnym sformułowaniu interesującego nas problemu, znalazłem rozwiązanie dla przypadku 1 (znany parametr grzbietu). Powinno to również pomóc w przypadku 2 (nie do końca rozwiązanie analityczne, ale prosta formuła i niektóre ograniczenia).
Podsumowanie: Żadna z dwóch formuł odwrotnych problemów nie ma jednoznacznej odpowiedzi. W przypadku 2 , w którym parametr grzbietu jest nieznany, istnieje nieskończenie wiele rozwiązań , dla . W przypadku 1, w którym podano , istnieje skończona liczba rozwiązań dla , ze względu na niejednoznaczność w widmie o liczbie pojedynczej.μ≡ω2μ≡ω2XωXωω∈[0,ωmax]ω∈[0,ωmax]ωωXωXω
(Wyprowadzenie jest nieco długie, więc TL, DR: na końcu jest działający kod Matlab.)
Nieokreślony przypadek („OLS”)
Problem przesyłania dalej to
gdzie , iminB‖XB−Y‖2
minB∥XB−Y∥2
X∈Rn×pX∈Rn×pB∈Rp×qB∈Rp×qY∈Rn×qY∈Rn×q .
Na podstawie zaktualizowanego pytanie, będziemy zakładać, , więc jest ustalana pod podany i . Podobnie jak w kwestii, to przyjmujemy "domyślne" (minimalna -norm) Roztwór
, gdzie jest pseudoinverse z .n<p<qn<p<qBBXXYYL2L2B=X+Y
B=X+Y
X+X+XX
Z rozkładu wartości pojedynczej ( SVD ) , podanego przez *
pseudoinwersję można obliczyć jako **
(* Pierwsze wyrażenia używają pełnego SVD, podczas gdy drugie wyrażenia używają zmniejszonego SVD. ** Dla uproszczenia zakładam, że ma pełną pozycję, tj.XXX=USVT=US0VT0
X=USVT=US0VT0
X+=VS+UT=V0S−10UTX+=VS+UT=V0S−10UT
XXS−10S−10 .)
Tak więc problem naprzód ma rozwiązanie
W przyszłości, zauważam, że , gdzieB≡X+Y=(V0S−10UT)Y
B≡X+Y=(V0S−10UT)Y
S0=diag(σ0)S0=diag(σ0)σ0>0σ0>0 to wektor wartości pojedynczych.
W odwrotnym problemem, daje nam i . Wiemy, że pochodzi z powyższego procesu, ale nie wiemy, . Następnie należy ustalić odpowiedniYYBBBBXX .
Jak zaznaczono w zaktualizowanym pytanie, w tym przypadku możemy odzyskać stosując zasadniczo takie samo podejście, tzn
teraz używając pseudoinverse z .XX0=YB+
B
Przereklamowany przypadek (estymator grzbietu)
W przypadku „OLS” niedostatecznie określony problem został rozwiązany poprzez wybranie rozwiązania o minimalnej normie , tj. Nasze „unikalne” rozwiązanie zostało domyślnie uregulowane .
Zamiast wybierać rozwiązanie normy minimalnej , tutaj wprowadzamy parametr aby kontrolować „jak małą” powinna być norma, tzn. Używamy regresji grzbietu .ω
W tym przypadku mamy serię problemów do przodu dla , , które są podane przez
Zebranie różnych wektorów po lewej i prawej stronie do
ta kolekcja problemy można sprowadzić do następującego problemu „OLS”
gdzie wprowadziliśmy rozszerzone macierze
βkk=1,…,q
minβ‖Xβ−yk‖2+ω2‖β‖2
Bω=[β1,…,βk],Y=[y1,…,yk]
minB‖XωB−Y‖2
Xω=[XωI],Y=[Y0]
W tym przereklamowanym przypadku rozwiązanie jest nadal podawane przez pseudo-odwrotność
ale pseudo-odwrotność jest teraz zmieniana, w wyniku czego *
gdzie nowa macierz „spektrum osobliwości” ma (odwrotną) przekątną **
(* Nieco obliczenia wymagane do uzyskania tego zostały pominięte ze względu na zwięzłość. Jest to podobne do opisu tutaj dla przypadku . ** Tutaj wpisy wektor jest wyrażany w kategoriach wektora , gdzie wszystkie operacje są wprowadzane).Bω=X+Y
Bω=(V0S−2ωUT)Y
σ2ω=σ20+ω2σ0
p≤nσωσ0
Teraz w tym problemie nadal możemy formalnie odzyskać „rozwiązanie podstawowe” jako
ale to już nie jest prawdziwe rozwiązanie.Xω=YB+ω
Jednak analogia nadal utrzymuje się w tym, że to „rozwiązanie” ma SVD
z pojedynczymi wartościami podanymi powyżej.Xω=US2ωVT0
σ2ω
Możemy więc wyprowadzić równanie kwadratowe dotyczące pożądanych wartości pojedynczych z do odzyskania wartościami pojedynczymi i parametrem regularyzacji . Rozwiązaniem jest zatem
σ0σ2ωωσ0=ˉσ±Δσ,ˉσ=12σ2ω,Δσ=√(ˉσ+ω)(ˉσ−ω)
Poniższe demo Matlaba (przetestowane online przez Octave ) pokazuje, że ta metoda rozwiązania wydaje się działać zarówno w praktyce, jak i teorii. Ostatni wiersz pokazuje, że wszystkie pojedyncze wartości znajdują się w rekonstrukcji , ale nie do końca ustaliłem, który root wybrać ( = vs. ). Dla zawsze będzie to root. Wydaje się, że ogólnie dotyczy to „małego” , podczas gdy dla „dużego” wydaje się, że root. (Poniższa wersja demonstracyjna jest obecnie ustawiona na „dużą” wielkość).Xˉσ±Δσsgn
+−ω=0+ωω−
% 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?
Nie mogę powiedzieć, jak solidne jest to rozwiązanie, ponieważ odwrotne problemy są na ogół źle postawione, a rozwiązania analityczne mogą być bardzo kruche. Jednak pobieżne eksperymenty zanieczyszczające szumem Gaussa (tj. Mają pełną rangę porównaniu ze zmniejszoną rangą ) wydają się wskazywać, że metoda jest właściwie zachowana.Bpn
Co do problemu 2 (tj nieznany), powyżej daje przynajmniej górna granica w . Aby kwadratowy dyskryminator był nieujemny, musimy mieć
ωωω≤ωmax=ˉσn=min[12σ2ω]
W przypadku dwuznaczności znaku kwadratowego-root poniższy fragment kodu pokazuje, że niezależnie od znaku każdy da to samo rozwiązanie grzbietu przód , nawet jeśli różni się od .ˆXBσ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