CPS 271
Machine Learning
- Required Text
Pattern
Recognition and machine Learning by Christopher
M. Bishop. Be sure to download the errata!
- Other texts and References
The Elements of Statistical Learning: Data Mining,
Inference, and Prediction, Trevor Hastie, Robert Tibshirani,
and Jerome Friedman. The full text is available as a pdf from the
official book
web page.
Neural Networks for Pattern Recognition, Christopher
M. Bishop. (It's not as much about neural networks as you might expect
given the title. This is a good overview of many machine learning
topics, but it is largely superseded by the required text.)
An Introduction to Computational Learning Theory,
Michael J. Kearns and Umesh V. Vazirani. (A good introduction to
computational learning theory - not really the focus of the class
though.)
Reinforcment Learning, An Introduction, Richard
S. Sutton and Andrew G. Barto. (An accessible introduction to
reinforcement learning that is also available online.)
Machine Learning, Tom M. Michell. (An introduction to
classic concepts in machine learning - a little dated now.)
Convex Optimization, Stephen Boyd and Lieven
Vandenberghe. (Very thorough treatment by real experts and
the full text is available online.)
Matrix Analysis
and Applied Linear Algebra: The entire text is available
for free online if you don't mind the very aggressive
watermarking.
The
Matrix Cookbook
Tom
Minka's Matrix Tutorial
Tutorials
An Introduction to
Computational Complexity, by Kimon Spiliopoulos. (Parts A-D
give a concise overview of some key concepts - a good read for non
computer scientists who want to get up to speed quickly.)
An Introduction to Langrange Multipliers (The classic "milkmaid problem"!)
Rabiner's HMM Tutorial
LaTeX
LaTeX
Tutorial from Cornell
A Not So Short
Introduction to LaTeX
A LaTeX course designed by one of our TAs when he was an undergrad
TexShop for
Macs
LaTeX info for
Ubuntu
MikTeX for Windows
Useful Code and Programs
matlab is the official programming language for CPS 271. Duke students should be able to access matlab in some form. Please contact us if you have difficulty. matlab has extensive documentation and guides accessible from within the matlab environment. Extensive online help and documentation are also available.
octave is an open source
alternative to matlab. It is included with many linux distributions and
is now included with the latest version of cygwin, a linux-like environment for Windows.
Weka is a great
environment for learning and experimenting with a variety of machine
learning algorithms.
An extensive list of SVM related
software is available.
ghostview is a free postscript
interpreter that will let you viewer older papers stored in
postscript format. (Newer papers tend to be stored in pdf.)
Virtual Box is a free
virtual machine that will allow you to run a second OS inside of a
window on your current Windows, Linux, Solaris, or OS X machine.
This is useful if you want to try software tools that are not
available for your native OS.
gnuplot is a useful
program for plotting arbitrary functions.
CutePDF Writer is a free tool
for generating PDFs from within Windows. It appears as a printer
and has no ads or other distractions,
so it's quite painless to use. (From Mac OS or linux, you can use
the tools included with the OS distribution.)
SVM applet
from AT&T research.
Perceptron Demo
k-means demo
Other Resources
The UC
Irvine Machine Learning Repository contains many
benchmark data sets.
The Reinforcement
Learning Repository at U. Mass. has code and implementations of
benchmark domains for reinforcement learning.
The RL Glue
project aims to provide a standard interface for reinforcement
learning agents and environments.
videolectures.net has
videos and slides from many academic subjects, but is heavily
weighted towards CS and has talks from several machine learning
conferences.
Yann LeCun's handwritten digit database is a classic benchmark for machine learning algorithms.
kaggle data
prediction competitions