Please fill out the COURSE SURVEY!

Course Info

Lecture Info

Course Staff

Role Name ____@gatech.edu Office Hours
Prof Jacob Abernethy prof Tuesdays 10am-11am in Klaus 2134
GTA Benjamin Bray benrbray Wednesdays 2-3pm between Klaus 2116 and 2124
TA Shyamal Patel patels Fridays 1-3pm between Klaus 2116 and 2124
TA Rafael Hanashiro rhanashiro3 Mondays 8-10am between Klaus 2116 and 2124

Communication

We will be using Piazza for managing questions about lecture material, homeworks, and course logistics. Please only send us email in the event of a personal emergency or other sensitive matter. If you email us about anything else, we will likely request that you open a Piazza post. (Note that you can make private posts on Piazza to avoid revealing homework solutions publicly.)

Course Description

This is an advanced course on algorithms. That is quite a broad topic, and in particular this semester’s course will focus heavily on algorithms for machine learning. We will be especially interested in diving into the following topics:

While students should have a strong back background in core algorithmic concepts, linear algebra, calculus, and probability, we will review many of these topics early in the course. Students will be required to write code in Python, and we will present much of the material in the course using Jupyter Notebooks.

Hands-on Format

In most courses, students learn about material in class through lecture, and then they practice problem solving on their own by doing homework. In this course we will do the opposite! Students will be required to read material before each class period, and then arrive in class ready to dive into problem-solving. This way, students can familiarize themselves with basic definitions and examples at home, and benefit from one-on-one interaction with the course staff during lecture while working through more challenging aspects of the material. Lecture notes for each day will be posted online at least one week prior to each lecture (with the first week as an exception).

Why do it like this? The lecture format is an outdated way to teach mathematical material, especially for topics such as algorithms and machine learning where it is so easy to play with code and implement ideas. The lecture format also limits the professor’s ability to interact directly with students.

Each class period will have the following structure:

Grading

Homeworks (35%)

Students are allowed, and indeed encouraged, to work on homework with other students in the course. But when solutions are written up, this should be done alone and without the help of other students. Students are required to specify on their writeups which students that collaborated with. If we find solutions that appear even remotely to have been copied, these will be given a zero and the students will be notified.

Attendance+Quizzes (15%)

In-class quizzes will be graded generously, and 50% of the credit will be given simply for showing up. Quizzes will be entered electronically, via a web form, so make sure you have a phone, laptop, or tablet with you in class! If you don’t have access to any of these, please let us know and we will make accomodations. The grading scheme for quizzes will be:

Your five lowest quiz scores will be dropped, which should be enough to account for quizzes missed due to planned or unplanned absences.

Midterm Exam (20%)

The date of the midterm is TBD. More details about the topics and format will be released at a later date.

Final Exam (30%)

The final exam will take place on Thursday, December 5, 2019 from 2:40-5:30pm. The final exam date is fixed by the university, and we are not at liberty to change it.

Reading

Readings will be assigned for you to complete before each lecture. All required reading will either be linked to here or posted to canvas. You are not required to purchase a textbook for this course, but you may find the following books helpful.

Important Dates

Tuesday, 8/20/19 First day of class
Friday, 8/23/19 Schedule change deadline
Monday, 9/2/19 Labor Day
Mon 10/14/19 - Tues, 10/15/19 Fall Recess (no class)
Monday, 10/26/19 @ 4pm Withdrawal Deadline
Wed, 11/27/19 - Sun, 11/31/19 Thanksgiving Break
Tuesday, 12/3/19 Last day of class
Thursday, 12/5/19 @ 2:40-5:30pm Final Exam (determined by final exam matrix)

Homework

Calendar

Schedule

Tentative Schedule (read ahead at your own risk!)

(Tu 8/20/19) Lecture #1: Introduction & Perceptron (Lecture Slides)

No Required Reading

Additional Resources

(Th 8/22/19) Lecture #2: Review of Linear Algebra & Intro to Numpy (Lecture Slides)

Required Preparation before Class

Additional Resources

(Tu 8/27/19) Lecture #3: Convex Geometry (Lecture Slides)

Required Preparation before Class

Additional Resources

(Th 8/29/19) Lecture #4: Review of Multivariable Calculus (Lecture Slides)

Required Preparation before Class

Additional Resources

(Tu 9/3/19) Lecture #5: Convex Functions & Intro to Optimization (Lecture Slides)

Required Preparation before Class

Additional Resources

(Th 9/5/19) Lecture #6: More Calculus & Positive Definite Matrices & Convex Functions (Lecture Slides)

Required Preparation before Class

(Tu 9/10/19) Lecture #7: Gradient Descent for Convex Functions (Lecture Slides)

Required Preparation before Class

Additional Resources

(Tu 9/17/19) Lecture #8: Intro to Supervised ML: Least Squares, Logistic Regression, Support Vector Machines (Lecture Slides)

Required Preparation before Class

(Th 9/19/19) Lecture #9: Intro to Online Learning (Lecture Slides)

Required Preparation before Class

(Tu 9/24/19) Lecture #10: Online Convex Optimization and Online Gradient Descent Lecture Slides

Required Preparation before Class

(Th 9/26/19) Lecture #11: Matrix Decompositions & SVD

Required Preparation before Class

(Tu 10/1/19) Lecture #12: OGD, SGD, and rates of optimization Lecture Slides

Requires Preparation before Class

(Th 10/3/19) Lecture #13: Linear Programming Introduction (Lecture Slides)

Required Preparation before Class

(Th 10/17/19) Lecture #14: Linear Programming Duality (Lecture Slides)

Required Preparation before Class

Additional Resources

(Tu 10/22/19) Lecture #15: Zero-sum Games and the Minimax Theorem Lecture Slides

Required Preparation before Class

Additional Resources

(Th 10/29/18) Lecture #17: Boosting (Lecture Slides)

Required Preparation before Class

Additional Reading

(Th 10/29/18) Lecture #18: Online Learning for Solving Games and LPs (Lecture Slides)

Required Preparation before Class

(Tu 11/5/19) Lecture #19: Second-order Methods & Fixed Point Iteration ([Lecture Slides]https://nbviewer.jupyter.org/github/cs4540-f19/cs4540-f19.github.io/blob/master/lectures/cs4540-f19-lecture19_fixed_points_newtons_method.ipynb))

Required Preparation before Class

Additional Resources

(Th 11/7/19) Lecture #20: Numerical Methods for Linear Systems (Lecture Slides)

Required Preparation before Class

Additional Resources

(Tu 11/12/19) Lecture #21: Numerical Methods for Computing Eigenvalues (Lecture Slides)

Required Preparation before Class

Additional Resources

(Th 11/14/19) Lecture #22: Clustering (F18 Lecture Slides )

Required Preparation before Class

(Tu 11/19/19) Lecture #23: Random Sampling (CANCELLED!)

Required Preparation before Class

(Th 11/21/19) Lecture #24: Markov Chains and Sampling (Lecture Slides)

Required Preparation before Class

(Tu 11/26/19) Lecture #25: Stationary Distributions, and Mixing Times, of Markov Chains

Required Preparation before Class

Additional Resources

(Tu 12/3/19) Final Exam Review Session by Ben Bray

Come with questions!