Review of Coursera Machine Learning Course by Andrew Ng
Target Audience
This review is targeted to technical professionals considering the Coursera Machine Learning course. It’s not appropriate
Note in 2022 this course has been superseded by a Python-based specialization, which is more appropriate to professional use rather than the version I completed in 2020.
Quick summary
This course does a fantastic job teaching an introduction to machine learning. Most lessons are a progression of knowledge that explain why ML works. It creates an understanding better than plugging data into a library or service and seeing what happens.
However the course is maths heavy and a little academic which will feel weird to professional engineers. It
doesn’t matter that it’s relatively old as the fundamentals apply, but you can’t take this course and then start programming.
It will only lay a foundation in ML.
Maths prerequisites
Basic algebra is essential (e.g. Y = 2x + 3), as well as reading charts/plots from equations.
An understanding of matrices (linear algebra) is essential. i.e. representing data in a matrix or vector, and how to manipulate that with basic operations. This is easy to learn or recall. If you’re a self-taught programmer, (or forgotten your maths studies) you’ll still be familiar with single-dimension arrays (vectors) and two-dimensional (matrices) anyway from coding.
An understanding of derivatives is also required. There’s many references to partial differential equations, but you only need to understand that each derivative represents the slope of each equation in a particular dimension.
There is a lot of linear regression and logistic regression (fitting a line to data points) which are essential knowledge to build upon before using neural networks. You learn this during the course but may need to read some outside material if its unfamiliar
All the assignments use Octave (Matlab clone). The assignments are mostly trivial or structured so you’re really painting by numbers. Assessments are mandatory and code is automatically assessed - like submitting code against unit tests until they pass.