질문이 관심있는 문제의보다 정확한 공식에 수렴되었으므로 사례 1 (알려진 능선 매개 변수)에 대한 해결책을 찾았습니다. 이는 사례 2 (분석 솔루션이 아니라 간단한 공식 및 일부 제약 조건)에도 도움이됩니다.
요약 : 두 가지 역 문제 공식 중 어느 것도 독특한 답이 없습니다. 에서는 케이스 (2) 여기서, 릿지 파라미터 , 무한히 많은 솔루션이있다 알려지지 X ω 에 대한, ω는 ∈ [ 0 , ω 최대 ] . ω 가 주어진 경우 1의 경우 , 특이 값 스펙트럼의 모호성으로 인해 X ω에 대해 유한 한 수의 솔루션이 있습니다.μ≡ω2Xωω∈[0,ωmax]ωXω
(파생은 약간 길기 때문에 TL, DR : 끝에 작동하는 Matlab 코드가 있습니다.)
불충분 한 사례 ( "OLS")
순방향 문제는
이며 여기서 X ∈ R n × p , B ∈ R p x q 및 Y ∈ R n x q 입니다.
minB∥XB−Y∥2
X∈Rn×pB∈Rp×qY∈Rn×q
업데이트 된 질문에 기초하여, 우리는 가정 하므로, B 는 X 와 Y가 주어질 때 결정 됩니다. 질문에, 우리는 "기본"(최소 가정합니다 L 2 -norm) 솔루션
B = X + Y X +하기 는 IS 의사 - 역행렬 의 X를 .n<p<qBXYL2
B=X+Y
X+X
X 의 특이 값 분해 ( SVD ) 로부터 * X = U S V T = U S 0 V T 0에 의해 주어집니다
. 의사 역수는 ** X + = V S + U T = V 0 S - 1 0 으로 계산 될 수 있습니다.
U T
(* 첫 번째 표현식은 전체 SVD를 사용하는 반면 두 번째 표현식은 축소 된 SVD를 사용합니다. ** 간단하게하기 위해 X 에 전체 순위가 있다고 가정 합니다. 즉, S - 1 0 이 존재합니다.)X
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
XS−10
앞으로의 문제는 해를
구합니다
나중에 참조 할 수 있도록 S 0 = d i a g ( σ 0 )입니다 . 여기서 σ 0 > 0 은 벡터입니다 특이 값.
B≡X+Y=(V0S−10UT)Y
S0=diag(σ0)σ0>0
역의 문제에서 우리는 와 B를 받습니다. 우리는 B 가 위의 과정에서 나온 것을 알고 있지만 X 는 모른다 . 작업은 적절한 X 를 결정하는 것 입니다.YBBXX
X
X0=YB+
B
과도하게 결정된 사례 (Ridge Estimator)
"OLS"의 경우, 최소 표준 솔루션 을 선택하여 결정된 문제를 해결했습니다 . 즉, "고유 한"솔루션은 암시 적으로 정규화되었습니다 .
ω
β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]
Bω=X+Y
Bω=(V0S−2ωUT)Y
σ2ω=σ20+ω2σ0
p≤nσωσ0
Xω=YB+ω
Xω=US2ωVT0
σ2ω
σ0σ2ωω
σ0=σ¯±Δσ,σ¯=12σ2ω,Δσ=(σ¯+ω)(σ¯−ω)−−−−−−−−−−−−√
The Matlab demo below (tested online via Octave) shows that this solution method appears to work in practice as well as theory. The last line shows that all the singular values of X are in the reconstruction σ¯±Δσ, but I have not completely figured out which root to take (sgn
= + vs. −). For ω=0 it will always be the + root. This generally seems to hold for "small" ω, whereas for "large" ω the − root seems to take over. (Demo below is set to "large" case currently.)
% 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?
I cannot say how robust this solution is, as inverse problems are generally ill-posed, and analytical solutions can be very fragile. However cursory experiments polluting B with Gaussian noise (i.e. so it has full rank p vs. reduced rank n) seem to indicate the method is reasonably well behaved.
As for problem 2 (i.e. ω unknown), the above gives at least an upper bound on ω. For the quadratic discriminant to be non-negative we must have
ω≤ωmax=σ¯n=min[12σ2ω]
For the quadratic-root sign ambiguity, the following code snippet shows that independent of sign, any X^ will give the same forward B ridge-solution, even when σ0 differs from SVD[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