Codementor Events

Learning Machine Learning

Published Nov 28, 2018
Learning Machine Learning

Unwiring self defined limits by completing the Stanford University Machine Learning Course by Andrew Ng.

This article consists of 2 parts:

  1. A personal story about overcoming challenges with the help of expert guidance
  2. An overview of the Machine Learning course

Part 1

Until my first semester of college, I enjoyed taking math classes, and was placed in AP courses through high school. During my first semester of college, I was placed in calculus 2, without having completed college level calculus 1. I remember questioning the registrars on this decision, and was assured that I would pick it up, or I could always drop down to calculus 1 mid-semester. Well, mid-semester, my muddled freshman brain knew that I was on a sinking ship, but I didn’t bail out. I achieved the first and only “D” grade of my college career in that course, which led to me halting my math career on the spot. From then on, I carried forth a story about myself that I had hit my limit with math, and would not be able to handle concepts further along the progression of math studies. This was a bad and incorrect assessment that took me 20 years to overwrite.

Fast forward 20 years. Late summer 2017, one of my colleagues shared that they were enrolling in the Stanford University Online Machine Learning Course on Coursera. I was intrigued, but subconsciously decided that I wouldn’t be able to handle it. A couple months later, they shared an update that they had finished the course. My curiosity grew. Over Thanksgiving weekend, when I checked out Coursera to learn more about the course, registration just happened to be closing that day. For whatever reason, my gut said to enroll. Even signing up for this course was an edge for me, but I was inspired by the achievements of my colleague, and decided to go for it, so I clicked “enroll”.

I still hadn’t taken any higher level mathematics beyond calculus. And to handle some of my anxiety around the linear algebra, I worked on some linear algebra course material on Khan Academy, and found that it was much less difficult than I had expected.

Andrew Ng is such a skilled teacher, and the lessons were so well organized, that even without any prior knowledge, I was able to follow along throughout the entire course and complete all of the quizzes and assignments. I felt a bit underwater during the first few weeks of the course after it really got rolling, but just kept at it and eventually found my legs.

My overall experience of taking this course showed me that predefined personal limits are a myth, and walking a difficult road with excellent guidance can be a recipe for overcoming pretty much any challenge.

Part 2

The course is divided into 12 weeks. The main vehicle for teaching is video. Each video has 1 or 2 moments where the screen will pause and a quick quiz question will appear. These quizzes are not counted towards your total grade in the course, but give good instant feedback as to whether or not you have been following along with what has been presented thus far in the video. Following each video series, there is a graded quiz, usually consisting of 5 questions. These can be retaken multiple times, and only your highest grade will count towards your final score. A passing grade for the course is contingent upon achieving 80% or greater on every quiz.

On weeks 2 through 10, the video lecture series and quizzes are followed by a programming assignment. The programming assignments are extremely well constructed in order to give the students a chance to apply concepts that have been described in the preceding lectures. There are supplementary readings and tutorials available to help with moving through the programming assignment. One way to modulate the difficulty of the programming assignment would be to vary how much you rely on the tutorials, versus just trying to solve the problem unaided. I found myself doing a mix of both, depending on how much time I had that week, and how willing I was to struggle with implementing new concepts.

Enrolled students of the course qualify for a temporary matlab license. Instructions are also provided on how to use open source software called “Octave” which is capable of compiling all of the matlab code that would be required for this course. I experimented with both, and ended up preferring matlab, as I found it more convenient to use the integrated code editing and execution environment. Octave is equally capable of compiling and running all of the code for the course, but it is command line based, which requires a lot of switching back and forth between the terminal and an external code editor.

There is also a linear algebra review section within the first week of the course. I chose to dive into linear algebra on Khan Academy in addition to this lecture.

Topics covered in the course include linear / logistic regression, neural networks, support vector machines, supervised / unsupervised learning, anomaly detection, and recommender systems (based on clustering / k-means).

It was a sweeping overview of the subject, and would be a fantastic building block for any continued study regarding machine learning. Highly recommended!

As a bonus, Coursera offers the chance to go through the entire course with full access to all lectures and exercises for zero cost. This option is considered an audit, and the only difference is that you don’t receive an official course certificate at the end. I wanted to be able to hang this on my digital wall, so I opted to purchase the course.

This article is part of a series

Discover and read more posts from Alex Jacobs
get started
post commentsBe the first to share your opinion
Show more replies