Skip to content

Overview

decorative image of a robot teaching machine learning at Duke
generated by an OpenAI applied ML system
  • Class Meeting. Mondays and Wednesdays 10:05 – 11:20 am in Gross Hall 103 (recordings available on Canvas).
  • Instructor. Brandon Fain. Office hours:
    • 11:20-11:35 am Mondays & Wednesdays (after class) in Gross Hall 1st floor lobby,
    • 3-5 pm Wednesdays in LSRC D104,
    • or by appointment in-person or on zoom (email in advance to set up a time).
  • Graduate Teaching Assistant. Minxing (Matt) Zhang. Office Hours:
  • Course Platforms:
    • Canvas learning management system
    • Ed Discussion forum for questions (accessible from Canvas)
    • Gradescope submission and grading (accessible from Canvas)

Course Description

Machine Learning (ML) studies techniques to automatically learn patterns from data rather than explicitly programing a behavior. This course explores applications of machine learning in tabular data, computer vision, human language, and reinforcement learning. Linear, logistic, and deep artificial neural networks of different architectures including perceptrons, convolutional neural networks, and transformers, will be utilized. Students will apply all techniques on real data using modern software. Societal and ethical considerations of ML will be examined.

References

The course utilizes several reference texts. All readings are freely (and legally) available online; you are not required to purchase anything for this course.

Learning Objectives

  1. Program in Python using NumPy, Scikit-Learn, and PyTorch
  2. Train, validate, tune, and test a predictive models including linear and neural models
  3. Understand, measure, and explain common machine learning performance metrics including accuracy, precision, recall, receiver operator characteristic curve, and cross entropy
  4. Design and train an artificial neural network (ANN) using back propagation and stochastic gradient descent
  5. Recognize and classify images using convolutional neural networks (CNNs)
  6. Apply transformer architectures to generate text using large language models
  7. Plan behavior using reinforcement learning with deep neural network function approximation
  8. Interpret and explain recent research advances in machine learning
  9. Consider the integrated questions of interpretation, bias, transparency, and fairness in machine learning

Background and Prerequisites

Computer Science 201 Data Structures and Algorithms is required as a prerequisite. You are expected to have experience programming small to medium sized software projects, to be familiar with standard data structures such as arrays, lists, Strings, and maps, to be able to read code and documentation, and to be able to debug a program.

Previous experience with the Python programming language will be helpful but is not required. No previous machine learning experience is required. Some mathematics will be necessary to correctly describe the concepts and algorithms we study. To get the most out of the course, you should be comfortable with introductory college-level mathematics (at the level of a Calculus 1) and willing to learn and ask for help when you encounter new concepts and notations. However, this is an applied course without higher math prerequisites, and you will not be expected to write proofs, complex derivations, etc. in order to succeed in the course.