Bert de Vries, Tjalling Tjalkens and Marco Cox
Eindhoven University of Technology, Dept. of Electrical Engineering
Corr. to bert.de.vries@tue.nl
This site contains materials for course 5SSB0 (Adaptive Information Processing) at TU/e.
You can view the lecture notes through the links below:
- 0 - Introduction
- 1 - Machine Learning Overview
- 2 - Probability Theory Review
- 3 - Bayesian Machine Learning
- 4 - Working with Gaussians
- 5 - Density Estimation
- 6 - Linear Regression
- 7 - Generative Classification
- 8 - Discriminative Classification
- 9 - Clustering with Gaussian Mixture Models
- 10- The EM Algorithm
- 11- Continuous Latent Variable Models - PCA and FA
- 12- Factor Graphs and Message Passing Algorithms
- 13- Dynamic Latent Variable Models
- 14- EM as a Message Passing Algorithm
To open the lecture notes in IJulia, download the .ipynb files to your computer and start a Jupyter notebook by
$ jupyter notebook
You will now get a new page in your browser with a list of available notebooks. Alternatively, if you don't have Julia/Jupyter installed on your system, you can use JuliaBox to run the notebooks (see exact instructions below).
To run the interactive code examples in the lecture nodes, the following Julia packages are required: Cubature
, DataFrames
, Distributions
, Interact
, PyPlot
. To install the required packages, execute:
map(Pkg.add, ["Cubature", "DataFrames", "Distributions", "Interact", "PyPlot"])
Follow these instructions to run the code examples from the lecture notes online through JuliaBox.
-
(Create account) Go to https://www.juliabox.org/, create an account and log in.
-
(Necessary JuliaBox hack) Click the 'IJulia tab', and then create a new text file using
New -> Text File
. Paste the following content in the new file:VERSION >= v"0.4" && splice!(Base.LOAD_CACHE_PATH, 3)
Then, press
ctrl+s
to save the file and close the browser tab. Back in the IJulia file explorer, click the checkbox in front ofuntitled.txt
, clickRename
, and rename the file to.juliarc.jl
. -
(Install required packages) Go to the
Console
tab, and then start a Julia v0.4.3 shell by typing/opt/julia-0.4.3/bin/julia
In the Julia shell, execute the following command to install all required packages:
map(Pkg.add, ["Cubature", "DataFrames", "Distributions", "Interact", "PyPlot"])
Afterwards, type
exit()
to quit Julia. -
(Import lecture notes into JuliaBox) Go to the
Sync
tab, and add the lecture notes git repository through the following actions: -
Paste
https://github.com/bertdv/AIP-5SSB0.git
in theGit Clone URL
field -
Click with the mouse in the
branch
field. You should getmaster
in thebranch
field andAIP-5SSB0
in thejuliabox
field. -
Press the plus-sign.
You can now open the lecture notes by going to the IJulia
tab (press the refresh button if the folder AIP-5SSB0
does not show up). Navigate to a specific lesson and click the .ipynb
file to open the notebook.
This procedure will only be able to generate the PDF bundle for all lessons if ForneyLab is available as it is used for the later chapters. This is not publicly available software, so the functionality is limited for those who do not have access to it.
Get ForneyLab.jl. Either clone it in the root of the project or modify the path
in the Dockerfile to point at your own installation. If you do not have access
to it, but do want to generate a PDF of the remaining lessons, just create an
empty ForneyLab.jl
directory.
Install Docker from https://www.docker.com.
Finally from the root directory of the project issue
$ docker build -t aip-5ssb0-bundler .
$ docker run --rm \
--volume ${PWD}/lessons:/aip-5ssb0-bundler/lessons \
--volume ${PWD}/output:/aip-5sbb0-bundler/output \
aip-5ssb0-bundler
to obtain a bundle.pdf
file containing all lessons in the output
directory.
Adaptive Information Processing (5SSB0) by Bert de Vries, Tjalling Tjalkens and Marco Cox is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Based on a work at https://github.com/bertdv/AIP-5SSB0.