We expect students will have regular access to a personal computer, which you'll need for attending every in-class session as well as completing all homeworks and projects. Your computer should be capable of running Python processes as well as running a web browser that displays graphics visually.
To attend each class successfully, you'll need to be able to do two things at once on your machine:
- run Zoom to interact with others
- run an Jupyter notebook either locally (strongly recommended) or perhaps via your browser using a service like Google Colaboratory.
Running both simultaneously should be doable for most modern laptops/desktops (anything from around 2012 or later).
If you have concerns about accessing sufficient resources (internet connection quality, lack of access to a computer), please contact instructors via Piazza ASAP. We care deeply about inclusion and we want you to be successful. We can work together with Tufts staff to help you get resources you need. Don't hesitate; please try to work through problems early.
For this course, we require programming assignments to be implemented in Python 3.6+ using a defined environment. Using a consistent language and set of packages allows us to talk about implementation details in class and makes grading solutions more consistent and time-efficient.
Students are responsible for maintaining their own Python software environment on a personal computer.
We highly suggest that you consider the free 'conda' environment manager from Anaconda, Inc.: https://conda.io/docs/user-guide/getting-started.html
For getting a custom anaconda environment setup in Colaboratory, this might be helpful: https://rjai.me/posts/google-colab-conda/
Every day in class, you'll want to work through a provided 'lab' notebook, distributed as a `.ipynb' file from our course starter code repository on Github.
You'll want to download this file and run it on your machine.
To launch a specific notebook file named
MyNotebook.ipynb, here's what you'll do in your Terminal (Linux/Mac) or Command Prompt (Windows):
# Before we can start, be sure your current directory contains `MyNotebook.ipynb` # First, activate our course conda environment $ conda activate comp135_2020f_env # Second, launch the notebook server and direct it to open `MyNotebook.ipynb` $ jupyter notebook MyNotebook.ipynb # Should automatically open a browser and take you to an interactive notebook session. Or click `localhost:8888` link below.
For more help on launching a notebook, see Jupyter notebook documentation
If you don't know much about Jupyter, the resources below might be helpful
How to download a Jupyter notebook and open it in your browser
'Play with Data in Jupyter' by Lorena Barba
To gain some fundamental Python skills (assuming you know other programming), we recommend:
Statistical Pattern Recognition (COMP 136) at Tufts
- 2020 spring, taught by Prof. Mike Hughes
- 2019 spring, taught by Rishit Sheth, Ph.D.
- 2017 fall and earlier, with Prof. Roni Khardon (sorry, website no longer available)
Deep Neural Networks (COMP 139) at Tufts
Reinforcement Learning (COMP 138) at Tufts
Bayesian Deep Learning (COMP 150-BDL) at Tufts
- 2020 spring, with Prof. Marty Allen
- 2019 fall, with Prof. Marty Allen
- 2019 spring, with Prof. Mike Hughes
- 2018 fall, with Prof. Liping Liu
- 2018 spring, with Prof. Liping Liu
- 2017 fall, with Prof. Roni Khardon (sorry, website no longer available)
- 2016 spring, with Kyle Harrington
For machine learning research activity at Tufts, see the ML Research Group Website:
For a recent listing of ML courses, see:
For current ML research opportunities for students, see:
Here are some useful resources to help you catch up if you are missing some of the pre-requisite knowledge. Please contribute new resources by starting a topic on the class discussion forum.
- Key Concepts:
- functions of a single variable and derivatives
- functions of multiple variables, partial derivatives, and gradients
- vector-valued functions of multiple variables, and gradients
- chain rule of derivatives
- how to find the maxima or minima of single-variable functions
- 'Ch. 5: Vector calculus' of Math for Machine Learning textbook: https://mml-book.github.io/book/mml-book.pdf#page=145
- Essentially, the material in Sec. 5.1, 5.2, and 5.3 (up to but not including the Jacobian) should be somewhat familiar
- Key concepts:
- matrix multiplication
- matrix inversion
- Goodfellow et al's chapter on Linear Algebra: http://www.deeplearningbook.org/contents/linear_algebra.html
- Immersive Linear Algebra: http://immersivemath.com/ila/
- Essence of Linear Algebra videos: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
- 'Computational Linear Algebra for Coders' course by fast.ai: https://github.com/fastai/numerical-linear-algebra/blob/master/README.md
- Key concepts:
- Sum rule and product rule of probability
- Bayes theorem and associated algebra
- Continuous and discrete random variables
- Probability review notes from Prof. David Blei (Columbia Univ.): http://www.cs.columbia.edu/~blei/fogm/2016F/doc/probability_review.pdf
Other Recommended Intro ML Courses
CS 291a at UC-Irvine, taught by Prof. Alex Ihler
Video lectures here: * https://www.youtube.com/playlist?list=PLaXDtXvwY-oDvedS3f4HW0b4KxqpJ_imw