Bây giờ câu hỏi đã hội tụ về một công thức chính xác hơn về vấn đề quan tâm, tôi đã tìm ra giải pháp cho trường hợp 1 (tham số sườn núi đã biết). Điều này cũng sẽ giúp cho trường hợp 2 (không phải là một giải pháp phân tích chính xác, mà là một công thức đơn giản và một số ràng buộc).
Tóm tắt: Cả hai công thức bài toán ngược có một câu trả lời duy nhất. Trong trường hợp 2 , không xác định được tham số sườn núi , có vô số giải pháp , cho . Trong trường hợp 1, trong đó được đưa ra, có một số lượng hữu hạn các giải pháp cho , do sự mơ hồ trong phổ giá trị số ít.μ≡ω2Xωω∈[0,ωmax]ωXω
(Đạo hàm hơi dài, do đó, TL, DR: có mã Matlab hoạt động ở cuối.)
Trường hợp chưa được xác định ("OLS")
Vấn đề chuyển tiếp là
trong đó , và .
minB∥XB−Y∥2
X∈Rn×pB∈Rp×qY∈Rn×q
Dựa trên câu hỏi được cập nhật, chúng tôi sẽ đảm nhận , vì vậy đang được xác định cho và . Như trong câu hỏi, chúng tôi sẽ đảm nhận "mặc định" (tối thiểu -norm) giải pháp
nơi là pseudoinverse của .n<p<qBXYL2
B=X+Y
X+X
Từ phân tách giá trị số ít ( SVD ) của , được đưa ra bởi *
có thể được tính là **
(* Các biểu thức đầu tiên sử dụng SVD đầy đủ, trong khi các biểu thức thứ hai sử dụng SVD giảm. ** Để đơn giản, tôi giả sử có thứ hạng đầy đủ, tức là tồn tại.)X
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
XS−10
Vì vậy, bài toán chuyển tiếp có giải pháp
Để tham khảo trong tương lai, tôi lưu ý rằng , trong đó là vectơ của các giá trị số ít.
B≡X+Y=(V0S−10UT)Y
S0=diag(σ0)σ0>0
Trong vấn đề nghịch đảo, chúng tôi được cho và . Chúng ta biết rằng xuất phát từ quá trình trên, nhưng chúng ta không biết . Nhiệm vụ sau đó là xác định thích hợp .YBBXX
Như đã đề cập trong câu hỏi được cập nhật, trong trường hợp này chúng ta có thể khôi phục lại sử dụng chủ yếu là phương pháp tương tự, tức là
tại bằng cách sử dụng pseudoinverse của .X
X0=YB+
B
Trường hợp quá xác định (Công cụ ước tính)
Trong trường hợp "OLS", vấn đề chưa được xác định đã được giải quyết bằng cách chọn giải pháp định mức tối thiểu , tức là giải pháp "duy nhất" của chúng tôi được ngầm định hóa .
Thay vì chọn giải pháp định mức tối thiểu , ở đây chúng tôi giới thiệu một tham số để kiểm soát định mức "nhỏ" như thế nào, tức là chúng tôi sử dụng hồi quy sườn .ω
Trong trường hợp này, chúng tôi có một loạt các sự cố chuyển tiếp cho , , được đưa ra bởi
Thu thập các vectơ bên trái và bên phải khác nhau vào
bộ sưu tập này của các vấn đề có thể được giảm xuống thành vấn đề "OLS" sau đây
trong đó chúng tôi đã giới thiệu các ma trận tăng cường
β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]
Trong trường hợp được xác định quá mức này, giải pháp vẫn được đưa ra bởi giả nghịch đảo
nhưng nghịch đảo giả giờ đã thay đổi, dẫn đến *
trong đó ma trận "phổ số ít" mới có đường chéo **
(* Tính toán có liên quan cần thiết để rút ra điều này đã bị bỏ qua vì lý do ngắn gọn. Nó tương tự như giải trình ở đây cho trường hợp . ** Ở đây các mục của vectơ được biểu thị dưới dạng vectơ , trong đó tất cả các thao tác là nhập cảnh.)
Bω=X+Y
Bω=(V0S−2ωUT)Y
σ2ω=σ20+ω2σ0
p≤nσωσ0
Bây giờ trong vấn đề này, chúng tôi vẫn có thể chính thức khôi phục một "giải pháp cơ bản" là
nhưng đây không còn là một giải pháp thực sự nữa.
Xω=YB+ω
Tuy nhiên, sự tương tự vẫn cho rằng "giải pháp" này có SVD
với các giá trị số ít được đưa ra ở trên.
Xω=US2ωVT0
σ2ω
Vì vậy, chúng ta có thể rút ra một phương trình bậc hai liên quan đến các giá trị số ít mong muốn với các giá trị số ít có thể phục hồi và tham số chính quy . Giải pháp sau đó là
σ0σ2ωω
σ0=σ¯±Δσ,σ¯=12σ2ω,Δσ=(σ¯+ω)(σ¯−ω)−−−−−−−−−−−−√
Bản demo Matlab dưới đây (được thử nghiệm trực tuyến qua Octave ) cho thấy phương pháp giải pháp này dường như hoạt động trong thực tế cũng như lý thuyết. Dòng cuối cùng cho thấy rằng tất cả các giá trị số ít của nằm trong cấu trúc lại , nhưng tôi chưa hoàn toàn tìm ra gốc nào sẽ lấy ( = vs. ). Với nó sẽ luôn là gốc . Điều này thường dường như để giữ cho "nhỏ" , trong khi cho "lớn" sự gốc dường như để tiếp nhận. (Hiện tại bản demo được đặt thành trường hợp "lớn".)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?
Tôi không thể nói giải pháp này mạnh đến mức nào , vì các vấn đề nghịch đảo thường không được đặt ra và các giải pháp phân tích có thể rất mong manh. Tuy nhiên, các thí nghiệm chữ thảo gây ô nhiễm với nhiễu Gaussian (nghĩa là nó có thứ hạng đầy đủ so với thứ hạng giảm ) dường như cho thấy phương pháp này được xử lý hợp lý.Bpn
Đối với vấn đề 2 (tức là chưa biết), phần trên cung cấp ít nhất một giới hạn trên cho . Để phân biệt đối xử bậc hai không âm, chúng ta phải có
ωω
ω≤ωmax=σ¯n=min[12σ2ω]
Đối với sự không rõ ràng của dấu hiệu bậc hai, đoạn mã sau đây cho thấy rằng độc lập với dấu hiệu, mọi sẽ cung cấp cùng một giải pháp sườn núi , ngay cả khi khác với .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