Compressive Sensing dan Estimasi Arah kedatangan Sinyal Progress Report Compressive Sensing dan Estimasi Arah kedatangan Sinyal Basis Pursuit dan CVX Programming Kamis, 10 April 2014 Koredianto Usman NIM : 33213002
Algoritma Compressive Sensing Asumsi : X sinyal sparse Y compressed sensing dari X Y = A.X Rekonstruksi: Mencari |x|1 minimum sehingga A.X = Y
Untuk kemudahan sketsa, diambil kondisi 2 dan 3 variabel Ilustrasi Untuk kemudahan sketsa, diambil kondisi 2 dan 3 variabel Kemudian digeneralisir menjadi n variabel Misalkan x = [0 5]T A = [0,8 0,6 ] Maka Y = A X = 0x0,8 + 5x0,6 = 3 Diberikan : Y = [3] Dan A = [0,8 0.6] Rekonstruksi: Tentukan |X|1 minimal sehingga AX = Y
Tentukan |X|1 minimal sehingga AX = Y Ilustrasi | 2 Variabel Kemudian digeneralisir menjadi n variabel Misalkan x = [0 5]T A = [0,6 0,8 ] Maka Y = A X = 0x0,6 + 5x0,8 = 4 Rekonstruksi: Diberikan : Y = [4] Dan A = [0,6 0.8] Tentukan |X|1 minimal sehingga AX = Y Linear Programming : Misalkan X = [x1 x2]T Maka: AX = 0,6x1 + 0,8x2 = 3
Solusi dari persamaan linier Ilustrasi | 2 Variabel Tanpa constraint, maka terdapat banyak solusi dari 0,6x1 + 0,8x2 = 4 X1 X2 [X1, X2] 6.67 [6.67 0] 5 1.25 [5 1.25] 1 4.25 [1 4.25] [0 5] Solusi dari persamaan linier
Ilustrasi | 2 Variabel Dengan constraint Norm l1, maka hanya ada satu solusi: SOLUSI: X = [0 5] X semula = [0 5] 0,6x1 + 0,8x2 = 4 |x|1 = 5 |x|1 = 6 |x|1 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainya digunakan norm l2: SOLUSI: X = [2.39 3.19] 0,6x1 + 0,8x2 = 4 X semula = [0 5] |x|2 = 3,98 |x|2 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainya digunakan norm l2: Dengan Pseudo Inverse : 0,6x1 + 0,8x2 = 4 SOLUSI: X = [2.39 3.19] Diberikan : Y = [4] Dan A = [0,6 0.8] X semula = [0 5] A+ = [0.8 0.6]T Sehingga X = A+y = [2.4 3.2] Kesimpulan : Menyelesaikan LP dengan minimisasi Norm L2 sama dengan teknik Pseudo Inverse |x|2 = 3,98 |x|2 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainya matriks CS nya terbalik A = [0,6 0,8 ] (semula) Misalkan x = [0 5]T A = [0,8 0,6 ] (menjadi) Maka Y = A X = 0x0,8 + 5x0,6 = 3 Diberikan : Y = [3] Dan A = [0,8 0.6] Rekonstruksi: Maka: AX = 0,8x1 + 0,6x2 = 3
Cari X : dengan norm l1 minimal sehingga : Ilustrasi | 3 Variabel A = [ 0.3 0,6 0,4 0.1 0.8 0.3] Misalkan x = [0 5 1]T Y = A.X = [3.4 4.3]T Y = A.X = [3.4 4.3]T Rekonstruksi : A = [ 0.3 0,6 0,4 0.1 0.8 0.3] Cari X : dengan norm l1 minimal sehingga : AX = y
Ilustrasi | 3 Variabel A = [ 0.3 0,6 0,4 0.1 0.9 0.3] 0.1 0.9 0.3] Y = A.X = [3.4 4.3]T Jika X = [X1 X2 X3] Maka AX=y menghasilkan 2 persamaan: 0.3X1 + 0.6X2 + 0.4 X3 = 3.4 …. (f1) 0.1X1 + 0.8X2 + 0.3 X3 = 4.3 …. (f2) Dengan konstrain : |X1| + |X2| + |X3| minimal
Dengan konstrain : |X1| + |X2| + |X3| minimal Ilustrasi | 3 Variabel Lagrange Multiplier: Menjadi: 0.3X1 + 0.6X2 + 0.4 X3 – 3.4 = 0 (0.3X1 + 0.6X2 + 0.4 X3 – 3.4) + (0.1X1 + 0.8X2 + 0.3 X3 – 4.3)= 0 0.1X1 + 0.8X2 + 0.3 X3 – 4.3 = 0 Dengan konstrain : |X1| + |X2| + |X3| minimal 14.3 C C Q 8.5 B Q P A 5.3 B 5.6 P A 11.3 43
Ilustrasi | 3 Variabel Interior Point Algorithm (0.3X1 + 0.6X2 + 0.4 X3 – 3.4) + (0.1X1 + 0.8X2 + 0.3 X3 – 4.3)= 0 Dengan konstrain : |X1| + |X2| + |X3| minimal Z2 C Q C Q P Z”1 B A B Z’1 P Z1 A Contoh Algoritma: Primal-Dual APBQCA : Bidang Convex Z1 : Interior point Z2 : Exterior point
Dikembangkan oleh Stephen Boyd (Stanford Univ.) Convex Optimization CVX - Matlab CVX adalah ekstensi MEX pada Matlab untuk menyelesaikan Masalah Convex Optimization Dikembangkan oleh Stephen Boyd (Stanford Univ.)
CVX - Matlab INSTALASI:
CVX – Matlab – RECOVERY REAL %Contoh CS dan recoverynya dengan CVX %Optimization n = 512; %Panjang sampel asal k = 15; %sparsity m = 5 * k; %jumlah sampel yang dikumpulkan %Bangkitkan sinyal x x = genSparse(n,k); %Bangkitkan matriks pengukuran A = genA(n,m); %Hitung sinyal hasil pengukuran y y = A*x; %Rekonstruksi dengan CVX cvx_begin variable xbaru(n); minimize (norm(xbaru ,1)) subject to A* xbaru == y; cvx_end function x = genSparse(n,k) temp = randperm(n); x = zeros(n,1); x(temp(1:k))=randn(k,1); function A = genA(n,m) A = randn(m,n)/sqrt(m); randn(k,1); Blok CVX
CVX - Matlab Blok CVX
CVX – Matlab – RECOVERY REAL %Contoh CS dan recoverynya dengan CVX %Optimization n = 512; %Panjang sampel asal k = 15; %sparsity m = 5 * k; %jumlah sampel yang dikumpulkan %Bangkitkan sinyal x x = genSparse(n,k); %Bangkitkan matriks pengukuran A = genA(n,m); %Hitung sinyal hasil pengukuran y y = A*x; %Rekonstruksi dengan CVX cvx_begin variable xbaru(n) complex; minimize (norm(xbaru ,1)) subject to A* xbaru == y; cvx_end function x = genSparse(n,k) temp = randperm(n); x = zeros(n,1); x(temp(1:k))=randn(k,1) + j*randn(k,1); function A = genA(n,m) A = randn(m,n)/sqrt(m); randn(k,1); Blok CVX
CVX – Matlab – RECOVERY COMPLEX