Machine Learning Review

Back in July, I finally took the plunge to study a topic that has interested me for a long time:  Machine Learning.

As loyal readers know, I am both a fan and an affiliate partner of Coursera.  Since they offer the most popular Machine Learning course on the planet, it only makes sense that I would start there.

For today’s post, I will provide a brief review of my experience with the course and discuss potential applications in the world of functional safety.

About the Course and Instructor

The course is taught by Dr. Andrew Ng, who is the founder of Coursera, an adjust professor at Stanford, the co-founder of the Google Brain project, as well as a founder of other equally impressive AI endeavors.  The massive popularity of his online AI course at Stanford is what ultimately led to the founding of Coursera in 2012.

The course is structured in 11 parts, expected to be completed in 8 weeks at about 7 hours per week.  However, the course is self-paced, so you can choose to complete it faster or slower.

As with most Coursera courses, the Machine Learning course is available for free to audit.  With this option, all course materials are available, but assignments are not graded.  For an extremely reasonable $79, you can have full enrollment in the course, including graded assignments and an electronic certificate of completion.  In my opinion, this is one of the best values available in education of any kind!

What You Will Learn

I liked the course a lot because it strikes a great balance between the underlying math and the practical application of the algorithms.  There are existing tools and libraries to perform all of the algorithms you will develop in this course, but by developing them yourself, it gives you both a better understanding of the algorithms and a definite sense of accomplishment when they actually work!  Since this first course, I have taken some other courses that use existing libraries (e.g. TensorFlow), and I can definitely say that building the algorithms from scratch was far more intuitive.

The detailed syllabus for the course is here, so I will just briefly outline the major topics here:

  • Linear Regression
  • Multiple Linear Regression
  • Logistic Regression
  • Artificial Neural Networks
  • Support Vector Machines
  • Unsupervised Learning
  • Anomaly Detection
  • Recommender Systems

The software tool for the class is GNU Octave, which a free open source clone of the commercial Matlab software.  Either software may be used for the class, but I had no problems using the free Octave version.

Professor Ng does an excellent job of covering the underlying math of each topic at a reasonably detailed level, while being sure to provide “intuitions” that help students to visualize what the algorithms are doing.

One of the focuses of the algorithm development is transitioning from inefficient loop-based designs to much more efficient vectorized algorithms.  Being rusty on my Linear Algebra, this was challenging for me.  Putting the effort in on the simpler early assignments definitely paid off later when vectorizing the more complex algorithms.

By far my favorite part of the course was that each assignment was built on a believable (albeit simplified) real world application.  Typically, the “skeleton” of the application was already provided, and your task was to implement the key machine learning algorithms.  As someone with limited background in Octave/Matlab, it was very helpful to concentrate on the ML algorithms and not have to learn all of the nitty-gritty Octave coding details (e.g. file handling, plotting, image processing, etc.).  The assignments for the course include, among others:

  • Hand-written digit classifier
  • Spam classifier
  • Image compression
  • Movie recommender system

My only constructive criticism of the course is that there are tools and libraries for many of these algorithms, but the course does not cover them.  I think it would be valuable to close that loop, saying “Now that you thoroughly understand these algorithms, let’s practice using them in some popular shrink-wrapped libraries”.  Luckily, there are other online courses (e.g. from Google) that cover these topics.

Applications in Industries

With cheap computing and proven algorithms, Machine Learning is becoming more and more practical for many applications.  For example, the automotive industry is already using deep learning as part of life-critical autonomous driving systems.  As loyal readers may know, that is my new career path!

Machine Learning is also making huge impacts in other industries, including cybersecurity, online marketing, and banking.  Machine Learning is even making inroads in the chemical process industries (my previous field).  A few random samples of what people are doing there:

Conclusion

To those worrying about the Artificial Intelligence Apocalypse, I think you can rest easy for a while.  Your Amazon Alexa and your SIS Logic Solver are not likely to become sentient and decide to destroy you anytime soon.  But don’t get too comfortable because people are still working on it.

What machine learning excels at is sifting through enormous amounts of data and finding relationships, (including relationships that are too subtle or too complex to be easily identified by humans) and making optimal decisions.  All complex automation systems are full of these kind of opportunities, so it is only a matter of time before this technology becomes commonplace in all industries.  Functional safety engineers need to be ready for that future.

I highly recommend this course as an excellent entry point into the world of machine learning.  Go ahead and take the plunge!

As always, thanks for reading!