Sekarang pertanyaannya telah menyatu pada rumusan masalah bunga yang lebih tepat, saya telah menemukan solusi untuk kasus 1 (parameter ridge dikenal). Ini juga harus membantu untuk kasus 2 (bukan solusi analitis tepat, tetapi formula sederhana dan beberapa kendala).
Ringkasan: Tak satu pun dari dua formulasi masalah terbalik memiliki jawaban yang unik. Dalam kasus 2 , di mana parameter ridge tidak diketahui, ada banyak solusi X ω , untuk ω ∈ [ 0μ≡ω2Xω . Dalam kasus 1, di mana ω diberikan, ada sejumlah solusi terbatas untuk X ω , karena ambiguitas dalam spektrum nilai singular.ω∈[0,ωmax]ωXω
(Derivasinya agak panjang, jadi TL, DR: ada kode Matlab yang berfungsi di akhir.)
Kasus yang Tidak Ditentukan ("OLS")
Masalah ke depan adalah
mana X ∈ R n × p , B ∈ R p ×
minB∥XB−Y∥2
X∈Rn×p , dan
Y∈ R n × qB∈Rp×qY∈Rn×q .
Berdasarkan pertanyaan diperbarui, kami akan menganggap , sehingga B berada di bawah ditentukan diberikan X dan Y . Seperti dalam pertanyaan, kita akan mengasumsikan solusi "default" (minimum L 2 -norm)
B = X + Y di
mana X + adalah pseudoinverse dari Xn<p<qBXYL2
B=X+Y
X+X .
Dari dekomposisi nilai singular ( SVD ) , diberikan oleh *
X = U S V T = U S 0 V T 0
pseudoinverse dapat dihitung sebagai **
X + = V S + U T = V 0 S - 1 0 U T
(* Ekspresi pertama menggunakan SVD lengkap, sedangkan ekspresi kedua menggunakan SVD tereduksi. ** Untuk kesederhanaan saya menganggap X memiliki peringkat penuh, yaitu S - 1 0 ada.)X
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
XS−10
Jadi masalah ke depan memiliki solusi
Untuk referensi di masa mendatang, saya perhatikan bahwa S 0 = d i a g (
B≡X+Y=(V0S−10UT)Y
, di mana
σ 0 > 0 adalah vektor nilai-nilai singular.
S0=diag(σ0)σ0>0
Dalam masalah terbalik, kita diberi dan BYB . Kita tahu bahwa berasal dari proses di atas, tapi kita tidak tahu X . Tugasnya adalah menentukan X yang sesuai .BXX
Seperti dicatat dalam pertanyaan yang diperbarui, dalam hal ini kita dapat memulihkan menggunakan dasarnya pendekatan yang sama, yaitu
XX
sekarang menggunakan pseudoinverse dari B .
X0=YB+
B
Over-ditentukan Case (Penaksir Ridge)
Dalam kasus "OLS", masalah yang belum ditentukan diselesaikan dengan memilih solusi norma minimum , yaitu solusi "unik" kami diatur secara implisit .
Daripada memilih solusi norma minimum , di sini kami memperkenalkan parameter untuk mengontrol "seberapa kecil" norma tersebut, yaitu kami menggunakan regresi ridge .ω
Dalam hal ini, kami memiliki serangkaian masalah ke depan untuk , k = 1 , ... , q , yang diberikan oleh min β ‖ X β - y k ‖ 2 + ω 2 ‖ β ‖ 2
Mengumpulkan kiri dan kanan yang berbeda vektor sisi tangan ke
B ω = [ β 1 , … , β k ]βkk=1,…,q
minβ∥Xβ−yk∥2+ω2∥β∥2
koleksi ini masalah dapat dikurangi dengan "OLS" berikut masalah
min B ‖ X ω B - Y ‖ 2
di mana kami telah memperkenalkan matriks augmented
X ω = [ X ω sayaBω=[β1,…,βk],Y=[y1,…,yk]
minB∥XωB−Y∥2
Xω=[XωI],Y=[Y0]
Dalam kasus yang ditentukan berlebihan ini, solusinya masih diberikan oleh pseudo-invers
tetapi pseudo-invers sekarang berubah, menghasilkan *
B ω = ( V 0 S - 2 ω U T ) Y di
mana matriks "singularitas spektrum" yang baru memiliki (terbalik) diagonal **
σ 2 ω = σ 2 0
Bω=X+Y
Bω=(V0S−2ωUT)Y
(* Perhitungan agak terlibat yang diperlukan untuk menurunkan ini telah dihilangkan demi singkatnya. Ini mirip dengan penjelasan di
siniuntuk kasus
p≤n. ** Di sini entri darivektor
σωdiekspresikan dalam bentuk yang
σ0σ2ω=σ20+ω2σ0
p≤nσωσ0 vektor, di mana semua operasi entry-bijaksana.)
Sekarang dalam masalah ini kita masih dapat secara resmi memulihkan "solusi dasar" seperti
Xω=YB+ω
tetapi ini bukan solusi yang benar lagi.
Namun, analoginya masih berpendapat bahwa "solusi" ini memiliki SVD
dengan nilai singular σ 2 ω
Xω=US2ωVT0
σ2ω diberikan di atas.
σ0σ2ωω
σ0=σ¯±Δσ,σ¯=12σ2ω,Δσ=(σ¯+ω)(σ¯−ω)−−−−−−−−−−−−√
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?
Bpn
ωω
ω≤ωmax=σ¯n=min[12σ2ω]
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