My Experience with Andrew Ng Machine Learning Course As a Beginner

Caio Sá
5 min readSep 22, 2021

--

Are you beginning your journey in Machine Learning? I am also like you! So, here is an honest review of the introductory course — that you have probably heard of - given by Andrew Ng on Coursera on Machine Learning.

Representative Image of Course Completion

My Background with Programming

Yes, I have some — but little — experience with programming. The most incredible things I had done with programming till I began the course were: solving some easy problems from the Brazilian Olympics of Informatics in 2018 using C++ and after two years without any programming experience, learning how to build a simple Twitter clone using Ruby. No experience with Data Science and Artificial Intelligence.

How hard was it?

The course is not hard. Its purpose is to get your foot wet on the different algorithms of Machine Learning systems. You won't be able to get out of the course and be the next Andrew Ng right away, but you’ll learn that Machine Learning is doable, how the process of learning from data happens under the hood for any programming language, and many practical tips from an expert that will save you tons of time when building your Machine Learning systems by yourself.

Yes, you will be learning a new programming language — which I love now — called Octave/Mathlab. It is very simple and very powerful. If you have never coded yourself, I would tell you to look at some tutorials on Youtube about programming with Octave so that you can learn a bit about what programming is all about and how it works. If you have coding experience, you can take the course easily.

Once you have gotten your feet wet on coding, then surely you can go ahead and start the course. The course takes 11 weeks to complete, but I finished in 9 weeks— and I know I could have finished in about less than 21 days by giving 2 hours of my everyday life to it. The thing is that I started, then got busy with other stuff and came back. As a reference, I finished the last 3 weeks in 4 days by applying myself 3 hours a day to it. So, don’t worry about timing, too. It is pretty doable.

What about the math? This is the hardest part of the course. It had been 2 years since I touched on math. He uses graphs really well in the course for us to see how the models are performing on the data. If you know what is x-axis and y-axis are in a graph, that is enough for the graphs. You will also be seeing some Calculus here and there to explain where all the formulas come from, but you will not be using Calculus in the programming assignments. And here you might ask: I want to learn Machine Learning, how will I become an expert in Machine Learning if I can’t figure out where the formulas come from? Well, that is a good time to say that the course is introductory. Andrew Ng explicitly says many times that you will need to just accept some formulas and models he shows in the course. And that happened to me. I tried to understand all he taught, but also knew that I don't have the needed background to prove some of the formulas from the fields of Statistics, Probability, and Linear Algebra. Even Andrew Ng would come with the formula without proving it in many instances. It is totally unnecessary to take long courses of Linear Algebra, Probability, Calculus, etc, before jumping into the course. The only thing you will need is to be familiar with matrices multiplication — that’s all for math. Believe me.

Graph of Decision Boundaries On Data of Week 7

What Does the Course Teach?

After knowing that you can handle going through the curse without rigorous math, you will be amazed at what you learn. The course usually covers an algorithm each week. You will get your feet wet in Linear and Logistic Regression, Gradient Descent, Neural Networks, SVM, K-Means, and Anomaly Detection. If these names sound complex for you, don't worry, they'll be taught simply in the course. He explains things in a clear and practical — very practical way. He gives some valuable advice for even experts in the field about how to improve on a model, quantity vs quality of data, and what to do when you encounter an issue in a Machine Learning system. Seriously, his course is worth it!

The highlights of the course for me were:

Learning how to compress an image using the most common colors in the original image to get a similar one and learning how to build a Machine Learning System using Neural Networks in order to recognize hand-written digits in Week 5. This was the assignment I spent more time on but was able to see the majesty of Machine Learning.

Hand-written Digits Classifier
Hand-Written Digits Classifier

Last Important Comments

If you have wondered why he uses the Octave/Mathlab programming language instead of the well-known Python and R languages, here is why: In his experience as a teacher, he saw that students learned best the concepts of Machine Learning by learning it through Octave/Mathlab — since it shows most of the math under the hood. I feel like if he used Python — let’s say — people would be restricted to continue their path on ML only using Python. He then uses a language that is very simple and shows how things work, instead of importing a library that does all the dirty work for you.

The only thing that could be improved in the course is the audio. But the course is still doable anyways.

Hope you’ll love it too! I will continue my path in ML using the Python language. I feel very confident now to approach ML in the Python environment and will continue doing some more advanced courses to master it well.

As Andrew Ng says in the last video of the course, I hope we’ll be able to use ML in a way that will help you, me, and all the people in the world to have a better life.

--

--

Caio Sá

Current Brazilian student of Machine Learning & Blockchain that loves math since High School competitions.