{ "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 \n", "Upload your notebook (a file with extension \"ipynb\") to [ELMS](https://umd.instructure.com/courses/1337559). " ] }, { "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", "*Put your work here*\n", "\n", "#### Sub-additivity \n", "*Put your work here*\n", "\n", "#### Separability: \n", "*Put your work here*" ] }, { "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*" ] }, { "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": 2, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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$, $x_o$ contains the odd-indexed components, and $N$ is even. 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: You can prove 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[i].$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proof\n", "*Put your work here*\n" ] }, { "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}^N$ 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_i|/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" ] }, { "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). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution\n", "*Put your work here*\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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 }