The course named “Machine Learning”, created by Professor Andrew Ng is one of the most popular courses on the Internet. Since its first publication, more than 8 million learners have signed up. Initially, the course was available on YouTube but after some time it has been moved to Coursera.
The course is split into 11 weeks during which students learn about e.g. Linear Regression, classification algorithms, Neural Networks, debugging problems, how to improve existing machine learning systems accuracy. The course consists of three main types of entities: video lectures, quizzes and programming assignments. In the following article, you can find my final thoughts after accomplishing the Machine Learning course.
During every course’s week, there is at least one quiz which will verify if you understand topics from watched lectures. To pass a quiz you have to reach 80% (4/5 questions) of correct answers. There are only closed-ended questions. For some of them, you have to provide more than one answer. It is worth to know that you can submit a quiz only 3 times within 8 hours.
I didn’t have too many problems with quizzes. There was only one time when I had to wait 8 hours to retake the quiz. Mainly, I needed one or two attempts. Sometimes, it was required to watch a whole lesson again in order to understand a topic better. All of the quizzes were very well structured, questions and answers were clear.
To take this course a knowledge of basic programming concepts is required. You should know how loops work and how to model basic programming problems with code. Programming language doesn’t matter because all of the code will be written in MatLab or Octave. For programming assignments, you have a script and initial code provided. The script will help you to complete the missing parts. There are also more programming-related explanations and solutions. The provided code contains a special script which will send your answer to the prepared grader.
Programming assignments were way more difficult than quizzes. Originally, each of the exercises is estimated to 3 hours, but we all know how estimation works. My record is 10 programming hours for 6th-week assignment – backpropagation. For the biggest part of this time, I tried to work out a vectorized implementation for a given problem. Finally, I ended up with a loop-based solution. If I had implemented loops at the beginning, I would have submitted the assignment in less than 3 hours. The advantage is that I learned a lot.
My final course grade (quizzes and programming assignments included) is 94.9%. Not that bad.
Forum and support
Coursera provides you a capability to communicate with other course’s students and mentors. All of them are really keen to help you. Moreover, there are lots of questions asked and plenty of answers given. I didn’t have to write any posts because I found solutions for my problems in already existing topics.
For each programming assignment, there is a section called Tutorial. In these tutorials, you can find tips how to implement a given task.
I don’t know why, but I started to use tutorials way too late. However, they helped me many times. Some of the solutions were obvious but the majority was really tricky and I would probably spend long hours trying to implement an already given solution.
In order to implement programming assignments, you have to choose a software which you will use to provide answers. You can select either Octave or Matlab. I decided to use the first one and well…I’m not sure if it was a good choice. Octave, when working on macOS, is very unstable. It crashes randomly. I haven’t found any working solution for it. Maybe installing newer version would help. I didn’t have too much time to experiment with it. Besides crashes, I like it. Simple GUI and pretty fast startup make this tool very comfortable in a daily use.
If you are about to take the Machine Learning course or if you are already during it I would give you some useful tips. First of all, use control version system. It will help you to track changes in your code. Whenever I start a project I create a repository. I don’t know why I didn’t do that this time.
The second one is to use forum and tutorials a lot. As I mentioned before, there are many solutions for problems you will probably meet. Don’t waste your time on reinventing the wheel again. I can ensure you that you won’t lose any knowledge by using it. There are only tips, not code let alone working solutions.
Another one is before making a decision about software, spend some time on research how it cooperates with a system you use. It may save you hours of fighting with it. It is completely not worth it.
The last one may not be useful for all of you, but for me, it works really good. Make notes. Buy a notebook and write everything, like in school. It is a fantastic way to discover small tricks that you probably wouldn’t notice when only watching the video.
To sum everything up, it was my third online course which I have taken and, for sure, the best one. I really enjoyed this 11 weeks of learning with Professor Andrew. There were no moments when I was bored. The whole knowledge is well structured and provided in a very clear way. Professor has shown me that complicated things are not that scary. The fact that was very surprising to me was that I really enjoyed spending time on analyzing mathematical equations that lie behind machine learning.
Thank you Professor!