Şimdi soru, ilgilenilen sorunun daha kesin bir formülasyonuna dönüştüğüne göre, vaka 1 (bilinen sırt parametresi) için bir çözüm buldum. Bu durum vaka 2 için de yardımcı olacaktır (tam olarak analitik bir çözüm değil, basit bir formül ve bazı kısıtlamalar).
Özet: İki ters problem formülasyonunun hiçbirinin kendine özgü bir cevabı yoktur. Gelen halinde 2 , burada sırt parametresi sonsuz sayıda çözüm bulunmaktadır bilinmemektedir için . verildiği 1 durumunda , tekil değer spektrumundaki belirsizlik nedeniyle için sınırlı sayıda çözüm vardır .X ω ω ∈ [ 0 , ω maks. ] ω X ωμ≡ω2Xωω∈[0,ωmax]ωXω
(Türetme biraz uzun, bu yüzden TL, DR: sonunda çalışan bir Matlab kodu var.)
Belirsiz Durum ("OLS")
Ileri sorun
burada , ve . X∈ R n × p B∈ R p × q Y∈ R n × q
minB∥XB−Y∥2
X∈Rn×pB∈Rp×qY∈Rn×q
Güncellenmiş soruya dayanarak, olduğunu varsayacağız , bu nedenle , ve verildiğinde belirlenen altındadır . olduğu gibi , "varsayılan" (minimum norm) çözeltisi
varsayarız ;
burada , tersi tersidir .B X Y L 2 B = X + Y X + Xn<p<qBXYL2
B=X+Y
X+X
* verilen
tekil değer ayrışmasından ( SVD )
, yalancı ters ** olarak hesaplanabilir.
(* İlk ifadeler tam SVD'yi kullanırken, ikinci ifadeler azaltılmış kullanır. ** Basitlik için tam sıralamaya sahip olduğunu varsayıyorum , yani var.)X = 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
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
XS−10
Bu nedenle, ileri sorunun çözümü
Gelecekte , burada , tekil değerlerin vektörüdür.S 0 = d i , bir g ( σ 0 ) σ 0 > 0
B≡X+Y=(V0S−10UT)Y
S0=diag(σ0)σ0>0
Ters problemde bize ve verilir . yukarıdaki süreçten geldiğini biliyoruz , ancak bilmiyoruz . Görev uygun belirlemektir .B B X XYBBXX
Güncellenmiş Söz konusu belirtildiği gibi, bu durumda biz kurtarabilirsiniz esasen aynı yaklaşımı kullanarak, yani
şimdi pseudoinverse kullanılarak .X 0 = Y B + BX
X0=YB+
B
Aşırı Belirlenmiş Durum (Ridge tahmincisi)
"OLS" durumunda, az tespit edilen sorun, minimum norm çözümü seçilerek çözülmüştür , yani "benzersiz" çözümümüz dolaylı olarak düzenlenmiştir .
Minimum norm çözümünü seçmek yerine , burada normun "ne kadar küçük" olması gerektiğini kontrol etmek için parametresini sunuyoruz, yani sırt regresyonunu kullanıyoruz .ω
Bu durumda, bir var seri için ileri sorunların , tarafından verilir,
Farklı sol ve sağ taraf vektörlerini
bu koleksiyona toplama sorunlar aşağıdaki "OLS" sorununa indirgenebilir
burada artırılmış matrisleri
k = 1 , … , q dak β ‖ X β - y k ‖ 2 + ω 2 ‖ β ‖ 2 B ω = [ β 1 , … , β k ]βkk=1,…,q
minβ∥Xβ−yk∥2+ω2∥β∥2
dk B ‖ X ω B - Y ‖ 2 X ω = [ X ω I ]Bω=[β1,…,βk],Y=[y1,…,yk]
minB∥XωB−Y∥2
Xω=[XωI],Y=[Y0]
Bu aşırı belirlenmiş durumda, çözüm hala sahte ters
ancak sahte ters ters değiştirilir ve sonuçta *
Yeni "tekillik spektrumu" matrisinin (ters) köşegen olduğu
(* biraz yer hesaplaması bu kısa olması bakımından ihmal edilmiştir tasarruf sağlamaktadır. Bu maruz benzer burada için durumda. ** burada girdileri vektörü, tüm işlemlerin giriş açısından yapıldığı vektörü cinsinden ifade edilir .)B ω = ( 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σωσ0
Şimdi bu problemde resmen olarak bir "temel çözüm" kurtarabiliriz,
ancak bu artık gerçek bir çözüm değildir.
Xω=YB+ω
Bununla birlikte, benzerlik, bu "çözümün" yukarıda verilen
tekil değerlerle olan SVD
sahip olduğunu . σ 2 ω
Xω=US2ωVT0
σ2ω
Böylece istenen tekil değerleri ile geri kazanılabilir tekil değerler ve normalleştirme parametresi ile ilişkilendiren ikinci dereceden bir denklem türetebiliriz . Çözüm
σ0σ2ωω
σ0=σ¯±Δσ,σ¯=12σ2ω,Δσ=(σ¯+ω)(σ¯−ω)−−−−−−−−−−−−√
Aşağıdaki Matlab demosu ( Octave üzerinden çevrimiçi olarak test edilmiştir ), bu çözüm yönteminin teoride olduğu gibi pratikte de işe yaradığını göstermektedir. Son satır tüm tekil değerlerinin rekonstrüksiyonunda olduğunu gösterir , ancak hangi kökün alınacağını tam olarak anlamadım ( = vs. ). İçin her zaman olacaktır kökü. Bu genellikle "küçük" için , "büyük" için kök devralmış gibi görünmektedir. (Aşağıdaki demo şu anda "büyük" vaka olarak ayarlanmış.)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?
Ters problemler genellikle kötü olduğu ve analitik çözümler çok kırılgan olabileceğinden, bu çözümün ne kadar sağlam olduğunu söyleyemem . Bununla birlikte, Gauss gürültüsü ile kirleten üstünkörü deneyler (yani tam rütbe karşı düşük rütbe ), yöntemin makul şekilde iyi davrandığını göstermektedir.Bpn
Problem 2'ye gelince (yani bilinmiyor), yukarıda üzerinde en azından bir üst sınır verilmiştir . İkinci dereceden ayrımcıların negatif olmaması için
ωω
ω≤ωmax=σ¯n=min[12σ2ω]
İkinci dereceden kök işareti belirsizliği için, aşağıdaki kod snippet'i, işaretten bağımsız olarak, dan farklı olsa bile , herhangi bir ın aynı ileri sırt çözümünü gösterir .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