{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Name: **Your name here** \n", "UID: **Your student ID num here**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Homework 1: Linear Algebra " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 1: Dual norm\n", "\n", "Given some norm $\\|\\cdot\\|,$ it's dual norm $\\|\\cdot\\|_*$ is defined as\n", "$$\\|x\\|_* = \\max_{\\|z\\|\\le 1} z^Tx.$$\n", "Prove the dual norm is indeed a norm.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution\n", "#### Homogeneity \n", "$$\\|\\alpha x\\|_* = \\max_{\\|z\\|\\le 1} z^T \\alpha x =\\alpha \\max_{\\|z\\|\\le 1} z^T x= \\alpha \\|x\\|_*.$$\n", "\n", "#### Sub-additivity \n", "$$\\| x + y \\|_* =\\max_{\\|z\\|\\le 1} z^T (x+y)= \\max_{\\|z\\|\\le 1} z^Tx+z^Ty \\le \\max_{\\|z\\|\\le 1} z^Tx+\\max_{\\|z\\|\\le 1}z^Ty =\\| x\\|_*+\\| y \\|_* $$\n", "\n", "#### Separability: Suppose $x\\neq 0.$\n", "$$\\| x \\|_* = \\max_{\\|z\\|\\le 1} z^T x \\ge (x/\\|x\\|)^T x = \\|x\\|_2/\\|x\\| \\ge 0.$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 2\n", "Consider two discrete sequences $f=(f_0,f_1,f_2,\\ldots, f_N),\\, g=(g_0,g_1,g_2,\\ldots, g_N).$ The sequences have period $N$, meaning that $f[s+N] = f[s-N]= f[s]$ for all $s\\in\\mathbb{Z}.$ We can combine these two functions into a new function by multiplying ($\\cdot$), filtering ($\\square$), or convolving ($*$).\n", "\n", "We can define the new functions produced by these operations coordinate-wise. The three functions we are interested in are... \n", "\n", "**Coordinate-wise multiply:** $(f\\cdot g)[s] = f[s]g[s].$\n", "\n", "**Linear Filter**: $(f\\square g)[s] = \\sum_{t=0}^{N-1} f(s+t)g(t)$\n", "\n", "**Convolution**: $(f*g)[s] = \\sum_{t=0}^{N-1} f(s-t)g(t)= \\sum_{t=0}^{N-1} f(s+t)g(-t)$\n", "\n", "Note that convolving $f(\\cdot)$ with $g(\\cdot)$ is the same as filtering $f(\\cdot)$ with the \"flipped\" function $g(- \\cdot).$\n", "\n", "Given an $N$-periodic function $f$, it's discrete Fourier transform $\\hat f$ is defined by \n", " $$\\hat f [u] = \\sum_{s=0}^{N-1} \\omega^{us} f[s].$$\n", "\n", "**Prove the Convolution Theorem:** The Fourier transform of $f*g$ is the coordinate-wise product of $\\hat f$ and $\\hat g.$ In other words\n", " $$\\widehat{f*g} = \\hat f \\cdot \\hat g.$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proof\n", "*Put your work here*\n", "\n", "First, note that because $f$ and $\\{\\omega^k\\}$ are periodic, \n", " $$\\sum_{s=t}^{N-1+t} \\omega^{us} f(s) = \\sum_{s=0}^{N-1} \\omega^{us} f(s) = \\hat f[u].$$\n", " Using this nifty fact, we write\n", " $$\n", " \\begin{align}\n", " \\widehat{f*g}[u] &= \\sum_{s=0}^{N-1} \\omega^{us} (f*g)[s] = \\sum_{s=0}^{N-1} \\omega^{us} \\sum_{t=0}^{N-1} f(s+t)g(-t) = \\sum_{t=0}^{N-1} g(-t) \\sum_{s=0}^{N-1} \\omega^{us} f(s+t) \\\\\n", " & = \\sum_{t=0}^{N-1}g(-t) \\sum_{s=t}^{N-1+t} \\omega^{u(s-t)} f(s) = \\sum_{t=0}^{N-1} g(-t) \\omega^{-ut}\\sum_{s=t}^{N-1+t} \\omega^{us} f(s) = \\sum_{t=0}^{N-1} g(-t) \\omega^{-ut}\\hat f[u] \\\\\n", " &= \\hat f[u] \\sum_{t=-N+1}^{0} g(t) \\omega^{ut} = \\hat f[u] \\sum_{t=0}^{N-1} g(t) \\omega^{ut} \\\\\n", " & = \\hat f[u] \\cdot \\hat g[u].\n", " \\end{align}\n", " $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 3: Fourier matrix\n", "The discrete Fourier transform of a signal is a linear operator that can be performed very quickly using the fast Fourier transform (FFT). Because it's a linear operator, we can represent the discrete Fourier transform as a matrix. \n", "An $N\\times N$ Fourier matrix has entries\n", " $$F_N[r,c] = \\frac{\\omega^{rc}}{\\sqrt{N}}, \\text{ for } 0\\le r,c \\le N-1.$$\n", "where $\\omega_{N} = \\exp\\left(\\frac{-2\\pi i}{N}\\right)$ is the Nth root of unity. This number has the property that $\\omega_N^0 = \\omega_N^N = 1,$ and $|\\omega_N|=1.$ A Fourier matrix is Hermitian symmetric ($F_N^H=F_N$), orthogonal ($F^H_NF_N=I_N$), and looks kinda like this..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "F = np.fft.fft(np.eye(100)) # Create a matrix representation by invoking the FFT on the identity.\n", "plt.imshow(np.real(F));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplest version of the fast Fourier transform computes the DFT quickly using the Cooley-Tukey factorization\n", " $$F_N x = \\frac{1}{\\sqrt{2}}\\left(\\begin{array}{cc} I & D \\\\ I & -D \\end{array}\\right) \\left(\\begin{array}{c} F_{N/2}x_e \\\\ F_{N/2}x_o \\end{array}\\right)\n", "$$\n", " where $D_{kk} = exp(-2\\pi i k/N)$ is a diagonal matrix of \"twiddle factors,\" $x_e=(x_0,x_2,x_4,\\cdots)$ contains even-indexed components of $x$, and $x_o$ contains the odd-indexed components. If $N$ is a power of 2, then this reduction formula enables us to compute the product $F_N x$ in $O(N\\log N)$ time, which is MUCH faster than the naive matrix multiplication algorithm, which is $O(N^2).$ \n", " \n", "**Prove the Cooley-Tukey factorization formula.**\n", " \n", " Hint: Use this simpler/algebraic statement of the theorem:\n", " $$\\hat x[s] = \\frac{1}{\\sqrt{2}} \\big(\\hat x_e[s]+ \\exp(-2\\pi i s/N) \\hat x_o[s] \\big). $$\n", " Here, the sequences $\\hat x_e$ and $\\hat x_o[s]$ are interpreted to be symmetric, i.e., $\\hat x_e[i+N/2] = \\hat x_e[n].$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proof\n", "*Put your work here*\n", "\\begin{align}\n", " \\sqrt{2}\\hat x[s] &= \\frac{\\sqrt{2}}{\\sqrt{N}}\\sum_{j=0}^{N-1} \\omega_N^j x[j] \\\\\n", " &=\\frac{1}{\\sqrt{N/2}}\\sum_{j=0}^{N/2-1} \\omega_N^{2j} x[2j] +\\frac{1}{\\sqrt{N/2}}\\sum_{j=0}^{N/2-1} \\omega_N^{2j+1} x[2j+1] \\\\\n", " &= \\frac{1}{\\sqrt{N/2}}\\sum_{j=0}^{N/2-1} \\omega_{N/2}^{j} x[2j] +\\frac{1}{\\sqrt{N/2}} \\omega_N \\sum_{j=0}^{N/2-1} \\omega_{N/2}^{j} x[2j+1] \n", "\\end{align}\n", "Where we used the fact that $\\omega_N^2 = \\omega_{N/2}.$ We then use the fact that $x[2j] =x_e[j]$ and $x[2j+1] =x_o[j]$ to get \n", "\n", "\\begin{align}\n", " \\sqrt{2}\\hat x[s] &=\\frac{1}{\\sqrt{N/2}}\\sum_{j=0}^{N/2-1} \\omega_{N/2}^{j} x_e[j] +\\frac{1}{\\sqrt{N/2}} \\omega_N \\sum_{j=0}^{N/2-1} \\omega_{N/2}^{j} x_o[j] \\\\\n", " &= \\hat x_e[s]+ \\exp(-2\\pi i s/N) \\hat x_o[s].\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 4\n", "Consider the measurement model\n", " $$y = Dx + \\eta$$\n", " where $D\\in m\\times n$ is a measurement matrix, and $\\eta\\in \\mathbb{R}^m$ is a noise vector drawn from a Gaussian distribution with covariance matrix $\\Sigma.$ The density function for this distribution is\n", " $$ \\eta \\sim \\frac{1}{\\sqrt{(2\\pi)^m|\\Sigma|}}\\exp(- \\frac{1}{2}\\eta^T \\Sigma^{-1}\\eta) $$\n", " where $|\\Sigma|$ denotes the determinant of $\\Sigma.$ Suppose we have prior knowledge that every entry in $x$ is draw from an i.i.d. Laplace distribution \n", " $$x_i \\sim \\frac{1}{2b}\\exp(-|x|/b).$$\n", " \n", " Derive the negative log-likelihood function for $x$ given (fixed) measurements $y$. Write the complete NLL without throwing away any constants (although you may use Bayes' rule, which implicitly throws away a normalization constant). \n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution\n", "*Put your work here*\n", "\n", "$$p(y|x) = \\frac{1}{\\sqrt{(2\\pi)^m|\\Sigma|}}\\exp\\left( -\\frac{1}{2}(y-Ax)^T \\Sigma^{-1}(y-Ax)\\right)$$\n", " $$p(x) = \\prod_i \\frac{1}{2b}exp(-|x_i|/b) = \\frac{1}{(2b)^n}\\exp(-\\|x\\|_1/b). $$\n", " Using Bayes' rule,\n", " $$p(x|y) \\sim p(y|x)p(x) = \\frac{1}{\\sqrt{(2\\pi)^m|\\Sigma|}}\\exp\\left(- \\frac{1}{2}(y-Ax)^T \\Sigma^{-1}(y-Ax)\\right)\\frac{1}{(2b)^n}\\exp(-\\|x\\|_1/b).$$\n", "The LL is just the log of this thing, which is\n", " $$\\frac{-m}{2}\\log(2\\pi)+\\frac{-1}{2} \\log|\\Sigma| + \\frac{-1}{2}(y-Ax)^T \\Sigma^{-1}(y-Ax) - n\\log(2b) + \\frac{-1}{b}\\|x\\|_1.$$\n", " We can now easily multiple by $-1$ and re-arrange to get the NLL\n", " $$\\frac{1}{b}\\|x\\|_1 + \\frac{1}{2}(y-Ax)^T \\Sigma^{-1}(y-Ax) + \\frac{1}{2}(m\\log(2\\pi)+\\log|\\Sigma|) + n\\log(2b) .$$\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " NOW, throw away all constants that don't affect the solution, and write a minimization problem for finding the maximum a posteriori (MAP) estimator (this final answer should look quite simple). Just write the objective that is minimized - you don't have to write the solution to this optimization problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution\n", "*Put your work here*\n", " $$\\text{minimize} \\quad \\frac{1}{b}\\|x\\|_1 + \\frac{1}{2}(y-Ax)^T \\Sigma^{-1}(y-Ax) .$$\n" ] } ], "metadata": { "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.7.6" } }, "nbformat": 4, "nbformat_minor": 2 }