


Comparison of various solvers for adaptive reweighting
with largescale examples
Solves the following basis pursuit denoising (BPDN) problem
min_x \Sum \w_i |x_i| + 1/2*||y-Ax||_2^2
while adaptively selecting the weights w_i
Written by: Salman Asif, Georgia Tech
Email: sasif@gatech.edu
Created: June 16, 2011
Reference:
"Fast and accurate algorithms for re-weighted L1 norm minimization," by
M. Salman Asif and Justin Romberg
To reproduce experiments in the paper, use this scrip with
rseed = 2012;
rand('state',rseed);
randn('state',rseed);
before running each simulation in
script_simulation_adpWBPDN

0001 % Comparison of various solvers for adaptive reweighting 0002 % with largescale examples 0003 % 0004 % Solves the following basis pursuit denoising (BPDN) problem 0005 % min_x \Sum \w_i |x_i| + 1/2*||y-Ax||_2^2 0006 % 0007 % while adaptively selecting the weights w_i 0008 % 0009 % Written by: Salman Asif, Georgia Tech 0010 % Email: sasif@gatech.edu 0011 % Created: June 16, 2011 0012 % 0013 % Reference: 0014 % "Fast and accurate algorithms for re-weighted L1 norm minimization," by 0015 % M. Salman Asif and Justin Romberg 0016 % 0017 % To reproduce experiments in the paper, use this scrip with 0018 % 0019 % rseed = 2012; 0020 % rand('state',rseed); 0021 % randn('state',rseed); 0022 % 0023 % before running each simulation in 0024 % script_simulation_adpWBPDN 0025 0026 clear 0027 % close all force 0028 0029 %% parfor setup 0030 % numCores = str2double(getenv('NUMBER_OF_PROCESSORS')); 0031 % mpSize = numCores-1; 0032 % if matlabpool('size') ~= mpSize 0033 % if matlabpool('size')~=0 0034 % matlabpool close; 0035 % else 0036 % matlabpool('open', mpSize); 0037 % end 0038 % end 0039 0040 %% Setup path 0041 mname = mfilename; 0042 mpath = mfilename('fullpath'); 0043 mdir = mpath(1:end-length(mname)); 0044 cd(mdir); 0045 0046 addpath ../Pursuits_Homotopy/ 0047 addpath ../utils/ 0048 addpath ../utils/utils_Wavelet/ 0049 addpath ../utils/utils_meas/ 0050 addpath ../solvers/ 0051 addpath src/ 0052 0053 disp(['--------------------',datestr(now),'-------------------------']) 0054 0055 % simulation parameters 0056 rwt_mode = 5; 0057 lambda = 0; 0058 0059 SAVE_RESULTS = false; 0060 0061 % SAVE_RESULTS = true; diary(sprintf('%s-reproduce.txt',mname)); 0062 0063 largescale = 1; 0064 0065 for SNR = [40] 0066 for M = [25000 30000] % [2 3] 0067 IMG_LIST = {'barbara','boats', 'cameraman','house','peppers','shapes','lena','airplane','baboon','sailboat','tiffany'}; 0068 for img = 1:5; % length(IMG_LIST) 0069 sType = IMG_LIST{img}; 0070 0071 if largescale 0072 mType = 'noiselets'; 0073 N = (256)^2; 0074 % M = round(N/R); 0075 T = N; 0076 str0 = sprintf('mType-%s, sType-%s, SNR = %d, (N,M) = %d, %d, rwt_mode-%d, lambda%3.4g.', mType, sType, SNR, N, M, rwt_mode, lambda); 0077 disp(str0); 0078 else 0079 mType = 'randn'; 0080 sType = 'HeaviSine'; 0081 N = 512; % signal length 0082 M = round(N/2); % no. of measurements 0083 T = round(M/3); % sparsity level 0084 str0 = sprintf('mType-%s, sType-%s, SNR = %d, (N,M,T) = %d, %d, %d, rwt_mode-%d, lambda%3.4g.', mType, sType, SNR, N, M, T, rwt_mode, lambda); 0085 disp(str0); 0086 end 0087 0088 % rank-1 update mode 0089 delx_mode = 'mil'; % mil or qr 0090 0091 %% Simulation 0092 maxsim = 10; 0093 script_simulation_adpWBPDN 0094 0095 end 0096 end 0097 end 0098 diary off;