CSCI 3345 is an introduction to machine learning, focusing on computational systems that can adaptively improve their performance through experience and data. This fundamental capability has transformed how we solve complex problems across numerous domains. From powering the recommendation systems we use daily on streaming platforms, to enabling virtual assistants that understand natural language, to advancing medical diagnosis tools and autonomous vehicles, machine learning has become an integral part of modern technology. The course provides a comprehensive foundation in machine learning, combining theoretical principles with practical applications. Students will explore core concepts and various machine learning approaches, understanding both the mathematical foundations and their real-world implementations. Through hands-on programming assignments, students will experiment with different learning algorithms, gaining practical experience in developing and evaluating machine learning solutions. A key component of the course is a project that allows students to dive deeper into a specific area of machine learning that aligns with their interests.
- Learning Objectives:
After completing the course, students should be able to:- Select and apply appropriate supervised learning algorithms for classification and regression problems (e.g., linear regression, logistic regression, ridge regression, nonparametric kernel regression, neural networks, naive Bayes, support vector machines)
- Recognize different types of unsupervised learning problems, and select and apply appropriate algorithms (e.g., k-means clustering, Gaussian mixture models, linear and nonlinear dimensionality reduction)
- Work with probability (Bayes rule, conditioning, expectations, independence), linear algebra (vector and matrix operations, eigenvectors, SVD), and calculus (gradients, Jacobians) to derive machine learning methods
- Understand machine learning principles such as model selection, overfitting, and underfitting, and techniques such as cross-validation and regularization
- Implement machine learning algorithms such as logistic regression via stochastic gradient descent, linear regression, or k-means clustering
- Run appropriate supervised and unsupervised learning algorithms on real and synthetic data sets and interpret the results
- Prerequisites:
- Programming: You should be familiar with algorithms and data structures. Familiarity with python or similar frameworks for numeric programming will be helpful but is not strictly required. Python (Basics).
- Probability: You should have been exposed to probability distributions, random variables, expectations, etc. Linear Algebra (Essence, Chap 1-4), Multivariate Calculus (Essence, Chap 1, 3-4, 8-9).
- Lecture:
Lectures will be Tuesday and Thursday at 245 Beacon St. Room 229, from 1:30pm to 2:45pm. - Textbooks and Materials:
There is no required textbook for the course. However, the following books (available for free online) can be useful as references on relevant topics:- Deep Learning (DL), Goodfellow, Ian and Bengio, Yoshua and Courville, Aaron, MIT Press, 2016, ISBN: 9780262035613
- Learning from Data: a Short Course, Y. S. Abu-Mostafa, M. Magdon-Ismail, H.-T. Lin.
- Pattern Recognition and Machine Learning (PRML), Christopher C. Bishop, Springer, 2006, ISBN: 9780387310732
- Machine Learning: A Probabilistic Perspective , Kevin Murphy.
- Dive into Deep Learning (D2L), Zhang et al.
- Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow , Aurélien-Géron.
- Grading Policy:
- No exams.
- 30%: Homework Assigenments
- 60%: Final Project (Proposal, Milestone Report, Presentation, and Final Code/Report)
- 10%: Attendance (Including Asking Questions, quizzes)
Instead of a final exam, at the end of the semester you will complete a project working in groups of at most 3 students.