A brilliant sequence of topics and fundamentals to get a stronghold on ML . The learnings I obtained from this course will always be my guiding factor in working through the projects in my life ahead.
Amazing really felt that I learnt something substantial. Very happy that I chose this course over others Andrew Ng Sir explained everything very clearly to a required level of depth.\n\nThank you Sir!
By Lorenzo V•
No math, purely intuition and drive through formulas not demonstrated. You can't improve after this course because you don't really know why you did what you did
By Abdullah D K•
This is not a course, more like listening to the people who talks about machine learning and then writing your feelings about them.
By Romie C M•
A good set of questions contain only one best answer and that is in measurement and evaluation.
By Uri Z•
Very basic and superficial course. Apologies each time derivatives need to be used.
By Ruslan Z•
theory is intuitive and ok but rated program assignments are just waste of time.
By Rishi A•
Locked assignments are really frustrating.Why to wait till a specific date?
By Siddharth K•
Python should have been great language for this course.
By Aly E•
I have to say Andrew did a pretty wonderful job in this course. I was a person with a very nice software development experience but never had to deal with machine learning. The last time I had to deal with calculus, algebra or mathematics in general was about 7 years ago (in Arabic, and having to deal with that in English is another story), thus I had approximately zero mathematics knowledge. Before this course, I attempted different approaches into this field but throughout them, I would either fall in a valley of philosophy or I would have to stop every few minutes and check the mathematics behind what's just happened.
The way Andrew approached the content in this course makes perfect sense to me (and I assume, to anyone with similar background). He's not the kind of teacher who'd plot complicated things onto the board and tells you that you should use it, instead, he would build the components of everything bit by bit until it makes perfect sense. He also has a good estimate of how hard/complicated something might be/seem to new comers and thus he instructs you throughout the course to be gentle on yourself if you don't get it at first.
Also, the vast majority of quizzes and programming assignments in this course put you in situations where you have to deal with tricky confusions in order to work things out and thus try to make sure that you have a deep understanding of what's going on.
I also like the quality of the content provided in this course. Andrew didn't just tell you "hey, here're the algorithms and that's how you use them, go use them", instead, he dedicated a decent amount of effort trying to explain how to choose which algorithm and when and why, and how to "not depend on gut feeling" but instead diagnose and debug different situations you might find yourself in.
Judging by earlier approaches I attempted before this course, I believe that it might've taken me a very long time to obtain the knowledge provided in this course.
One minor draw-back of this course is that unlike the first half, the last few weeks don't have reading recap after each video session. Another one might be the fact that the weight of this course (in terms of time and effort needed to complete something) is not equally distributed across the weeks (one programming assignment took me almost two weeks to complete, and two weeks in the course took me one day to complete).
By Augustin L K•
(1) I think the lecture material has to be revised: My suggestion is this: to make the lecture clear use 3 by 4 matrices to describe or explain each steps ( this will ensure that the student can solve the problem manual and therefore use any language to code). The summation over i, j, k with the training example m ; makes less pratical. there are many repetition which can be removed as well ;
=> Based on my coding experience, it is very good to keep the mathematical generality aside for clarity purposes; making the lecture very easy ; Really there is a total disconnection between the developped theory ( equations) and their coding ; it makes it hadrer ;
If one can solve or translate the mathematical equation manually then the programming assignment will be easier
(2) you start each topic in a wonderful way by providing sweet examples ; however , in this case, there is not a general formulation of the example that will help easily the student decided about the next example different from what you gave: In order words : when you talked about aircraft engine on anomalous algo; you did not clearly (in words) say what are the characteristics of a problem which will be identical to the aircraft exaple
(3) About the assignment, there is a huge dark side : the student has to complete only whatever it is asked to; however in practice the student will have to developped more than what he is asked as assignment, It is therefore important to present fistly important to tell the student if there are some libraries developped in the current language used in the lecture ( in this case Matlab) : in other words:
let say , the in the << exercise>>, the main code is ex3 where there are lines of cod ( which the student will have to write in practical scenario as well : This ex3 is not concern by the assignment, which is good BUT at least say a word about this: Let the student know if in practice he will have the task to write this main file ( ex3), will be better
Thanks , your lecture is good in the sense that it connect two main sides upon which the ML is made : mathematical side ( by this I mean the useful resulting equation to be used ) and the pratical formulation and application of this in an algorithm
By Malcolm N•
My CS friend recommended me to take this course to learn more about how to use data in business, after he heard that I wanted to program an app for food. he warned me about the great deal of math involved (mainly linear algebra). me being a physics/engineering major I naturally got even more excited (it turned out that he was right, and it would also be a huge plus to know multivariate calculus, and I can see myself struggle with the concepts had I not studied both these topics to bits in school). incidentally, this was my first online coursera experience. I can tell you it will be life changing experience. No longer do I have to physically travel somewhere to listen to lectures or hand in assignments, nor download lecture notes off of the school server. This is a 24/7 always on always available service, with the best TA's to answer your questions if you get stuck on homework assignments and quizzes. Everything in the coding assignments tests your knowledge of the course lectures and is designed such that you can complete it in the shortest possible amount of time while reaping the maximum amount of benefit. It is "easy" sense does not require you to grind through mundane things like looking for your own training set data or writing code to plot and visualise the data, but it is "hard" in the sense that very often it takes an hour (or more) of studying the lectures and thinking to figure out how to solve the problem in the most efficient way as possible which often involves writing a single line of vectored matlab/octave code. It is more of an overview of the most important topics in machine learning, but will be a great springboard to go in depth into each aspect of it. Lastly, Andrew often offers wonderful insights into the day to day of machine learning professionals in his lecture videos, so I would advise watching every single minute of them to get the most out of the course instead of aiming to race over the finish line (which can be tempting at times when the deadline approaches)
By Daniel D•
This course is vital. People can do machine learning using out-of-the-box tools like keras, fast.ai, theano, tensorflow, and do amazing things. But to understand what's going on internally, to understand what it takes to get things to converge fast and to perform accurately and to be as useful as possible, to understand various types of networks and new discoveries later on, it really takes a good, healthy, rigorous foundation at least in very simple calculus, matrix algebra, back-prop, stochastic gradient descent, linear and logical regression, and such. If you try to forge ahead and get stuck or cannot come up with a way to build a proper model later on, you may find yourself giving up or returning to the material provided in this course. Andrew Ng did an excellent job teaching this. Even so, I heartily recommend watching views from others to get unstuck or to reinforce what you have learned--to make it more concrete. And do all the assignments aiming for 100% on every one.I found myself viewing youtube videos from many experts and found most of them extremely interesting and exciting. By getting several people's perspective, I feel I was able to learn the material better and more easily. Of course, it helps to have a math background, too, and I received my BA in math long ago from Fresno State with an Applied Math option and a Physics minor. It was a joy to return to my old math stomping grounds.If it takes time to get through, that's OK. Sometimes it helps to let the material marinate or let your brain marinate in the material. Then if you're like me, you might come to the place where you start to get on a roll and decide you need to put everything else aside and focus on finishing *this* course to perfection. And it can open the door not only to interesting work but to other interesting and worthwhile certifications.
By Tejas R•
I found the Machine Learning course has a good structure, excellent teaching instruction and a perfect pace for working professionals. It covers a wide variety of topics/techniques in Supervised and Unsupervised Learning.
Professor NG has an excellent way of teaching any given topic. He covers all the fundamentals or building blocks to a particular topic quite well before putting it all together to demonstrate how a learning algorithm can be built. Each week has some quizzes and programming assignments you need to complete. For someone who is new to this entire topic, I found the quizzes and programming assignments sufficiently challenging. The quizzes test the basics covered in each topic, whereas the programming assignments give a hands on experience in how to write parts of Machine Learning algorithms.
I was also impressed with the course resources. There are numerous resource links available if you are interested in reading more into any topic. And the course forums are quite helpful in case you are stuck on any particular problem. Just going through the forums’ FAQ is bound to help you gain further insights into the course topics.
I am a working professional from whom it is difficult to dedicate sufficient time to enroll in a proper university course. I found the pace of this course well suited for the amount of time I was able to spend in a week.
This course does not cover any one particular topic in too much depth. It is structured to introduce you to a wide range of topics in Machine Learning and can set you up with the proper introduction and background if you wish to pursue any of those topic into further depth.
Overall, this course was very fulfilling and I would highly recommend it to someone who is looking for a course which introduces you to a wide variety of topics in this domain.
By Pat L•
This course is an essential tool. I am beginning on a long journey of machine learning I hope will end at my ultimate goal of securing employment in the field of natural language processing and deep reinforcement learning. Starting completely from scratch, I began this journey by getting text books on the topics and attempting to follow along. Many of the basic learning algorithms, which seemed so daunting at first, were explained to me in a way that allowed me to fully embrace and understand the topics on an intuitive level. This course is the essential entry point to anyone wanting to truly understand the mechanics of machine learning. The mathematical concepts are broken down in a way that is truly intuitive and easy to follow. Additionally, Andrew Ng is a world class instructor. His manner, presentation, and encouragement from, at the time of this review, 8 years ago is evergreen and invaluable. He sincerely believes anyone who puts the time into learning this material can accomplish great things in the world. This course was inspiring. I was so engrossed with the material that I completed all 11 weeks of course work within 5 weeks. My only issue is the use of MATLAB/Octave in this course. All the materials I have read state that these languages and applications are widely not used in the field anymore though at the time of the course development, I understand the inclusion. Perhaps an update to the course that allows for the programming to be done in Python or R would be beneficial, but once you get the hang of MATLAB the programming exercises become easier as the course moves on. My sincerest and most heartfelt recommendation goes to this course for anyone who has an interest in opening the door to their own journey into this field.
By Alistair W•
I worked for a start-up specialising in AI and rules based software that aims to learn how attorneys review contracts to extract key data points (e.g. clauses, parties, names, dates, numbers and text classification). Although I worked in sales / presales and as a domain expert for legal (being an attorney), I always wanted to know more about the technical side of what we were trying to achieve. This course provided my first proper and thorough introduction to machine learning, not only the coding concepts but also the underlying maths. It's been really tough going through the course, but that's down to my rusty maths (I have a maths A-level (i.e. pre-University maths to American readers)) and hadn't practised maths in around 12 years before completing this course. Similarly my coding skills had become rather rusty. All that said, the quality of teaching, forum support and coverage of this course has been great. I've had to read around quite a bit, mostly where certain topics were introduced without first zooming out to explain what the overall algorithm is trying to achieve. However, these issues were easily overcome given the course is well supported on the forums and similar topics are covered elsewhere on the internet given their prevalence today. I thoroughly recommend this course to anyone interested in AI and machine learning. I am looking forward to completing the Deep Learning specialization course as a result of this course, and will also be completing FastAi in tandem to get both a bottom up understanding (as was the case with this course, and will be the case with the deep learning specialization) and a top-down understanding (as will be the case with FastAI). Thanks to the team at Coursera, the forums and Andrew Ng!
By Zdeněk V•
My review concerns partially the course and partially the Coursera concept as this was my first on-line course and I cannot distinguish between those two.My experience was simply great, I felt that it was time well spend, for example compares to my company provided trainings and I'm hoping to return to another course.I have quite strong background in statistics so some parts were too basic for me but being able to speed the videos up is neat and it opens the course to wide spectrum of students (again opposed to company provided trainings or even school lessons where in the best case half of the students are bored of the slow tempo and other half isn't able to keep up with the same tempo). To have my own timeplan also helps but I even finished quite early as it was so fun.About the course contend: Andrew Ng prepared great lessons, all was pretty well explained (even when he cannot use some "advanced math" not to lose part of the students). The examples were illustrative as well as realistic (at least seemed realistic and that makes it more exciting than some artificial ones).I was little afraid of the programming exercises as I've never worked with Matlab (using mainly R). But now I'm glad that I know another language:) The system of submitting works perfectly.I can say similar thinks about the contend of the exercises as I wrote about examples in lectures. It is nice to program my own spam filter - the concept of programming only some small parts of the program and not to have to deal with data loading, plotting... is again very entertaining and instructive and then it can be done some nice application in short time.My thanks to the whole Coursera team and of course Andrew Ng. Hope to use this cool tools in my work.
By Natalia G•
First and foremost, I would like to remark on the following. Some of the reviewers below note that this course is a sort of "waste of time because it covers only basics without going deeper into math". Please do not take it too personally, but there is a "Beginner" level which is clearly stated in the course. I am not going to argue with those who already have some basis in Machine Learning or Math/Calculus/Linear Algebra - for these people it may be useless, no offense. In this case, YES, this course is too introductory but, again, it is for BEGINNERS! It is like, I am a person with C2 English certificate but will complain about the English course for A2-level-students. Please, keep this in mind.
As a Beginner myself, I would like to express my great gratitude to Professor Andrew Ng and his colleagues who helped me to go through the Machine Learning and realize what I really want to do in my life! The course really covers basic approaches (methodologies, basic theory, some not very difficult practice which can be challenging too, and if you have little time, do not take this course, you need to spend a fair amount of time here to gain understanding). Since this is only a basic course, some information may be insufficient, but Professor Andrew Ng provided necessary books and materials in Resources section if anyone is interested in further development.
Moreover, I would like to emphasize the structure of this course. No "offtops", no "overmath", no any extra unrelated information - only what you really need to be INTRODUCED into this topic. I strongly recommend anyone, who is interested in Machine Learning, taking this course asap! You will never regret it, and as some of the reviewers mentioned, worths any penny claimed!
By Felix E•
Absolutely fantastic course! I just wish my old university had classes on that level.
Fantastic tutor as well. I loved how Andrew would sometimes explain the same thing in different ways and spend time to start explaining the problem before offering a solution. I feel like this has been a great approach, especially since you can't directly ask questions in an online course and it would have been really hard to figure out the details on your own if some things are not clear to you.
Best part of the videos are the times that Andrew messed up something and probably thought "ah I'll cut this part out later" but never did. So sometimes you'll hear him stop in the middle of the sentence and just start all over. Fucking hilarious.
My only criticism (or rather, room for improvement): The programming exercises were kind of bland at some point since they didn't really require you to think about what you are doing. Most of the time it felt like I would just try to figure out the Octave language while basically transcribing the formulas in the PDF's into Octave syntax. Maybe offering another language (eg. Python+Numpy) as alternative would help here: Since developers will be more familiar/comfortable with a language such as Python, they can focus more on the actual ML implementation instead of spending about 75% of the time trying to figure out the syntax. Seriously, fuck the Octave syntax. And the IDE is atrocious.
But overall, fantastic course, 10/10, would recommend to everyone interested in ML. This course has basically single-handedly gotten me a job as ML developer since the first four weeks were enough for me to absolutely nail the technical job interview. Thanks Andrew, if I'll ever meet you, I'll buy you a beer!
By Ron M•
This course is a great balance of practical implementation and theoretical underpinnings. Very thoughtfully taught. My only complaint is more of an issue with the Coursera platform. If you run into problems, that in a physical university setting you could review in person with a TA, you can get help via the forums, but for the programming assignments in particular it is a challenge to talk to your peers about your problem, not violate the honor code, and still get to a point where you get your issue resolved so you understand how to complete the assignment. For example, while vectorized solutions are not essential for this class, they are highly encouraged, and in at least one assignment non-vectorized implementations pay a significant performance penalty (hours of run time - possibly to find it did not work properly). Ideally, in a physical college you could review things in person with a TA in a manner that did not violate the honor code, but did also get you to a true level of understanding. The open, public forums are not a substitute for that level of help, and while the "mentors" are good, helpful folks, they are also volunteers with their own lives and also limited by the Coursera platform itself. So that is the ultimate weakness with the Coursera format I am not sure the best solution, and it did not overly penalize me, but I can see people (especially on the Neural Network programming assignment) giving up and not completing the course because they could not get the level of understanding that is needed. I would still recommend Coursera, but hope as implementations are iterated the issue is addressed so that more people can get the help they might need.
By Aditya A•
Andrew Ng's course is certainly a great introduction to Machine Learning for people who are unfamiliar with the topic. I think concepts were explained very clearly without much too much statistical jargon, while also familiarizing people with the concepts, techniques, and terms in ML. I do want to however suggest further improvements that maybe helpful for developing similar courses. I think first it would be better to teach the class in Python. While Python would have more of a learning ramp as opposed to Matlab for those who have never coded before, outside of scientific computing, Python seems to be industry standard and I would have preferred to be introduced to the environment, libraries, and tools in the course. Second area, would reiteration, depth, and practice. While the programming exercises did challenge learners to think, I think I would have gained a bit more for example doing an implementation of an algorithm from scratch and writing code to apply it in many different applications. Also, while mathematical proofs and derivations for formulas were impressively clear, I think it would be great to provide more sections in the course for those who were mathematically inclined to further explore the algorithm's derivation and see how it applies as the algorithm help predict a hypothesis. I think the course was well designed for someone who can't make to much time for the course, hasn't worked with high school and undergraduate college math in a while, and hasn't touch code or just dabbled in it. But it would be great to see a course taught as simply as this one, except with a bit more depth for those it might fit.
By Richard D•
The Machine Learning course taught by Professor Ng is a good way to survey a variety of the commonly used techniques in the field. Though I had been exposed to algorithms like k-means, SVM, PCA, and regression before, it was good to see a unified treatment of all the subjects.
The video lectures are good. In the early weeks I felt a bit overwhelmed by new information, but by the end of the session I was feeling that the lectures were being stretched out. In particular, I started noticing the professor would repeat every point 2 or 3 times. That may be a good style in general, but I found it time-wasting.
The quizzes were good, but a few of the questions here and there were phrased poorly, in an ambiguous manner that made it hard to understand what exactly was being asked. One questioned used vocabulary we hadn't been introduced to. (Sorry, I don't remember in which unit this happened - it wasn't a big deal at the time.)
I enjoyed the programming assignments the most and, quite frankly, lost interest at the end when there were no more to be done. Most of them were challenging - at least if you avoided using the tutorials which really take you through every step. I found the SVM programming assignment thin - we really didn't do anything there except multiply a couple matrices.
I have mixed feelings about the transcripts that accompany the videos. On the one hand, they are very helpful for skipping ahead when one sees a certain idea repeated 3 or 4 times. On the other hand, they are obviously automatically generated and riddled with errors. For a machine learning course, this is particularly ironic.
By Kevin N L•
The lectures and reminder questions and tests and programming exercises were all fine I thought! I enjoyed engaging myself with the course material. I was happy not to have a lot of pressure. I was glad each week was a small enough manageable bite of work so I could get it done in less than a week with lots of time for other things, and still get done without being bumped to another session. I guess the programming exercises were very interesting because there are three or four sets of instructions and notations for each exercise: 1) course lecture notation 2) a PDF of instructions 3) the instructions in the comments inside of the overall exercise test code, e.g. ex7.m in Octave 4) the code itself in the exercise test code. So after I learned to make a print statement in Octave I was able to figure out which way every matrix was pointed, and now I am an expert in fprintf again. The most common example was usually the lecture notes had Theta(transpose)X while in the code I had to do it the other way. I really enjoyed learning how to use graphs to tune the learning machine, and also how to analyze the pipeline to determine which part to learn on. I enjoyed the math in the course, like gradient descent of different types and the fminunc function. It all made a ton of sense to me and I think it can be a useful tool for me in the future if I am not too old or lazy or distracted to use it! My first idea is to use the course techniques to create scrabble word study lists, I guess. Maybe to make a sloppy Valid or Invalid Word discriminator so I'll have a way to create phony vocabulary words or neologisms.
By Parantap S•
There is always a trade off between various factors while designing any course, a lot of this has to do with the expected outcomes of a course and the intended audience for example. It takes a lot of thought, experience and a passion for communication and teaching to arrive at such a balance. This is one such course where I'd like to say that an almost perfect balance has been achieved, my sincere gratitude to Professor Ng and his team for putting all this together. I might have liked some more details about optimization algorithms and maximum likelihood estimation, but I realize that this is something specific to me and may not be shared by others who are taking this course for a variety of reasons. However, I do not mean this as a criticism, instead because I am so impressed by what Prof. Ng and his team have achieved, and since I also have a technical background together with a desire to communicate complex ideas, that at some point, if possible, I'd like to try and create and add this additional material. The reason for saying 'at some point in time' instead of' immediately', is that I now intend to go through some more courses on Coursera (I think I might be addicted now). While I have a technical background, it is not in computer science and I did not have a lot of programming experience prior to this course, yet this course has managed to give me a fairly clear and solid foundation in supervised and unsupervised learning together with some operational intuition on structuring machine learning projects. Once again, sincere gratitude to Professor Ng and his team for making this course, Thank you.
By Bruno s•
The course developed by Andrew Ng is quite interesting, going to the essentials in order student get the big picture and the essential tools for building the backbone of future ML applications. Of course, being confident with mathematics principles and notations will be helpful but most of the time, it's not an issue if you have the minimal knowledge. What it lacks on Coursera is the next stage of this course where we could investigate further the technologies presented but in more technical way. Maybe we might see that in the future...
Regarding course supports (videos, forums ...), they are of good quality and the fact Andrew used them by drawing on slides helps to have a better understanding. We could notice that there are few minor errors (eg: a "j" index which becomes "i" in J(theta) writing) and I think the technical slides on Back propagation could be improved if a dedicated slide to used mathematical notations / definitions. Sometimes, there are some errors which could induce some confusions. But these minors errors don't hide the impressive work done by Andrew.
Regarding assessments, quizzes could be tricky if you don't got the "spirit" (not an exam habit in France) and coding exercises are well structured in order the student will focus on the core modules of the lesson and not on information flow. These exercises are inspiring if you're interesting in teaching and inspiring for Data Scientist Apprentices if you investigate the utils functions developed to support the exercise.
Many thanks for this great course and I hope my two cents will help other people to attend it
By Kiran K G•
Never imagined online learning could be so much fun and so much in-depth. A lot of attention and effort has been put in to craft the training material including all the videos, exercises and quizzes so that every student can grasp the concepts with ease. The pace is excellent and the videos cover the foundation of what machine learning is all about.
After this course I understand what regression is - linear, non-linear or logistic. Understand how neural networks work, the idea behind their working and how other systems such as recommenders or anomaly detection can be built on top of these ideas. Practical examples such as hard-writing recognition, Photo OCR and many more provide real-life scenarios and applicability of machine learning in day to day life, which is actually cool!
I loved doing all the exercises even though I must admit some of them seemed difficult at first, but with guidance provided in the write-up, path became much easier. Submitting was fun because it was so simple using Octave and submission token.
Andrew Ng is such an excellent and knowledgeable teacher that I am looking forward to more courses from him and of course, other teachers on Coursera. His communication and teaching style is perfect. It is a great gift in my opinion to be able to take such high quality and informative courses online, while still being able to do my everyday job at my work place.
Almost feel little emotional now that the course has ended after months into it, listening to all the videos and doing the exercises. Feels great to become a student again!