{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Performance of Sparse Recovery Using L1 Minimization\n", "====================================================\n", "\n", "*Important:* Please read the [installation page](http://gpeyre.github.io/numerical-tours/installation_python/) for details about how to install the toolboxes.\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tour explores theoritical garantees for the performance of recovery\n", "using $\\ell^1$ minimization." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import division\n", "\n", "import numpy as np\n", "import scipy as scp\n", "import pylab as pyl\n", "import matplotlib.pyplot as plt\n", "\n", "from nt_toolbox.general import *\n", "from nt_toolbox.signal import *\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "%matplotlib inline\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sparse $\\ell^1$ Recovery\n", "--------------------------\n", "We consider the inverse problem of estimating an unknown signal $x_0 \\in\n", "\\RR^N$ from noisy measurements $y=\\Phi x_0 + w \\in \\RR^P$ where $\\Phi \\in \\RR^{P \\times N}$\n", "is a measurement matrix with $P \\leq N$, and $w$ is some noise.\n", "\n", "\n", "This tour is focused on recovery using $\\ell^1$ minimization\n", "$$ x^\\star \\in \\uargmin{x \\in \\RR^N} \\frac{1}{2}\\norm{y-\\Phi x}^2 + \\la \\normu{x}. $$\n", "\n", "\n", "Where there is no noise, we consider the problem $ \\Pp(y) $\n", "$$ x^\\star \\in \\uargmin{\\Phi x = y} \\normu{x}. $$\n", "\n", "\n", "We are not concerned here about the actual way to solve this convex\n", "problem (see the other numerical tours on sparse regularization) but\n", "rather on the theoritical analysis of wether $x^\\star$ is close to\n", "$x_0$.\n", "\n", "\n", "More precisely, we consider the following three key properties\n", "\n", "\n", "* *Noiseless identifiability*: $x_0$ is the unique solution of $\n", "\\Pp(y) $ for $y=\\Phi x_0$.\n", "* *Robustess to small noise*: one has $\\norm{x^\\star - x_0} =\n", "O(\\norm{w})$ for $y=\\Phi x_0+w$ if $\\norm{w}$ is smaller than\n", "an arbitrary small constant that depends on $x_0$ if $\\la$ is well chosen according to $\\norm{w}$.\n", "* *Robustess to bounded noise:* same as above, but $\\norm{w}$ can be\n", "arbitrary.\n", "\n", "\n", "\n", "\n", "Note that noise robustness implies identifiability, but the converse\n", "is not true in general.\n", "\n", "\n", "Coherence Criteria\n", "------------------\n", "The simplest criteria for identifiality are based on the coherence of the\n", "matrix $\\Phi$ and depends only on the sparsity $\\norm{x_0}_0$ of the\n", "original signal. This criteria is thus not very precise and gives very pessimistic\n", "bounds.\n", "\n", "\n", "The coherence of the matrix $\\Phi = ( \\phi_i )_{i=1}^N \\in \\RR^{P \\times\n", "N}$ with unit norm colum $\\norm{\\phi_i}=1$ is\n", "$$ \\mu(\\Phi) = \\umax{i \\neq j} \\abs{\\dotp{\\phi_i}{\\phi_j}}. $$\n", "\n", "\n", "\n", "Compute the correlation matrix (remove the diagonal of 1's)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "remove_diag = lambda C: C-np.diag(np.diag(C))\n", "Correlation = lambda Phi: remove_diag(abs(np.dot(np.transpose(Phi),Phi)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the coherence $\\mu(\\Phi)$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mu = lambda Phi: np.max(Correlation(Phi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The condition\n", "$$ \\normz{x_0} < \\frac{1}{2}\\pa{1 + \\frac{1}{\\mu(\\Phi)}} $$\n", "implies that $x_0$ is identifiable, and also implies to robustess to small and bounded noise.\n", "\n", "\n", "Equivalently, this condition can be written as $\\text{Coh}(\\normz{x_0})<1$\n", "where\n", "$$ \\text{Coh}(k) = \\frac{k \\mu(\\Phi)}{ 1 - (k-1)\\mu(\\Phi) } $$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Coh = lambda Phi, k: (k*mu(Phi))/(1 - (k-1)*mu(Phi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate a matrix with random unit columns in $\\RR^P$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy import random\n", "\n", "normalize = lambda Phi: Phi/np.tile(np.sqrt(np.sum(Phi**2,0)), (np.shape(Phi)[0],1))\n", "PhiRand = lambda P, N: normalize(random.randn(P, N))\n", "Phi = PhiRand(250, 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the coherence and the maximum possible sparsity to ensure\n", "recovery using the coherence bound." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Coherence: 0.30\n", "Sparsity max: 2\n" ] } ], "source": [ "c = mu(Phi)\n", "print(\"Coherence: %.2f\" %c)\n", "print(\"Sparsity max: %d\" %np.floor(1/2*(1 + 1/c)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 1__\n", "\n", "Display how the average coherence of a random matrix\n", "decays with the redundancy $\\eta = P/N$ of\n", "the matrix $\\Phi$. Can you derive an empirical law between\n", "$P$ and the maximal sparsity?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo1" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Support and Sign-based Criteria\n", "-------------------------------\n", "In the following we will consider the support\n", "$$ \\text{supp}(x_0) = \\enscond{i}{x_0(i) \\neq 0} $$\n", "of the vector $x_0$. The co-support is its complementary $I^c$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "supp = lambda s: np.where(abs(s) > 1e-5)[0]\n", "cosupp = lambda s: np.where(abs(s) < 1e-5)[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given some support $ I \\subset \\{0,\\ldots,N-1\\} $, we will denote as\n", "$ \\Phi = (\\phi_m)_{m \\in I} \\in \\RR^{N \\times \\abs{I}}$ the\n", "sub-matrix extracted from $\\Phi$ using the columns indexed by $I$.\n", "\n", "\n", "J.J. Fuchs introduces a criteria $F$ for identifiability that depends on the\n", "sign of $x_0$.\n", "\n", "\n", "J.J. Fuchs. _Recovery of exact sparse representations in the presence of\n", "bounded noise._ IEEE Trans. Inform. Theory, 51(10), p. 3601-3608, 2005\n", "\n", "\n", "Under the condition that $\\Phi_I$ has full rank, the $F$ measure\n", "of a sign vector $s \\in \\{+1,0,-1\\}^N$ with $\\text{supp}(s)=I$ reads\n", "$$ \\text{F}(s) = \\norm{ \\Psi_I s_I }_\\infty\n", " \\qwhereq \\Psi_I = \\Phi_{I^c}^* \\Phi_I^{+,*} $$\n", "where $ A^+ = (A^* A)^{-1} A^* $ is the pseudo inverse of a\n", "matrix $A$.\n", "\n", "\n", "The condition\n", "$$ \\text{F}(\\text{sign}(x_0))<1 $$\n", "implies that $x_0$ is identifiable, and also implies to robustess to\n", "small noise. It does not however imply robustess to a bounded noise.\n", "\n", "\n", "Compute $\\Psi_I$ matrix." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy import linalg\n", "\n", "PsiI = lambda Phi,I: np.dot(np.transpose(Phi[:,np.setdiff1d(np.arange(0,np.shape(Phi)[1]), I)]),np.transpose(linalg.pinv(Phi[:,I])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute $\\text{F}(s)$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "F = lambda Phi,s: linalg.norm(np.dot(PsiI(Phi, supp(s)),s[supp(s)]), np.float(\"inf\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Exact Recovery Criterion (ERC) of a support $I$,\n", "introduced by Tropp in\n", "\n", "\n", "J. A. Tropp. _Just relax: Convex programming methods for identifying\n", "sparse signals._ IEEE Trans. Inform. Theory, vol. 52, num. 3, pp. 1030-1051, Mar. 2006.\n", "\n", "\n", "Under the condition that $\\Phi_I$ has full rank, this condition reads\n", "$$ \\text{ERC}(I) = \\norm{\\Psi_{I}}_{\\infty,\\infty}\n", " = \\umax{j \\in I^c} \\norm{ \\Phi_I^+ \\phi_j }_1. $$\n", "where $\\norm{A}_{\\infty,\\infty}$ is the $\\ell^\\infty-\\ell^\\infty$\n", "operator norm of a matrix $A$." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "erc = lambda Phi, I: linalg.norm(PsiI(Phi, I), np.float(\"inf\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The condition\n", "$$ \\text{ERC}(\\text{supp}(x_0))<1 $$\n", "implies that $x_0$ is identifiable, and also implies to robustess to\n", "small and bounded noise.\n", "\n", "\n", "One can prove that the ERC is the maximum of the F criterion for all signs of the given\n", "support\n", "$$ \\text{ERC}(I) = \\umax{ s, \\text{supp}(s) \\subset I } \\text{F}(s). $$\n", "\n", "\n", "The weak-ERC is an approximation of the ERC using only the correlation\n", "matrix\n", "$$ \\text{w-ERC}(I) = \\frac{\n", " \\umax{j \\in I^c} \\sum_{i \\in I} \\abs{\\dotp{\\phi_i}{\\phi_j}}\n", " }{\n", " 1-\\umax{j \\in I} \\sum_{i \\neq j \\in I} \\abs{\\dotp{\\phi_i}{\\phi_j}}\n", " }$$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "g = lambda C,I: np.sum(C[:,I], 1)\n", "werc_g = lambda g,I,J: np.max(g[J])/(1-np.max(g[I]))\n", "werc = lambda Phi,I: werc_g(g(Correlation(Phi), I), I, np.setdiff1d(np.arange(0,np.shape(Phi)[1]), I))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One has, if $\\text{w-ERC}(I)>0$, for $ I = \\text{supp}(s) $,\n", "$$ \\text{F}(s) \\leq \\text{ERC}(I) \\leq \\text{w-ERC}(I) \\leq\n", " \\text{Coh}(\\abs{I}). $$\n", "\n", "\n", "This shows in particular that the condition\n", "$$ \\text{w-ERC}(\\text{supp}(x_0))<1 $$\n", "implies identifiability and robustess to small and bounded noise." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 2__\n", "\n", "Show that this inequality holds on a given matrix.\n", "What can you conclude about the sharpness of these criteria ?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N = 2000, P = 1990, |I| = 6\n", "F(s) = 0.21\n", "ERC(I) = 0.23\n", "w-ERC(s) = 0.26\n", "Coh(|s|) = 1.47\n" ] } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo2" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N = 2000, P = 1990, |I| = 6\n", "F(s) = 0.20\n", "ERC(I) = 0.24\n", "w-ERC(s) = 0.26\n", "Coh(|s|) = 1.44\n" ] } ], "source": [ "## Insert your code here.\n", "\n", "N = 2000\n", "P = N-10\n", "Phi = PhiRand(N, P)\n", "s = np.zeros(N)\n", "s[:6] = 1\n", "I = supp(s)\n", "k = len(I)\n", "\n", "print(\"N = %d, P = %d, |I| = %d\" %(N,P,k))\n", "print(\"F(s) = %.2f\" %F(Phi, s))\n", "print(\"ERC(I) = %.2f\" %erc(Phi, I))\n", "print(\"w-ERC(s) = %.2f\" %werc(Phi, I))\n", "print(\"Coh(|s|) = %.2f\" %Coh(Phi, k))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 3__\n", "\n", "For a given matrix $\\Phi$ generated using PhiRand, draw as a function of the sparsity $k$\n", "the probability that a random sign vector $s$ of sparsity\n", "$\\norm{s}_0=k$ satisfies the conditions $\\text{F}(x_0)<1$,\n", "$\\text{ERC}(x_0)<1$ and $\\text{w-ERC}(x_0)<1$" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nLCIikib+P+73mtfrzg83AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo3" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Insert your code here.\n", "\n", "N = 600\n", "P = N/2\n", "Phi = PhiRand(P, N)\n", "klist = np.round(np.linspace(1, P/7., 20))\n", "ntrials = 60\n", "proba = np.zeros([len(klist),3])\n", "\n", "for i in range(len(klist)):\n", " proba[i,:3] = 0\n", " k = klist[i]\n", " for j in range(ntrials):\n", " s = np.zeros(N)\n", " I = random.permutation(N)\n", " I = I[:k]\n", " s[I] = np.sign(random.randn(k, 1))\n", " proba[i, 0] = proba[i, 0] + (F(Phi, s) < 1)\n", " proba[i, 1] = proba[i, 1] + (erc(Phi, I) < 1)\n", " proba[i, 2] = proba[i, 2] + (werc(Phi, I) > 0)*(werc(Phi, I) < 1)\n", " \n", "plt.figure(figsize = (8,5))\n", "plt.plot(klist, proba/ntrials, linewidth=2)\n", "plt.xlabel(\"k\")\n", "plt.legend(['F <1', 'ERC <1', 'w-ERC <1'])\n", "plt.title(\"N = %d, P = %d\" %(N,P))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Restricted Isometry Criteria\n", "----------------------------\n", "The restricted isometry constants $\\de_k^1,\\de_k^2$ of a matrix $\\Phi$ are the\n", "smallest $\\de^1,\\de^2$ that satisfy\n", "$$ \\forall x \\in \\RR^N, \\quad \\norm{x}_0 \\leq k \\qarrq\n", " (1-\\de^1)\\norm{x}^2 \\leq \\norm{\\Phi x}^2 \\leq (1+\\de^2)\\norm{x}^2. $$\n", "\n", "\n", "E. Candes shows in\n", "\n", "\n", "E. J. Cand s. _The restricted isometry property and its implications for\n", "compressed sensing_. Compte Rendus de l'Academie des Sciences, Paris, Serie I, 346 589-592\n", "\n", "\n", "that if\n", "$$ \\de_{2k} \\leq \\sqrt{2}-1 ,$$\n", "then $\\norm{x_0} \\leq k$ implies identifiability as well as robustness to small and bounded noise.\n", "\n", "\n", "The stability constant $\\la^1(A), \\la^2(A)$ of a matrix\n", "$A = \\Phi_I$ extracted from $\\Phi$ is the smallest $\\tilde \\la_1,\\tilde \\la_2$ such that\n", "$$ \\forall \\al \\in \\RR^{\\abs{I}}, \\quad\n", " (1-\\tilde\\la_1)\\norm{\\al}^2 \\leq \\norm{A \\al}^2 \\leq (1+\\tilde \\la_2)\\norm{\\al}^2. $$\n", "\n", "\n", "These constants $\\la^1(A), \\la^2(A)$ are easily computed from the\n", "largest and smallest eigenvalues of $A^* A \\in \\RR^{\\abs{I} \\times \\abs{I}}$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "minmax = lambda v: (1-np.min(v), max(v)-1)\n", "ric = lambda A: minmax(linalg.eig(np.dot(np.transpose(A),A))[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The restricted isometry constant of $\\Phi$ are computed as the largest\n", "stability constants of extracted matrices\n", "$$ \\de^\\ell_k = \\umax{ \\abs{I}=k } \\la^\\ell( \\Phi_I ). $$\n", "\n", "\n", "The eigenvalues of $\\Phi$ are essentially contained in the\n", "interval $ [a,b] $ where $a=(1-\\sqrt{\\be})^2$ and $b=(1+\\sqrt{\\be})^2$\n", "with $\\beta = k/P$\n", "More precisely, as $k=\\be P$ tends to infinity, the distribution of the\n", "eigenvalues tends to the Marcenko-Pastur law\n", "$ f_\\be(\\la) = \\frac{1}{2\\pi \\be \\la}\\sqrt{ (\\la-b)^+ (a-\\la)^+ }. $" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 4__\n", "\n", "Display, for an increasing value of $k$ the histogram of repartition\n", "of the eigenvalues $A^* A$ where $A$ is a Gaussian matrix of size $(P,k)$ and\n", "variance $1/P$. For this, accumulate the eigenvalues for many\n", "realizations of $A$." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo4" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 5__\n", "\n", "Estimate numerically lower bound on $\\de_k^1,\\de_k^2$ by Monte-Carlo\n", "sampling of sub-matrices." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n4v8BV5l+iAtvoQ4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo5" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sparse Spikes Deconvolution\n", "---------------------------\n", "We now consider a convolution dictionary $ \\Phi $.\n", "Such a dictionary is used with sparse regulariz\n", "\n", "\n", "Second derivative of Gaussian kernel $g$ with a given variance $\\si^2$." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sigma = 6\n", "g = lambda x: (1-x**2/sigma**2)*np.exp(-x**2/(2*sigma**2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a matrix $\\Phi$ so that $\\Phi x = g \\star x$ with periodic\n", "boundary conditions." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [], "source": [ "P = 1024\n", "[Y, X] = np.meshgrid(np.arange(0,P), np.arange(0,P))\n", "Phi = normalize(g((X - Y + P/2.)%P-P/2.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To improve the conditionning of the dictionary, we sub-sample its atoms,\n", "so that $ P = \\eta N > N $." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "eta = 2\n", "N = P/eta\n", "Phi = Phi[:,::eta]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the correlation function associated to the filter.\n", "Can you determine the value of the coherence $\\mu(\\Phi)$?" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAegAAAE4CAYAAACQbmAjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmQVfWd9/HPt7vZQZpFAVkKFIygoCAxxgU70cmDjNFU\nKonhiT48JgbLxCTPM5kkas0kMJpkpibbZBwZSMSKU4MMMakEK+JSM3Z0TB6i0bAIHcCVfYdmE7vt\n3/PHr4/dXG7f7Zxz77nnvl9VXd333tPn/jhAf/r724455wQAAJKlrtINAAAApyOgAQBIIAIaAIAE\nIqABAEggAhoAgAQioAEASKC8AW1mS81st5mt6+H1z5jZGjNba2bPm9m06JsJAEBtKaSCfkjS7Byv\nvyZplnNumqR7JS2JomEAANSyvAHtnHtO0sEcr//eOXe48+FqSWMiahsAADUr6jHoz0l6POJzAgBQ\ncxqiOpGZfUjSZyVdEdU5AQCoVZEEdOfEsJ9Imu2cy9odbmZs+g0AqCnOOSv1e0N3cZvZOEm/lHSz\nc25LrmOdc3zE+PGtb32r4m2ohQ+uM9c4DR9c4/g/wspbQZvZI5KuljTczLZK+pakXp2Bu1jSNyUN\nkbTIzCSpzTl3aeiWAQBQw/IGtHNubp7Xb5N0W2QtAgAA7CSWJk1NTZVuQk3gOsePaxw/rnHyWRT9\n5AW9kZkr13sBAFBpZiZXyUliAAAgegQ0AAAJREADAJBABDQAAAlEQAMAkEAENAAACURAAwCQQAQ0\nAAAJREADAJBABDQAAAlEQAMAkEAENAAACURAAwCQQAQ0AAAJREADAJBABDQAAAlEQAMAkEAENAAA\nCURAAwCQQAQ0AAAJREADAJBABDQAAAlEQAMAkEAENAAACURAAwCQQAQ0AAAJREADAJBABDQAAAlE\nQAMAkEAENAAACURAAwCQQAQ0AAAJREADAJBABDQAAAlEQAMAkEAENAAACZQ3oM1sqZntNrN1OY75\nsZltNrM1ZjY92iYCAFB7CqmgH5I0u6cXzWyOpInOuUmS5ktaFFHbAACoWXkD2jn3nKSDOQ65QdLP\nOo9dLanRzEZE0zwAAGpTFGPQoyVt7fZ4m6QxEZwXQEi33SZdeaU0Z4506FClWwOgGA0RnccyHrts\nBy1YsOC9r5uamtTU1BTR2wPI5r//W/rzn/3X8+dLK1ZUtj1AmjU3N6u5uTmy85lzWbP01IPMxkt6\nzDk3Nctr/yqp2Tm3vPNxi6SrnXO7M45zhbwXgOice6702mvSzJnS009LjY2VbhFQO8xMzrnMArZg\nUXRxr5T0vzobc5mkQ5nhDKAyLrhAqquTnnyScAaqTd4ubjN7RNLVkoab2VZJ35LUS5Kcc4udc4+b\n2Rwz2yLpmKRb42wwgMK99ZbU0SEdPy4NHVrp1gAoRkFd3JG8EV3cQFk5Jw0aJE2cKP3wh9KHPlTp\nFgG1JQld3AASaNcuacAAacYMafPmSrcGQLEIaCClNm+WJk3yH1u2VLo1AIpFQAMptXmz796eOJEK\nGqhGBDSQUlu2UEED1YyABlIqqKDPPVd69VU/mxtA9SCggZQKKuhBg6TBg6UdOyrdIgDFIKCBFHLO\nB/TEif7xpEmMQwPVhoAGUihYYnXGGf4xE8WA6kNAAykUjD8HmCgGVB8CGkihYA10gAoaqD4ENJBC\n3cefJSpooBoR0EAKZVbQLLUCqg8BDaRQsMQqwFIroPoQ0EDKZC6xCrDUCqguBDSQMplLrAJMFAOq\nCwENpEzmEqsAE8WA6kJAAymTOUEsQAUNVBcCGkiZbOPPEhU0UG0IaCBleqqgWWoFVBcCGkiZnipo\nlloB1YWABlKkpyVWAZZaAdWDgAZSZNcuqX9/Xylnw0QxoHoQ0ECK9DT+HGCiGFA9CGggRXpaAx2g\nggaqBwENpEjmHtyZqKCB6kFAAymSr4ubpVZA9TDnXHneyMyV672AWjV8uDRunDRypLRsmdTYePox\n/fpJF18sDRnS8zEAwjMzOees5O8noIH06NtXOnnSf/3JT0orVpx+TP/+0okTuY8BEF7YgKaLG0iR\noOt65kxpyZLsx/Tunf8YAJXXUOkGAIiGc/7j4x+XHnyw567r6dOld9+VVq6kextIMgIaSImTJ6W6\nOukXv8h93NCh0ty5hDOQdHRxAynR2iqdcUb+4844wx8LINkIaCAlCGggXQhoICUIaCBdCGggJQho\nIF0IaCAljhwpPKCPHIm/PQDCIaCBlKCCBtIlb0Cb2WwzazGzzWb2jSyvDzezJ8zsT2a23sz+dywt\nBZATAQ2kS86ANrN6SfdLmi1piqS5ZjY547A7Jb3snLtYUpOk75sZ66uBMiOggXTJV0FfKmmLc+4N\n51ybpOWSbsw4Zqek4MfCGZL2O+fao20mgHxaW6VBg/IfN2gQAQ1Ug3wBPVrS1m6Pt3U+191PJF1g\nZjskrZH0leiaB6BQVNBAuuQL6EJuP3WPpD85586WdLGkfzGzAn6PBxAlAhpIl3xjxdslje32eKx8\nFd3d5ZK+LUnOuVfN7HVJ75P0YubJFixY8N7XTU1NampqKrrBALIrNKCDLm7nJCv5RngAMjU3N6u5\nuTmy8+W8H3TnZK8/S7pG0g5Jf5A01zm3sdsxP5B02Dm30MxGSPqjpGnOuQMZ5+J+0ECMrrlGuvtu\n6dpr8x/bt6908KDUr1/87QJqVdj7QeesoJ1z7WZ2p6QnJdVLetA5t9HMbu98fbGk70h6yMzWyHeZ\nfz0znAHEr9AKWurq5iaggeTKuxzKObdK0qqM5xZ3+3qfpI9G3zQAxSh0JzGpazexESPibROA0rGT\nGJASpVTQAJKLgAZSgoAG0oWABlLg3XelEyekAQMKO56ABpKPgAZS4MgRaeDAwpdNsZsYkHwENJAC\nxXRvS1TQQDUgoIEUIKCB9CGggRQgoIH0IaCBFCCggfQhoIEUKGaTEqlroxIAyUVAAylABQ2kDwEN\npAABDaQPAQ2kAAENpA8BDaRAa6vffKRQbFQCJB8BDaQAFTSQPgQ0kAIENJA+BDSQAsUG9IAB0ttv\nS+3t8bUJQDgENJACxQa0mR+HZi00kFwENJACxQa0RDc3kHQENJACxe4kJrGbGJB0BDSQAlTQQPoQ\n0ECVc674ddASAQ0kHQENVLkTJ6RevfxHMdisBEg2AhqocqV0b0tU0EDSEdBAlSOggXQioIEqR0AD\n6URAA1WOgAbSiYAGqhwBDaQTAQ1UuVI2KZHYqARIOgIaqHJU0EA6EdBAlSOggXQioIEqV8ouYhIb\nlQBJR0ADVY4KGkgnAhqocgQ0kE4ENFDlSg3ooIvbuejbBCA8AhqocqUGdK9eUp8+0vHj0bcJQHgE\nNFDlSg1oiW5uIMkIaKDKEdBAOhHQQJUrdScxid3EgCTLG9BmNtvMWsxss5l9o4djmszsZTNbb2bN\nkbcSSJH586XLL5fmzJEOHQp/vqRU0PPmSbNmRffnAmpdQ64Xzaxe0v2SrpW0XdILZrbSObex2zGN\nkv5F0v9wzm0zs+FxNhiodi+9JP3xj/7r+fOlFStKP1dbm/TOO1K/fqV9f5QB/dhj0sGD/uuwfy4A\n+SvoSyVtcc694Zxrk7Rc0o0Zx/xPSb9wzm2TJOfcvuibCaTHO+/4z+PGSUuWhDvXkSN+uZRZad8f\n1W5ir77aFc4zZ4b/cwHIH9CjJW3t9nhb53PdTZI01MyeMbMXzeyWKBsIpM2sWdKIEVLfvtLgweHO\nFaZ7W4qugl68WLrmGmngQOnpp6XGxvDnBGpdzi5uSYVsYdBL0gxJ10jqL+n3Zvb/nHObMw9csGDB\ne183NTWpqamp4IYCabFpk7R0qfS1r0m//a0U5r9BEgL6xAnpoYek556Tpk+XevcOdz6gWjU3N6u5\nuTmy8+UL6O2SxnZ7PFa+iu5uq6R9zrkTkk6Y2bOSLpKUM6CBWrV2rXTRRdIdd0gPPFD5gD58uPTv\nl6Sf/9x3a59/vvS+90kbNvjHQK3JLDwXLlwY6nz5urhflDTJzMabWW9JN0lamXHMryVdaWb1ZtZf\n0gckbQjVKiCldu/2Y9Bnny3dcovvDt65s/TzJaGCXrRI+sIX/NfTpvlfQACElzOgnXPtku6U9KR8\n6P6Hc26jmd1uZrd3HtMi6QlJayWtlvQT5xwBDWSxbp0PMTM//nzTTdJPf1r6+Sod0C+9JO3Y4ZdW\nSQQ0EKV8Xdxyzq2StCrjucUZj78n6XvRNg1In7VrfYgF7rhD+su/lO6+W2rI+7/xdGE2KZHCb1Sy\naJF0++1Sfb1/PG2a9PjjpZ8PQBd2EgPKKDOgL7pIGj/eryEuRSUr6EOHpEcflT73ua7nggqaO2QB\n4RHQQBllBrTkq+hFi0o7XyUD+uGHpeuu80vGAiNG+O77MOPqADwCGiiT9nappUW64IJTn//EJ/wS\npUsvLX6bzNZWv9lIqUrdqOTzn5fuukt67bVT22vGODQQFQIaKJNNm6QxY6QBA059vk8fX8m+8IK0\napXfJrNQlaqgN2zw659Xrz69vQQ0EA0CGiiTbN3bgf79/edit8msVEAHk8KytZeABqJBQANlkiug\nb77Zb/JR7DaZYQO6X7+uG24U4+67paFDs7eXgAaiQUADZZIroMeNk668svg9rMMGtFlpS61Onuy5\nvVOmSJs3Fx/6AE5FQANlkiugzzxT2ru3+HOGDWiptG7uvXt9m7Pp188vHWtpCdcuoNYR0EAZHDzo\nP8aPz/56mgJaopsbiAIBDZTBunXShRdKdT38jxs+vLSADruTmFRaF/fevb7NPSGggfAIaKAMcnVv\nS74a3bevuHM654M1zDpoqbQKet8+KmggbgQ0UAb5ArqxUTp61M+oLtSxY1Lfvl1LnkpVymYldHED\n8SOggTLIF9B1ddKwYcVV0VGMP0vxjEGPG+d/gSi2VwBAFwIaiFlHh/TKK9LUqbmPK3YcutIBnWsM\nOtjyc926cG0DahkBDcTs9df9ph751jgXOw5dyYDONwYt0c0NhEVAAzHL170dKHap1cKFfkOQYm+w\nkemJJ6SlSws/z7Fj/nPmnuKZCGggHAIaiNl990lr1uQPwGID+s03pcOHi7/BRqb9+6Xt2ws/T77x\n58Djj0srVoT/BQKoVQQ0ELOtW/1HvgAsdgw61w0ritGvX3HnyTf+HNi3z89MD/sLBFCrCGggZu3t\n/nO+ACx2DPrWW6UJE4q/wUamr39dGjWq8PMUMv4sdY2Pz5gR7hcIoFYR0EDMhgyRZs/OH4DFdnE7\nJ91wQ7hwlqQRI6TJkws/T6Fd3I884sepFy8O30agFjVUugFAmjkn7d4tvfxy/hnXxQb0sWP5J2oV\nYsCArolfhSg0oBsbffV89GjpbQNqGRU0EKPW1q5bOuZT7Bh0JQO6kDFoSTr7bD8BDUDxCGggRjt2\n+JAqRLFj0JUK6ELHoCVp9Gh/DQAUj4AGYrR9uw+pQgwf7pc8dXQUdnzSu7glKmggDAIaiFExFXSv\nXtLAgYWvGa6GgKaCBkpHQAMxKqaCloobh44qoPv3l44f9xPaCsEYNFAeBDQQo2IqaKm4ceioArq+\nXurTRzpxorDjGYMGyoOABmJUbAVdzFKrqAJaKrybu63NL5sqdF3z2Wf7gC60OgfQhYAGYlRKBZ3k\ngN63z9+3uq7Anxz9+vlz798frn1ALSKggRilrYIuZoJYgHFooDQENBCTjg6/i9ioUYV/z/Dh5R+D\nloqroAudIBZgHBooDQENxGTPHj9W27t34d9DBQ0gQEADMSl2/FkqPKA7Ovys6/79S2tbpjgDmgoa\nKA0BDcSk2PFnqfCAPnFC6tu38Mla+VBBA8lDQAMxKaWCLnQMOsrubYkxaCCJCGggJnFW0JUKaCpo\noHwIaCAmpVTQQejmC8tqCmgqaKA0eQPazGabWYuZbTazb+Q47v1m1m5mH4+2iUB12rGj+ApaKqyK\nrqaAPussv1FJW1tpbQNqVc6ANrN6SfdLmi1piqS5Zja5h+P+QdITkiyGdgJVZ/v24itoqbAbZlTT\nGHRDgw/pXbtKaxtQq/JV0JdK2uKce8M51yZpuaQbsxz3JUmPSipwBSeQfmEq6HwTxSoR0B0dvhIu\nNqClrj25ARQuX0CPlrS12+Ntnc+9x8xGy4f2os6n2BYfNe/kSam1tbQwS2oX96FD/n7VvXoVf/7R\no5koBhQrX0AXErY/knSXc87Jd2/TxY2at3OnNHJkaeuUkxrQpYw/B6iggeI15Hl9u6Sx3R6Pla+i\nu7tE0nIzk6Thkq4zszbn3MrMky1YsOC9r5uamtTU1FR8i4EqUOr4s5TcMei9e0vrEZCooFEbmpub\n1dzcHNn58gX0i5Immdl4STsk3SRpbvcDnHPnBF+b2UOSHssWztKpAQ2kWanjz5KvUl97LfcxlQjo\nffvCVdAR/twCEimz8Fy4cGGo8+UMaOdcu5ndKelJSfWSHnTObTSz2ztfXxzq3YGUClNBp7GLmwoa\nKF6+ClrOuVWSVmU8lzWYnXO3RtQuoKqFraALCeihQ0s7fzaMQQPJw05iQAwYgz4VFTRQPAIaiEHY\nCjqJ66DDjEE3NkrvvCMdPVra9wO1iIAGYhCmgm5s9EGWa2vMuALa5VhYGaaL24w9uYFiEdBAxJwL\nV0HX1UnDhuWuoqMO6F69/Pu+807Px4QJaIlxaKBYBDQQsdZWXzEOGlT6OfKNQ0cd0FL+bu4wY9AS\n49BAsQhoIGJhqudAvnHoSgR0mDFoiQoaKBYBDUQszPhzIN9Sq3IHdPB8mPekggaKQ0ADEYuqgs4X\n0P37h3uPTP379xzQYcefJSpooFgENBCxKCropI1Bhx1/lqiggWIR0EDE4h6Ddq78AR12/FmiggaK\nRUADEYt7DPrkSam+vrT7MueSr4KOKqBzrbUG0IWABiIWRQX98MPSU09Jc+ZIhw6d+loc1bOUO6Af\neEB65pns7SlUv37+PfbvL72NQC0hoIGIbd8ePqB375YOH5ZWrZLmzz/1tUoE9I4d/s+VrT3FYBwa\nKBwBDUTo85+Xtm3zIVZqpSl1bXIyc6a0ZMmpr1UioINu6WztKcbBg9LNN4erxIFaQUADEXrlFf/5\nySfDVZrLlvmtN596yu/N3V0lAnr6dOmyy6Snnz69PcVob5fWrw9fiQO1gIAGImTmP4etNEeNknr3\nlvr0Of21SgT00aPSffeFC+fgPaTw1weoBQQ0EKEvf1kaOTJ8pSn5G2Zkm1BViYDev9+3J6w77pDO\nOSea6wOkHQENRKi1Vbr++mjCZ+hQ6cCB05+vREAfOODbE9bEidKFFxLOQCEIaCBCO3aEXwMdSGMF\nzWYlQOEIaCBCUWxSEkhKBX3ihNTREc3e3wQ0UDgCGohQGivooHs7mAAXxogRfleyd98Nfy4g7Qho\nIEJRB3QSKuiourclvz3p0KHSnj3RnA9IMwIaiFCUAT10aLIq6KjQzQ0UhoAGItLW5sPsrLOiOV9S\nurijrKAlAhooFAENRGT3bn/Hp/r6aM6XlEliVNBAZRDQQESi7N6WqKCBWkdAAxGJOqDLXUH37ev3\nym5vP/X5/fupoIFKIKCBiFR7BW3m1zofP37q8wcOUEEDlUBAAxGJq4IObvUYiCugpezd3HRxA5VB\nQAMRiTqge/f23c5Hjpz6fLkDmkliQGUQ0EBEog5oKfs4dLVX0GeeKR086JelAegZAQ1EJI6AzjYO\nXe0VdH29Xyu+a1d05wTSiIAGIpLGCtq56GdxS/46bd8e7TmBtCGggQicPOnHiqPsCpZOr6Db2vyN\nJvr0ifZ9ApkBfeyY3z+7b99o34dxaCA/AhqIwM6d0siRUl3E/6MyAzqonqO4s1Q2mQEd9fhzgIAG\n8iOggQjE0b0tnd7FHWf3tpQ9oKPu3pYIaKAQBDQQgbgCuqcKOi6ZAR31JiUBAhrIj4AGIpDmCpqA\nBiqjoIA2s9lm1mJmm83sG1le/4yZrTGztWb2vJlNi76pQHKluYKmixuojLwBbWb1ku6XNFvSFElz\nzWxyxmGvSZrlnJsm6V5JS6JuKJBkVNDFIaCB/AqpoC+VtMU594Zzrk3Sckk3dj/AOfd759zhzoer\nJY2JtplAslFBF2fYMP8+J05Ef24gLQoJ6NGStnZ7vK3zuZ58TtLjYRoFVBsq6OKYSaNG+eVpALJr\nKOAYl/8Qz8w+JOmzkq7I9vqCBQve+7qpqUlNTU2FnhpItLgCesgQ6dAhqaPDr7FOyzIrqaub+5xz\n4jk/UG7Nzc1qbm6O7HyFBPR2SWO7PR4rX0WfonNi2E8kzXbOHcx2ou4BDaTFsWN+J7HGxujP3dAg\nDRwoHT7swzoty6wkxqGRPpmF58KFC0Odr5Au7hclTTKz8WbWW9JNklZ2P8DMxkn6paSbnXNbQrUI\nqDI7d/qwiWt3r+7j0GmsoAFklzegnXPtku6U9KSkDZL+wzm30cxuN7PbOw/7pqQhkhaZ2ctm9ofY\nWgwkTFzd24FKBjQVNFA5hXRxyzm3StKqjOcWd/v6Nkm3Rds0oDrEHdDdJ4odOyaNzjVFM6TuAd3R\n4e/bHGcFvX59POcG0oCdxICQ0lpBt7b6xw0F/RpfPCpoIDcCGgip3BV0uQI6riVWAQIayI2ABkJK\nUwXdv7/fPKSjI75NSgIENJAbAQ2EtH17eiroujqpb18f0nFX0IMHS+3t0pEj8b0HUM0IaCCkNFXQ\nUlc3d5xLrCS/LO3ss9lNDOgJAQ2E4Fy6xqClroCOc4lVgG5uoGcENBBCa6vvFh40KL73qGQFTUAD\nlUNAAyHEXT1Lla2g4+zilghoIBcCGgihHAFNBQ3UJgIaCKEcAT14sHT0qL8hx8mTUr9+8b4fFTSQ\nDAQ0EMI//7P07LPSnDn+tpBxqKvzd8ravt2Hc13M/2vLWUEvWyatWhXv9QOqFQENhLBtm/9YtUqa\nPz++9xk2TNq6Nf7ubal8y6wkae9eP9Eu7usHVCMCGgjh7bf955kzpSVL4nufoUOlt94qb0CXY5lV\n8AvAjBnxXj+gGhHQQAgNDdL110tPP+27oeNS7gq6tdXv8DV4cLzv9cgj/j2+//14rx9QjQhoQNKa\nNdIFF0hXXFH4eOjBg76CXrky/nApdwW9bZsPzvr6eN+rsVGaPdu/X6Gcky65RJoyRbruOsaukV4E\nNGrahg3SJz/pQ2LnTul3vyt8PHTjRun88/2WlXErdwW9dWv83duByZP9tSzU/fdLLS3+e554wvdg\nOBdf+4BKIaBRk26+WRoxQrr4YmnqVGnLFunSS/1ro0cXNh7a0uIDuhzKXUG/9Vb8E8QCxQT06tXS\nvfdK73+/fzxxoq+gzzpLmj6d2eBIFwIaNeedd3y39J49UlubtH69D6Xly3011t4u/fGP+c+zcaMP\nl3JIcwV9/vn+l5189u+XPvUp/8vTr37lez5eeEFau1YaPlz605+YDY50IaBRc772ta7NPrrPvm5s\nlB57TPr3f/cV9vbtuc9TzoAeOlQ6fLh8AX34cPkq6PPOk15/3f+y1JOODumWW3wof+xj/u9qxQr/\nua5OmjDBH9e3r/SjH5Wn3UDcCGjUlJ//3Ifw6tX+h3222dfXXCN98YvSpz+dOzRaWspbQUvlC+ju\n7xm3vn39sMKrr/Z8zHe/62eWf/e72V9ftsz/fd5wg3TPPYxJIx0IaNSMTZukL3zBh/T48V0VWDb3\n3CO98Yb0vvdlH9d8+21fYZ9zTtyt9oJqtpwBXa4KWso9Dv2JT0gLF0q9e/v12dkEFfXSpb7be+nS\n+NoKlAsBjZpw/Lj/QX/ffX6JTj51ddKQIb7rNdu45qZNvlu1V6942pspzRW0lHsc+qWXfE/GM8/k\nH18eMEB69FHprrv8mDRQzQho1ITp06Xdu/3kokJn+Y4c6T9fcsnps7rLOf4sVSagk1JBHz3qPxe6\nW9vkydKPfyzNmiVdeSUzu1G9CGik3vLlftnQnj1+3Wyhs3xXrPBV9N/93eld4eVcYiVJAwf6XcvS\nWkH3FNAdHf4OXh/9aHG7tc2d6/8czz/PzG5ULwIaqfbmm9KXv+z3epaK2zO7sVG69dbsXaXlrqDN\nfGCmNaCDLu7MyV3r1/uejFJ2a5s61X+eMIF9vlGdCGikVnu79JnP+GVVv/lNz7O2c7nqKn87yUzl\nDmjJdzmntYt7yBD/vplL25591v8dlGLFCukv/sIvGTtwIHwbgXIjoJFa3/mOX8Lz1a+eum62GFde\nKf3+9z7sA+++K23e7Gd4l9OhQ9KCBfGPqTY0+Mlvt9xS3vHbbN3czz3nx5JL0dgoPfWU9Dd/439R\n6/53CFQDAhqp9LvfSQ88ID38sJ+RXarhw6UxY/zNNAJvvumfHzgwfDuLMX68b0c5xlRnziz/+G1m\nQDsXroIOfOUr0hln+LkEQDUhoJE68+ZJH/6w3/yif//w55s169Ru7kp0b0td1X/c954u93sFMpda\nbdniq/nx48Odt65O+tnPpO99z++9zqxuVAsCGqkS7LN98qRfPxtF9Tdrlu9qDZR7Bncg2C0r7ntP\nl/u9ApkVdNC9HcXdwkaO9DfWKFcPBBAFAhqp0dEhffazfscpKbrq76qrfFgEM4wrWUGXMo6e9PcK\nZAZ0FN3b3Y0Z4z/36SN9+9vRnReICwGN1LjnHum11/yyqCirvzFjpEGDurpfKxXQaTd6tN/K8+BB\n/zjMBLFsgl6BL33JTxrradtQICnMlWlXeTNz5Xov1J777/cfzz8fz/rdefOkyy/3XaPDhvmwPuus\n6N+n1r3//X4XsHHjpIsukvbujaaLuzvnfE/Lnj3Sr3/tx7mBOJiZnHMl/wumgkbVu/Za6a/+yo8z\n1tfH8x7BOPTevf7xmWfG8z61Lujmfu45370ddThL/pxLlvghkQsvlK6+moljSCYCGlWro8OvdX72\nWX8zhd/+Nr7JP1dd5c8fdG/HERzoCuiox58z9erl72q2c6d/LyaOIYkIaFSlAwf8/sy/+Y3fTESK\nd0nQpEn+l4AnnmD8OU6TJ/vhg2efjXb8OZuBA6UPftB/3bu3dMcd8b4fUCwCGlXnxRf9HabOP19q\nbpZ++ctmqBGhAAAG5UlEQVT4lwSZ+YruoYcqs8SqVpx/vrR6tb+5ycUXx/9+y5f7fztLlkif+pS0\nePHp+4EDlZI3oM1stpm1mNlmM/tGD8f8uPP1NWY2PfpmAv6H9tSpvuoZMkT627/1XZXlWhI0a5a/\nZSUVdHzOPdfP4v7gB8szeSv4tzNvnp9geNddfhLgZZd1zSYHKiVnQJtZvaT7Jc2WNEXSXDObnHHM\nHEkTnXOTJM2XtCimtiKP5ubmSjchFmvX+n2hp0/3E3na26WXXy7/mGEwJvrXf93MpKKY9Orlb5qx\nZk35r/F55/lfAA8e9FX8xIn+/uEdHeVrQzml9edFmuSroC+VtMU594Zzrk3Sckk3Zhxzg6SfSZJz\nbrWkRjMbEXlLkVda/sOdPOln8d57rzRqlB9b/sMf/M5gwS0Ey7kFZWDqVN+elpZmJhXFaNgwaffu\nylzjYH/1mTOlH/zAb2jS2OjXwl9yifT66+VtT5zS8vMizfIF9GhJW7s93tb5XL5jxoRvGtLKOeno\nUb9ZxIwZvjK+917pggv8D8MBA/w9nFtb/U0p2tqkTZv8bSMrsQVloL6+a1y0Er8g1IrgLmGVuMbd\n/33Nm+d/MZw40d8G86WXfJU9bJhf0jdpkrRokXT99dIHPuBvbbl/f3nbi3TLN8pT6HSJzEUnWb/v\nrLP8D+QNG/wuPvX1/nGvXn6P3O7PpeGYcr/33r3+Dk5Rvdf06f6YtWt9oDY0+IBqafGP6+uladOk\nP//Zf09dnTRlin++pUU6ftxPrho92v+Ae/tt313Y0eFvA9nW5j8k//0dHf7evZL/4feP/yi98oq0\nfn3XD+tgzLBSli2TrriiMr8g1IpKXuPMf19mPowl/2/w8celj3zE71a3e7f093/vu+FbW/0xwV3O\ngn/n9fXShAn+2JMn/eMpU/x2o8H/m4YG//9o06auxxdf7P/vrVt36v/HjRsr9/Mi6T9vk/BzO+ht\nWbYsmn+7OXcSM7PLJC1wzs3ufHy3pA7n3D90O+ZfJTU755Z3Pm6RdLVzbnfGuZgbCQCoKWF2EstX\nQb8oaZKZjZe0Q9JNkuZmHLNS0p2SlncG+qHMcA7bSAAAak3OgHbOtZvZnZKelFQv6UHn3EYzu73z\n9cXOucfNbI6ZbZF0TNKtsbcaAICUK9vNMgAAQOFi30mskI1OUDwzG2tmz5jZK2a23sy+3Pn8UDN7\n2sw2mdlTZsZUppDMrN7MXjazxzofc40jZGaNZvaomW00sw1m9gGucbTM7O7OnxXrzGyZmfXhGodn\nZkvNbLeZrev2XI/XtfPvYXNnJn4k3/ljDehCNjpBydok/V/n3AWSLpP0xc5re5ekp51z50n6z87H\nCOcrkjaoa3UC1zha/yTpcefcZEnTJLWIaxyZzjlEn5c0wzk3VX648tPiGkfhIfl86y7rdTWzKfLz\nuKZ0fs8DZpYzg+OuoAvZ6AQlcM7tcs79qfPro5I2yq9Jf2/jmM7PH6tMC9PBzMZImiPpp+paTsg1\njoiZDZZ0lXNuqeTnvTjnDotrHKVW+V/o+5tZg6T+8pN+ucYhOeeek5S5KWxP1/VGSY8459qcc29I\n2iKfkT2KO6AL2egEIXX+hjxd0mpJI7rNot8tiV3dwvmhpK9J6r7hI9c4OhMk7TWzh8zsJTP7iZkN\nENc4Ms65A5K+L+kt+WA+5Jx7WlzjuPR0Xc+Wz8BA3jyMO6CZgRYzMxso6ReSvuKcO9L9NednAPJ3\nUCIzu17SHufcyzp9Mx5JXOMINEiaIekB59wM+ZUgp3S1co3DMbNzJf0fSePlQ2Kgmd3c/RiucTwK\nuK45r3ncAb1d0thuj8fq1N8gEIKZ9ZIP539zzv2q8+ndZjay8/VRkvZUqn0pcLmkG8zsdUmPSPqw\nmf2buMZR2iZpm3Puhc7Hj8oH9i6ucWRmSvqdc26/c65d0i8lfVBc47j09PMhMw/HdD7Xo7gD+r2N\nTsyst/wA+cqY37MmmJlJelDSBufcj7q9tFLSvM6v50n6Veb3ojDOuXucc2OdcxPkJ9X8l3PuFnGN\nI+Oc2yVpq5md1/nUtZJekfSYuMZRaZF0mZn16/y5ca38pEeucTx6+vmwUtKnzay3mU2QNEnSH3Kd\nKPZ10GZ2naQfqWujk+/G+oY1wsyulPSspLXq6ia5W/4vfIWkcZLekPQp5xw3RgzJzK6W9FXn3A1m\nNlRc48iY2UXyk/B6S3pVfrOjenGNI2NmX5cPiw5JL0m6TdIgcY1DMbNHJF0tabj8ePM3Jf1aPVxX\nM7tH0mcltcsPSz6Z8/xsVAIAQPLEvlEJAAAoHgENAEACEdAAACQQAQ0AQAIR0AAAJBABDQBAAhHQ\nAAAkEAENAEAC/X/+vobZblS/VAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c = np.dot(np.transpose(Phi),Phi)\n", "c = np.abs(c[:,np.shape(c)[1]/2])\n", "\n", "plt.figure(figsize=(8,5))\n", "plt.plot(c[len(c)/2 - 50:len(c)/2 + 50], '.-')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a data a sparse $x_0$ with two diracs of opposite signes with spacing $d$." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "twosparse = lambda d: np.roll(np.concatenate(([1.], np.zeros(d), [-1.], np.zeros(N-d-2))), int(N/2 - d/2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display $x_0$ and $\\Phi x_0$." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n308AmA4zx28ypsWS1kfEBkmyfbOk8yStybRZKmmZJEXEvbZn254TEVtznhsFa7/EwHQ9d5DPnff5\n4z332WeT+1mzRoeuoaHk/vnnO1+nqxfnHs9LL0krVkif/Wyy/4EP7Nmm0/dNdguXknTppdInPiHd\nfrt03XXS+96XzJS1BzwAKCtHjndX278l6R0R8f50/2JJp0bEBzNtbpN0XUT8W7r/HUlXRMQP2l4r\npJzv9AAAYFx5/7CCZFsR4fFbji3v340T/VW2d7TL84Yz2430BgAAUKxms6lms9nz1807I3aapOGI\nWJLuXyVpd0R8KtPmi5KaEXFzur9W0hntpUnb8eyzk+tLtuvta0cm8pzR55/a88Z67kSHtv35k/mV\ntJ47nX/dTPVcU3ke5xptyxbp6qul226TTj9d+td/Hf34f/yH9Ku/Kp16arLd8md/Jv35n0vXXit9\n/OOjn/OZz0h/+qfJFe6/+EXplFOSTyfOmjXxf1e98u53S3fcId1yi3TOOcmx1aulk0+Wjjtu5Ppj\n49m1K7mUB4A9zZrVudSPySnLjNhKSYtsL5T0uKQLJF3U1ma5pMsl3ZwGt6e7rQ874ICcvQEq7tBD\npa99TVq4MLkExAMPSG9608jj3dZTtS770L4+bPdu6frrk+2/+ZuR8FOUffdN7l95ZeQDBq3Quvfe\ne34atJuJtgOAouX61GRE7FISsu6UtFrSNyNije3LbF+Wtvm2pEdtr5d0g6Q/ytlnoNYOOki6KP1z\n55ZbRj/W6ar60kgwa31VUMv990sbNkjz50vnntvzrk5ap8X63X4mAKiC3NcRi4g7IuLYiDg6Iq5L\nj90QETdk2lyePv7LEXFf3nMCddcKTXfdNfp4txmxbhdKbT3/nHNGvvOxSK2wle1nK4i1vqYJAKqk\nBG+9ACbr9NOT+/vvH/21RePNiLUHsXvvTe7POKP3fZyKTv1s/XzMiAGoIoIYMIAOPFA69tgkpPzw\nhyPHx1sj1l6a7Padj0XpdOFZSpMAqowgBgyok9IvC3vooZFjkylNPvustHlz8tjRR/evn5PRqZ8E\nMQBVRhADBtSxxyb3a9eOHJtMafKRR5L7o44qx/owicX6AOqnJG+/ACbruOOS+2wQm8zlK9avT+6P\nOqo//ZsKFusDqBuCGDCgWuXExx4bOTaZy1dkZ8TKgsX6AOqGIAYMqAULkvuf/GTk2GTWiLVmxMqy\n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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x0 = twosparse(50)\n", "\n", "plt.figure(figsize=(10,7))\n", "plt.subplot(2, 1, 1)\n", "plt.plot(x0, 'r', linewidth=2)\n", "plt.subplot(2, 1, 2)\n", "plt.plot(Phi*x0, 'b', linewidth=2)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 6__\n", "\n", "Plot the evolution of the criteria F, ERC and Coh as a function of $d$.\n", "Do the same plot for other signs patterns for $x_0$.\n", "Do the same plot for a Dirac comb with a varying spacing $d$." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/sparsity_6_l1_recovery/exo6" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "## Insert your code here." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }