Tips for finishing the Machine Learning course by Andrew Ng on Coursera
Photo by SpaceX on Unsplash - https://unsplash.com/photos/uj3hvdfQujI
The Machine Learning course by Andrew Ng on Coursera is brilliant. I enjoyed it a lot. Andrew breaks complex topics down and makes them understandable for everyone. Since this course is definitely not easy I want to provide some tips for other students that are currently on this curriculum.
“So, ask yourself: If what you're working on succeeds beyond your wildest dreams, would you have significantly helped other people? If not, then keep searching for something else to work on. Otherwise you're not living up to your full potential.”
― Andrew Ng
Table of Contents
- The complexity of the course
- The scientific depth of the course
- The programming assignments
- The quizzes
- Formal requirements
- Mind the honor code
The complexity of the course
The complexity of this course is twofold.
- The content goes into depth of math and statistics
- To make progress you have to finish quizzes and programming assignments
To fully grasp the use of all concepts in this course I think it is necessary to do more than just following along. Going though the course and finishing everything is just one step. I think the real value lies in revisiting all topics and trying to apply it to your own use cases. That's important to keep in mind.
The scientific depth of the course
Since I haven't studied math or statistics I can't really give advise on that.
But if you are discouraged along the road that everything seems to be too complicated, try to focus on the very relevant parts of the learning week and it's tests. The professor says this in the videos anyways and always points out the important parts.
The programming assignments
This is tough. Especially if you are not familiar with programming. But even if you have no experience with any programming language, this course provides a soft introduction to it and allows to apply basic principles for powerful results.
I have used Matlab for all the challenges. I simply wanted to try it and thought there must be good documentation behind this product. And I wasn't disappointed.
1. Read the documentation
As someone who learned programming on his own, I have dealt with this problem before. One important thing is to READ THE DOCUMENTAION. This is always the most important step.
For this course this applies for using Matlab features. The reason Matlab and Octave are recommended, is because they already offer a good variety of computing features with a solid performance.
Let's take multiplying as illustration:
Matlab perfectly documents this here.
(Source Matlab Docs)
When you are trying to multiply vectors ( and you are going to multiply many vectors ) just reading this documentation helps to prevent a lot of problems. ( As I often have encountered and seen in forums )
Especially as it says in the description:
"That is, AB is typically not equal to BA."
2. Use the debugging functionality
Again, read the documentation.
It is really easy and provides a lot of insight.
- Just set a break point
- Run the program in the console ( otherwise arguments are not supplied to the functions )
- Hover over variables to see their values ( this is incredibly helpful with all the matrices )
- Adapt you code and re-run the previous steps
3. Visualize matrices ( and variables )
If debugging is not enough and you need a better visualization try to draw them out. This is especially useful when you have multiple errors in a longer formula calculation.
4. Read the information provided in the task
The PDF file with the assignments contains not only valuable tips on how to solve a problem, but also gives sometimes Octave/Matlab syntax to simplify code.
Be sure to read the assignments properly and the difficulty of the task is most of the times reduced significantly.
The quizzes are multiple- or single choice tests.
You can re-take a test 2 times and then you are blocked for 8 hours before being able to re-take the quiz again.
Since there is no time pressure you can easily examine the course notes and documentation to read them again. This is not only advisable but even encouraged. In my opinion this is where the learning starts. Being able to apply the learned material to different problems.
Sometimes, as normal with multiple choice, the questions can be very tricky and confusing. Then re-taking the quiz might be helpful to come to a correct solution. ( Be aware that the questions and answers can change )
The following I found to be worth mentioning:
In order to get a certificate you need to verify yourself. This ensures quality and credibility. Just finish the process and wait for review.
If it takes too long you can send a mail to the support team, who resolve the issue very fast. ( In my case the support was fantastic! )
Payment is done without problems with a credit card. I was so amazed by the quality of this course that I found it worth to buy the certificate. Not only to have credibility for the work, but also to support the people behind it.
Mind the honor code
The honor code shall ensure academic integrity and has to be agreed upon when doing the course.
In short, it prohibits actions, that will "dishonestly improve your results or dishonestly improve or damage the results of others".
This is important to note, since it does also not allow to copy and share results. It even says on the website:
You may not share your solutions to homework, quizzes, or exams with anyone else unless explicitly permitted by the instructor.
Of course this is hard on the internet. Keep always in mind that this course is for you, you alone. Dishonoring the code doesn't add any value to your learning experience and harms open projects like this.
Here is my certificate. If you have any questions feel free to reach out :)
Thanks Andrew Ng, Stanford and the Coursera platform for making this happen.
Additionally I was very surprised on how well teaching can be done. Professor Ng really is a great personality and a role model for teaching.
Thanks for reading my article! Feel free to leave any feedback!
Daniel is a LL.M. student in business law, working as a software engineer and organizer of tech related events in Vienna.
His current personal learning efforts focus on machine learning.