Machine Learning for Computer Systems
This course will cover topics at the intersection of machine learning and systems, with a focus on applications of machine learning to computer systems. Topics covered will include applications of machine learning models to security, performance analysis, and prediction problems in systems; data preparation, feature selection, and feature extraction; design, development, and evaluation of machine learning models and pipelines; fairness, interpretability, and explainability of machine learning models; and testing and debugging of machine learning models.
Scope and focus. This is a practical, hands-on introduction to the machine-learning workflow — data, features, models, evaluation, and deployment — taught through applications to computer systems, and primarily through computer networking, which is the instructor’s area of expertise and the domain of the companion textbook, Machine Learning for Networking. The ML concepts are general and transfer to any systems domain, but expect the examples, datasets, and assignments to be networking-centric. If you are looking for a theory- or math-first ML course, or one that ranges broadly across operating systems, databases, and architecture, this is not that course.
You can and should think of this course as a practical hands-on introduction to machine learning models and concepts that will allow you to apply these models in practice. We’ll focus on examples from networking, but you will walk away from the course with a good understanding of how to apply machine learning models to real-world datasets, how to use machine learning to help computer systems operate better, and the practical challenges with deploying machine learning models in practice.
More details are in the course syllabus.
Class agenda for each meeting is in the agenda.
| Lecture | Topic | Reading |
|---|---|---|
| 1 | Introduction (Packet Capture) |
Ch. 1 |
| Use Cases | ||
| 2 | Security (Scanning) |
Ch. 2.1 |
| 3 | Performance (QoE Inference) |
Ch. 2.2 |
| 4 | Resource Optimization | Ch. 2.3 |
| Data From Computer Systems | ||
| 5 | Data Acquisition (Data Acquisition) |
Ch. 3.2–3.3 |
| 6 | From Data to Analysis (Feature Extraction) |
Ch. 3.4 |
| Machine Learning Pipeline | ||
| 7 | Data Preparation and Representation (Data Preparation) |
Ch. 4.1 |
| 8 | Model Training and Evaluation (Model Evaluation) |
Ch. 4.2–4.3 |
| Supervised Learning | Ch. 5 | |
| 9 | Non-Parametric and Probabilistic Models (Naive Bayes) |
|
| 10 | Linear and Polynomial Regression (Linear Regression) |
|
| 11 | Logistic Regression and SVMs (Logistic Regression) |
|
| 12 | Trees and Ensembles (Trees and Ensembles) |
|
| 13 | Deep Learning (Deep Learning) |
|
| 14 | Learning Traffic Representations (nPrint) |
|
| Unsupervised Learning | Ch. 6 | |
| 15 | Dimensionality Reduction (Dimensionality Reduction) |
|
| 16 | Clustering (Clustering) |
|
| Generative Models | Ch. 7 | |
| 17 | Diffusion Models (Diffusion Models) |
|
| 18 | State-Space Models (State-Space Models) |
|
| 19 | Transformers (Large Language Models) |
|
| Bonus Topics | Ch. 8 | |
| 20 | Timeseries Analysis (Timeseries) |
|
| 21 | Reinforcement Learning (Reinforcement Learning) |
|
| 22 | Autoencoders (Autoencoders) |
|
| 23 | Model Performance and Maintenance |
Please come to class having done the reading.
The course has a midterm and a final. The permitted-materials policy is the same for both and is printed on each exam: closed-book and closed-notes except for one 8.5×11-inch sheet of paper with handwritten notes (both sides permitted); no electronic devices or other materials. See the syllabus for details.
Past exams from prior years are available to everyone as practice material: past midterms and past finals.
The material below is strictly optional unless otherwise noted, although you may find it useful.