Last active
December 31, 2015 09:29
-
-
Save jaidevd/7967600 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass{beamer} | |
% | |
% Choose how your presentation looks. | |
% | |
% For more themes, color themes and font themes, see: | |
% http://deic.uab.es/~iblanes/beamer_gallery/index_by_theme.html | |
% | |
\mode<presentation> | |
{ | |
\usetheme{Warsaw} % or try Darmstadt, Madrid, Warsaw, ... | |
\usecolortheme{default} % or try albatross, beaver, crane, ... | |
\usefonttheme{default} % or try serif, structurebold, ... | |
\setbeamertemplate{navigation symbols}{} | |
\setbeamertemplate{caption}[numbered] | |
} | |
\usepackage[english]{babel} | |
\usepackage[utf8x]{inputenc} | |
\usepackage{quoting} | |
\usepackage{graphicx} | |
\usepackage{listings} | |
\usepackage{amsmath} | |
\usepackage{hyperref} | |
\lstset{language=Python} | |
\title[CS Solvers in Python]{Compressed Sensing Solvers in Python} | |
\author{Jaidev Deshpande} | |
\institute{Enthought, Inc} | |
\date{December 15, 2013} | |
\begin{document} | |
\begin{frame} | |
\titlepage | |
\end{frame} | |
% Uncomment these lines for an automatically generated outline. | |
%\begin{frame}{Outline} | |
% \tableofcontents | |
%\end{frame} | |
\section{Introduction} | |
\begin{frame}{Introduction - What is Compressed Sensing?} | |
\begin{itemize} | |
\item The very fact that data can be compressed means that too many measurements were taken. | |
\item Problem: Compressing White Noise | |
\item What would be the sampling rate? | |
\item No compression possible when $F_{s} \to \infty$ | |
\item Most real signals are not white noise! | |
\end{itemize} | |
\vskip 1cm | |
\end{frame} | |
\section{Sampling Theorem} | |
\begin{frame}{Nyquist Sampling Theorem} | |
\begin{quotation} | |
In order to accurately reconstruct an analog signal having a finite bandwidth $W$, it must have been sampled with atleast twice that bandwidth. | |
\end{quotation} | |
$$F_{s} >= 2W$$ | |
\end{frame} | |
\begin{frame}{Nyquist Sampling Theorem} | |
\includegraphics[trim=2in 0 0 0,clip=True,scale=0.25,width=5in]{nyquist} | |
\end{frame} | |
\subsection{Magic Reconstruction} | |
\begin{frame}{The Magic Reconstruction Problem} | |
\begin{itemize} | |
\item Appeared in Cleve Moler's blog\footnote{\url{http://www.mathworks.in/company/newsletters/articles/clevescorner-compressed-sensing.html}} in 2010 | |
\item Sequel to "The World's Simplest Impossible Problem"\footnote{\url{http://www.mathworks.in/company/newsletters/articles/the-worlds-simplest-impossible-problem.html}} from 20 years ago. | |
\end{itemize} | |
$$ | |
\left[\begin{smallmatrix} m & n \end{smallmatrix}\right] | |
\left[\begin{smallmatrix} \frac{1}{2} \\ \frac{1}{2}\end{smallmatrix}\right] | |
= 3 | |
$$ | |
$$ | |
Ax = b | |
$$ | |
\end{frame} | |
\begin{frame}{Underdetermined system of equations} | |
\lstinputlisting[language=Python, frame=single]{pinv_demo.py} | |
\end{frame} | |
\begin{frame}{Underdetermined system of equations} | |
\lstinputlisting[language=Python, frame=single]{pinv_demo2.py} | |
\end{frame} | |
\begin{frame}{Sparsity and the $L_{1} norm$} | |
\begin{itemize} | |
\item Why is the $L_{2}$ norm not sufficient?\footnote{\url{http://scikit-learn.org/stable/auto_examples/applications/plot_tomography_l1_reconstruction.html}} | |
\item LASSO = Least Absolute Shrinkage and Selection Operator | |
\item Also known as $L_{1}$ magic. | |
\item Implementations in Python: | |
\begin{itemize} | |
\item \href{http://cvxopt.org}{cvxopt} - many experimental implementations | |
\item \href{https://bitbucket.org/liubenyuan/pybsbl}{PyBSBL} - Amazing use of the scipy.sparse module | |
\item \href{http://code.soundsoftware.ac.uk/projects/pycsalgos}{PyCSAlgos} - WIP, simple adaptations of experimental MATLAB code. | |
\item \href{http://aspics.krzakala.org/}{ASPICS} - Badly documented, very unreadable. | |
\item \href{https://sites.google.com/site/stephanegchretien/twostage}{Two Stage $L_{1}$ approach} - Stephane Chreitin | |
\item \href{https://sites.google.com/site/stephanegchretien/twostage}{SPAMS} (SParse Modeling Software) - Alexandre Gramfort - Best of the lot, sparsely documented, seems short-lived. | |
\end{itemize} | |
\end{itemize} | |
\end{frame} | |
\begin{frame}{Summary} | |
\begin{itemize} | |
\item Compressed sensing software remains largely inaccessible to Pythonistas | |
\item Too much bad code | |
\item Very hot topic in signal processing / data compression | |
\item Perfect opportunity to dive in! | |
\item How? | |
\end{itemize} | |
\end{frame} | |
\begin{frame}{Come, contribute to scikit-signal} | |
\begin{itemize} | |
\item \url{http://github.com/scikit-signal} | |
\item Started by David Cournapeau and yours truly in mid 2012 | |
\item Most work focuses on time-frequency analysis, need to diversify | |
\item Looking for developers! | |
\end{itemize} | |
\end{frame} | |
\begin{frame} | |
Slides hosted at \url{https://gist.github.com/jaidevd/7967600} | |
\end{frame} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment