Review of EE2211: Introduction to Machine Learning
Updated: Jun 7, 2021
Year took: AY20/21 Semester 1
EE2211 introduces basic machine learning concepts, the mathematics behind them, and their application. The content covered includes supervised and unsupervised learning, overfitting, regularization, decision forest, and evaluation metrics. As I took this module during an online semester, my experience may be different from yours. The assessment criteria are as follows:
Assignment 1 – 5%
Assignment 2 – 15%
Assignment 3 – 20%
Mid-term – 30%
Final – 30%
Another computing module? Oh my god please have mercy on me. (Source)
Every week, there is a 2-hours lecture on Zoom. Lectures were webcast and accessible on Luminus via conferences. Before recess week, probability and statistics, linear equations, and regression were covered. Some mathematical concepts were covered in H2 mathematics or GER1000, so I found the content and mathematics to be relatively easy to understand. The content taught after recess week were overfitting, optimization, decision tree, evaluation metrics, and neural networks. These topics were much more complex, and I usually left the lecture confused. However, tutorials helped immensely in bridging the knowledge gap.
The three lecturers (Prof Li, Prof Thomas, and Prof Toh) were friendly, responsive to questions, and willingly clarifies concepts when asked. They will answer most questions students ask on Zoom without hesitation. The positive learning environment helped to relieve any pressure or stress I had whenever I sent my questions to the lecturer.
Tutorials started on week 2 and it was a weekly 2-hours session. For EE2211, various programs can be used for coding. I used Spyder, but you may use Jupyter or Visual Studio Code too.
The tutorial questions illustrated the usage and importance of machine learning concepts. It helped me to visualize, understand, and appreciate the topic for the week. I felt that tutorials were mostly doable except for the coding questions. During lectures, coding was not taught because the focus was on the various machine learning concepts and the mathematics behind them. Although skeleton codes were provided in the lecture notes, beginners like myself struggled to make much sense of it. I did not know what the logical thought process was behind the tutorial questions. Thus, I learned most of the coding for EE2211 from the tutorials instead.
My tutor was Christopher, and he would patiently explain the rationale and function behind each line of code for every tutorial. I found it immensely helpful as a beginner to coding (besides taking CS1010E and getting a C+ on it). In the latter half of the module, the coding answers became extremely long. Christopher broke the code into small fragments and made it easy to understand thanks to his detailed explanations. However, I know that not every tutor explains as well as mine and I was lucky to have a good tutor.
My only complaint is tutorial 6. As the mid-term tested chapters 1 to 6 (inclusive of tutorial 6), the lecturer went through the tutorial immediately after lecture 6. The session was recorded so I tried the tutorial first before reviewing it. However, the lecturer rushed through the tutorial and did not provide good explanations. Although the lecturer tried not to hold the class back, I was still very disappointed at his poor explanation.
Paying $4000+ per semester to learn from Youtube? Sounds about right. (Link)
Three assignments making up 40% of the final grade were given throughout the semester. Every EE2211 assignment had a 3 or 4-weeks deadline with assignment 1 being released in week 4. Thankfully, EE2211 assignments are much easier than CS1010E assignments. It had always left me terribly distressed due to its sheer difficulty.
The assignments were manageable as they were similar to tutorial questions. Thus, I simply made inferences from tutorial examples to complete the assignments. Assignment 1 covered the concept of linear regression, assignment 2 tested regularization and polynomial regression while assignment 3 touched on decision trees and cross-fold validation. It is possible to score full marks for all assignments and I would strongly recommend doing so.
Unfortunately, many students lost marks because of small mistakes. The marking is done by importing the function from the python file into a system. Hence, the wrong file name or wrong variable name can cause heavy penalties. To avoid this problem, I typed my codes on a separate file and ran it before I copied it into the sample file as a function. Do run the function as well to check if there are any errors. Verify the size of the outputs with the output size given into the assignment to check if you are on the right track.
Fortunately, EE2211 does not check for bad codes. (Source)
The mid-term was on recess week and chapters 1 to 6 were tested. Although students complained about having an exam during recess week, the professors decided to go ahead with it. The mid-term was open book and was 2 hours long. It compromised of true or false questions, MCQs, and short answer questions. The paper tested our understanding of machine learning concepts, algorithms and there were minimal coding questions. I heaved a sigh of relief because the coding questions were manageable.
Similar to mid-terms, the final paper focused on core machine learning concepts. The paper compromised of true or false questions, MCQs, and short answer questions. However, true or false questions carry negative marking now. For every correct answer, we were awarded 1.5 marks while for every wrong answer, we were awarded -1 marks. If you are unsure of your answer, I suggest leaving the question blank instead to avoid a penalty.
During my revision, I compiled all the codes for various machine learning techniques into a word document. It was immensely useful because I could quickly source the code I needed during the exam. I just had to copy and paste it into Spyder and modify the code according to the question.
When I heard that I was going to take another computing module, my heart sank. I had a horrifying experience with CS1010E and I was not ready to cope with the enormous stress. Fortunately, EE2211 proved to be much more manageable. There were sufficient learning materials for students and Christopher did an excellent job of explaining the codes used in the tutorial.
Not gonna lie, this is how I feel every time. (Source)