Dutch Data Science Week Workshop
- Signal processing applications
- Convolution
- Fourier analysis
- 1D signals: filter banks, pooling
- 2D signals: bag-of-words
- PCA / LDA
- Convolutional neural network
- Speaker / gender / age / nationality recognition...
- ...based on Fourier / bag-of-words / convnet
This repo uses conda's virtual environment for Python 3.
Install (mini)conda if not yet installed by following the instructions on https://conda.io/docs/install/quick.html.
Create the environment using the environment.yml config file:
$ cd /sp/for/datascience/ddsw/folder
$ conda env create -f environment.yml
$ source activate dsp
If that doesn't work, inspect the environment.yml and install the packages you need one by one.
Then, start a Jupyter notebook server
$ jupyter-notebook
and pick the notebook you want to run.
Or view a notebook as a presentation (if applicable; this is indicated by the presence of 'Slide Type' dropdowns in the top right of the notebook cells)
$ # possible presentations are intro.ipynb, feature-engineering.ipynb and feature-learning.ipynb
$ jupyter nbconvert intro.ipynb --to slides --post serve
In the hackathon we will apply Digital Signal Processing methods to audio sigals. Provided is a handful of speech samples and associated metadata of the speakers. Based on that, we'll try to recognize the speaker's identity/gender/age/etc using machine learning. See hackathon/hackathon.ipynb
for the assignment; or a couple of my implementations in hackathon/hackathon-answers.ipynb
.
In fourier-lab.ipynb
we will look at how fourier analysis can help us to find periodicity in a timeseries, and we will use FFT to identify outliers in the sunspots dataset. As a bonus exercise (more of a thought experiment), we look at how we can use FFT for extrapolation. See fourier-lab-answers.ipynb
for possible solutions.
In convnet-lab.ipynb
we implement an end-to-end transfer learning pipeline using Keras. We will train a CNN on the first 5 digits of MNIST, and use the features learnt at this step to classify the last 5. A student should be able to solve this exercise by following the lecture material in convnet.ipynb
; solutions are in convnet-lab-answers.ipynb