You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here is my matlab code, cvx objective function has two regularization parameters tau1 and tau2. I need to set appropriate tau1 and tau2 values to make re1 and re2 small enough (minimum would be best). I have tried many, many values, including using the for loop, but still can't get the best re1 and re2 results. Is there another way (e.g. intelligent algorithms) to find the right parameters? Thank you very much!
clc;clear
n = 128;
m = 64;
i_s = floor(m*0.05);
i_c = i_s;
x0 = zeros(n,1);
x10_spt = randperm(n);
x0(x10_spt(1:i_c)) = randn(i_c,1);
v0 = zeros(m,1);
v0_spt = randperm(m);
v0(v0_spt(1:i_c)) = randn(i_c,1);
Phi = 1/sqrt(m) * randn(m,n);
data = real(Phi * x0);
N = 200;
p = (1+data)/2;
s0 = rand(numel(data),N);
P = repmat(p,1,N);
s = P > s0;
s1 = sum(s,2);
s2 = s1/N;
edata = 2*s2-1;
y = edata + v0 ;
% these two parameters I need to tune, I have tried for loop, but can't get
% good results of re1 and re2
tau1=0.01;
tau2=0.01;
% Recovery via CVX
cvx_begin quiet
variable x(n) ;
variable v(m);
minimize 0.5*pow_pos(norm(y - Phi * x - v),2) + tau1 * norm(x,1) + tau2 * norm(v,1);
cvx_end
re1 = norm(x - x0, 2)/ norm(x0, 2)
re2 = norm(v - v0, 2)/ norm(v0, 2)
% how to find the optimal tau1 and tau2,then re1 and re2 are minimum respectively
The text was updated successfully, but these errors were encountered:
Here is my matlab code, cvx objective function has two regularization parameters tau1 and tau2. I need to set appropriate tau1 and tau2 values to make re1 and re2 small enough (minimum would be best). I have tried many, many values, including using the for loop, but still can't get the best re1 and re2 results. Is there another way (e.g. intelligent algorithms) to find the right parameters? Thank you very much!
The text was updated successfully, but these errors were encountered: