5 ms·
I'm glad these courses use python. I had a lot of trouble with Ng's machine learning course because I was trying to learn MATLAB language, remember long disused
by bradleyjg 9y ago
I'm glad these courses use python. I had a lot of trouble with Ng's machine learning course because I was trying to learn MATLAB language, remember long disused linear algebra, and trying understand the substance of the lessons all at the same time.
- sumitgt 9y agoYes, it really distracted away from the core lessons of that course.
- binarymax 9y agoI disagree. I felt the language was very simple and easy to learn, and after the first exercise it was natural to use. Considering the course was very mathematical, the language was a perfect choice.
- mamon 9y agoMy impression was that the language was "too natural". I mean Octave notation is so similar to mathematical notation that many exercises could be solved by just typing a formula from lecture almost 1:1. Plus, learning Python and things like NumPy or Pandas would be beneficial on its own rights.
- tnecniv 9y agoI mean, there's not much difference between NumPy and MATLAB/Octave.
- liuhenry 9y agoFor example, check out https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-u... Also, IMO the implementation is not the core focus of the course. The key ideas are in the equations, and hopefully implementing them helps you understand the intuition behind those equations.
- piggybox 9y agoI disagree as well. I took the ML course a long time ago and now I can't remember anything about Octave but still remember those key ideas and algorithms taught in the course. That's the point.
- SloopJon 9y agoI'm finally getting around to taking this course. I too find Octave to be a bit weird, so I'm a little behind on the programming assignments. However, I'm looking forward to getting comfortable with a different way of programming. Everything I've read about the course suggests that the programming assignments are actually pretty easy. Hopefully I'll reinforce, rather than confuse the core concepts in translating them to this unfamiliar language.
- SilasX 9y agoMy experience (Fall 2011) is that I didn't really get much ML education out of it because 90% of the coursework was "translate this textbook equation into Matlab".
- bcherny 9y agoIIRC, Ng explicitly mentioned that he taught the course in a few languages over the years (Python, Matlab, R, Octave), and he got the best results with Octave because of how simple the language is and how much is built in.
- brudgers 9y agoIt's worth considering the choice of Octave in context. The first time Machine Learning was a full blown MOOC offering was in 2011, [1] predating the founding of Coursera. My impression is that even as far back as 2011, Ng's class was adapted from an existing syllabus. Unlike today, Python was not an obvious choice. In no small part because arguments that it was not fast enough for numerical calculations (right or wrong) held much more sway. In no small part (and as Ng mentions when explaining why Octave was used in the course lectures) because people will always argue over choice of programming language (perhaps the parent comment is a mild example). Pedagogically, using a 'big' language like Octave avoids getting bogged down in the sausage factory of modules and imports and namespaces and objects and list comprehensions and differences between the two major versions of Python and documentation rot associated with all the minor versions of the Pythons when it comes to examples. In terms of learning Octave, it's not really significantly more or less knowledge than learning NumPy would have been. Irrespective of language the number of functions/methods necessary to manipulate matrices is pretty much constant...or as I heard someone say once, J has about the same number of language primitives as there are methods in Ruby's array libraries. Anyone starting from scratch will have two things to learn. [1]: https://web.archive.org/web/20110923173848/http://www.ml-class.org:80/ https://web.archive.org/web/20110923173848/http://www.ml-cla...
- bradleyjg 9y agoMaybe I unknowingly stepped into some long standing debate? I'm not saying it was an obviously terrible choice and how could he have made it. I'm saying it made the course more difficult and less rewarding for me.
- danjoc 9y ago>I'm glad these courses use python But how will cheaters rationalize violating the honor code now? https://news.ycombinator.com/item?id=12279526 https://news.ycombinator.com/item?id=12279526
- jokoon 9y agoYeah I have nothing against algebra or math, I like math, and I know some algebra, but he was constantly using mathematical notation instead of algorithms. It was not accessible. I got into many arguments about how computer science is math and so on, but machine learning is a set of techniques, there is no need for it to use math when it's not really needed. So I gave up. I did not even manage to properly understand his explanation of linear regression, as I would have liked to implement my own. When I look online it's a myriad of equations, and no pseudo code. I love mathematics, but when I'm programming I really prefer to use data, and not math.
- inimino 9y agoML is a set of techniques derived from math. Instead of giving up you should push through that. Use what you know to get familiar with what you don't, rather than asking for things to be made accessible to you. Math is much older and bigger than computer science and refusing to learn it is over-specialization.
- jokoon 9y agoWell if it's derived from math, give the techniques, not the math. I don't care if it's accessible for me or not, it seems the guy is saying ML is the new electricity, lowering the bar won't only benefit me, but many other people who know programming and don't benefit from knowing the math. Just my opinion. Many people and hackers learn by practice, not by theory.
- inimino 9y agoWe need both electrical engineers and licensed electricians. If you want to be an electrician, don't sign up for an engineering class taught by a pioneer in the field of electricity and then complain that there is too much theory. Coding bootcamps and vocational schools already exist to meet the needs of those who only want to be practitioners. Everyone learns by practice, but that applies to math just as well as programming. If you don't practice it, you won't learn it.