COMPSCI 4ML3: An Honest Review

My Thoughts on McMaster's Introduction to Machine Learning

I recently completed McMaster’s inaugural offering of COMPSCI 4ML3: Introduction to Machine Learning taught by Dr. Hassan Ashtiani. Motivated by my enthusiasm for machine learning as well as lack of reviews of this course, I wanted to write a quick blog post to describe my experience in this course for students who are looking to take this course in the future.

A deep recurrent neural network

An example of an artificial neural network, one of the algorithms discussed in COMPSCI 4ML3.

Note that I am simply a recent grad who is creating a blog so that those who come after me can have a resource that I wish I had going through the Software Engineering and Management (Co-op) program. I am NOT involved in the organization, teaching, or evaluation of assignments for this course in any capacity. The format of the course may change from when I took it. Your experience in this course may differ from mine depending on your prior knowledge, preparation, interests, strengths, weaknesses, and other factors. Always speak to the professor to get the latest information about this course.

1. Some Quick Statistics

Here are some ball-park statistics I compiled about my experience in COMPSCI 4ML3. Your experience may differ.

  • Overall Rating: 5 / 5
  • Perceived Difficulty: 4.5 / 5 (very difficult)
  • Average Time Spent per Week: Approximately 12 hours excluding lectures/tutorials
  • Prior Knowledge of the Subject: Completed SFWRENG 4TE3: Continuous Optimization Algorithms, SFWRTECH 4DA3: Data Analytics and Big Data, SFWRTECH 4DM3: Data Mining, COMMERCE 4KG3: Data Mining and Business Intelligence, COMMERCE 4MI3: Marketing Analytics, Udacity’s Artificial Intelligence Nanodegree, and audited Andrew Ng’s Machine Learning MOOC on Coursera

2. What Should You Know Before Taking COMPSCI 4ML3?

COMPSCI 4ML3 is a math-intensive introduction to the theoretical aspects of machine learning. The professor went into great depth about how the fundamental machine learning algorithms worked and proved their properties using mathematics. The assignments reinforced my knowledge of the course material by exploring variations of the algorithms taught in class and required me to prove different aspects of the algorithms examined. Towards the end of the course, I was also given the opportunity to code different algorithms to compare their performance.

Before taking COMPSCI 4ML3, I recommend prior exposure to the following topics:

  • Calculus
  • Linear Algebra
  • Probability and Statistics
  • Complexity (e.g. big-O notation)

Formally, the prerequisites for COMPSCI 4ML3 for the 2019-2020 academic year are:

One of COMPSCI 2C03 or SFWRENG 2C03 or SFWRENG 2MD3. One of STATS 1L03, STATS 2D03, STATS 3Y03 is recommended. One of COMPSCI 4O03 or 4X03 or SFWRENG 3O03 or 4X03 is recommended.

Note that calculus and linear algebra are not taught in the prerequisite courses; however, I strongly recommend knowing at least the basics before taking COMPSCI 4ML3.

3. What Will You Learn in COMPSCI 4ML3?

COMPSCI 4ML3 goes into great depth into fundamental machine learning algorithms, and it also provides a quick introduction to some of the more advanced topics. I have listed the topics that were covered when I took COMPSCI 4ML3 below. Note that the topics were not necessarily covered in the order listed.

Prediction Algorithms: How to Make Predictions Given Data

  • Maximum Likelihood Estimation
  • Regression
  • Regularization

Classification Algorithms: How to Label Unseen Data

  • Artificial Neural Networks
  • Bayes Classification
  • Decision Trees
  • Logistic Regression
  • Multiclass Classification
  • Nearest Neighbour Classification
  • The Perceptron
  • The Support Vector Machine

Note that some of these algorithms can also be adapted for prediction purposes.

Evaluation Techniques: How to Determine If Your Model is “Good”

  • Bias-Variance Decomposition
  • Overfitting and Underfitting
  • The Confusion Matrix

For the 2019-2020 academic year, the official course description is as follows:

Regression, Classification and Decision Theory, Bias-Variance Trade-off, Linear Models, Kernel Methods, Probabilistic Models, Neural Networks, Model Aggregation, Unsupervised Learning.

4. Final Thoughts

Overall, I found COMPSCI 4ML3 to be challenging, yet rewarding and enjoyable at the same time. Dr. Ashtiani was a knowledgeable professor who was patient and willing to explain all of the concepts in a clear and concise manner until all of the students understood the material.

However, be prepared to spend a lot of time outside the classroom doing additional readings, and re-working the proofs presented in class. In order to do well in this course, you will need to thoroughly know and understand how each of the proofs presented were derived. Rest assured that if you keep up with the proofs and your studying, you will eventually get better at proof-writing.

The assignments in this class were expertly crafted to push students to their limits. I was challenged to think and apply myself beyond what was taught in class, so that when I finished the assignment, I was confident that I fully understood the material - not only was I able to recite the material taught, but I was also able to readjust the theory if the initial assumptions changed.

Keep in mind that this course is theory intensive. You will be writing mathematical proofs as well as computer code. If you prefer to just learn how different algorithms are used in business, then courses such as COMMERCE 4KG3: Data Mining and Business Intelligence or COMMERCE 4MI3: Marketing Analytics might be a better fit for you. Otherwise, if you are more interested in applying machine learning algorithms to problems, then you might want to consider courses such as SFWRTECH 4DA3: Data Analytics and Big Data and SFWRTECH 4DM3: Data Mining.

Having come into the class with a basic understanding of how to use artificial intelligence/data mining/machine learning in business settings, this class did an amazing job of teaching me the theory behind the algorithms that I was previously taught to use. Knowing the theory will allow me to better understand the behaviour of my models, so that I can make informed decisions about the algorithms to use next time I use machine learning at work. Instead of approaching machine learning as a black-box art form, I now also have basic capabilities to approach machine learning as a science.

Ultimately, if you are also a machine learning enthusiast like me, who is looking to deepen your understanding of machine learning algorithms, then this is the right course for you. This course will teach you all of the theory you need to know so that you have a strong grasp of the fundamentals, and the professor will also do his best to ensure that you fully understand all of the class material. After this course, you will be in a strong position to continue to study and use machine learning algorithms in your projects. If you see yourself using machine learning in the future, I strongly recommend taking this course to learn more.

DISCLAIMER: All opinions expressed in this blog post are my own and do not necessarily reflect that of any company or organization that I am affiliated with. I am not an academic advisor, nor do I hold/have held any position at McMaster that would qualify me to provide academic advice to current McMaster students. This post is a reflection of my own personal experience, and your mileage following my advice may vary depending on personal circumstances. Follow my advice at your own risk. I assume no responsibility for any loss or damages incurred as a result of this blog post.