3 ms·
You thought that figuring out how to vectorize the solutions was "child's play"? Sure, coming up with any-ol' working solution was child's play, but figuring ho
by nessus42 14y ago
You thought that figuring out how to vectorize the solutions was "child's play"? Sure, coming up with any-ol' working solution was child's play, but figuring how how to get the solutions to be one or two lines of code containing only matrix operations wasn't child's play. It wasn't rocket science either, but I had to put on my thinking cap a bit.
- waterlesscloud 14y agoOne thing I've noticed in most of the online classes is a tendency among a vocal subgroup to talk about how easy the material is, even when it's not. It's just alpha nerding, same as any other venue. And if it's really that easy, then as you say, why not impress us with how you've gone beyond it. Anyone who can type can say it's easy. Show us something.
- tomp 14y agoWhy can't we have a real discussion here on HN, without our egos being hurt and without throwing around such subtle insults as "alpha nerding"?!? I was just being honest. The exercises were easy for me. I'm sure they were not for many people. I don't care, because I don't compare myself to others in this way. In comparison to other people around me, I know I'm very smart/capable for some things, and suck at others. I'm not saying this to feel better or so that you would respect me more. I'm saying this because it's fact. The way I see it (without having to compare myself to other people), I'm capable enough to reach many goals in my life, but I would like to improve myself in many areas still. But anyhow, you've completely missed my point.
- tomp 14y agoAs you say, not child's play, not rocket science. But, that's besides the point. That has nothing to do with programming ML, but everything with programming Matlab. As I said, the programming exercises would be more suitable for a programming course, not a ML course. In addition, vectorization wasn't even necessary to solve the problems. Yes, that's how I too made the exercises more interesting, but that could be done with almost any kind of programming exercise in Matlab.
- nessus42 14y agoI think there's some benefit in figuring out the math well-enough so that you can translate each formula into a small number of linear algebra operations without any loops. They weren't always expressed that way. If they had been, then the homeworks truly would have been child's play. If it's concentrating more on the math than on applying the stuff to real-world problems that bothered you, then you wouldn't want to take the real full-blown Stanford class. That class is largely doing rather difficult math proofs and the like. I'm not sure I understand the argument that you could have solved the problems in a lazy fashion, however. Such lazy solutions aren't good for the real-world, as they don't perform well-enough. Part of the insight taught in the class is that you have to look for these sorts of performance optimizations in order for the solution to be feasible to use in the real world. If the problem is that other students could pass the class without having put in the same effort as you and I did, who cares about that!
- tomp 14y agoI don't want this to develop into a flame war, so this will probably be my last reply in this thread... I studied math. I love math proofs. It's just not what I would expect if I would sign up for a ML class. Note, however, that I'm not complaining about the contents of the ML class, which I think were awesome, a really nice broad overview of the ML techniques. I really think I learned a lot. I'm just complaining about the homeworks, nothing else. They were not ML homeworks, they were CS homeworks (particularly, Matlab class homeworks). I don't know the contents of the real Stanford class, but believing your description, the same kind complaint applies. You're wrong when you say that "lazy solutions" don't perform well in the real world. In the real world, robots aren't programmed in Matlab (I hope). In compiled languages, loops are just as fast as vectorized code (which is implemented using loops). Vectorized code having better performance than imperative looping code is just an artifact of the fact that Matlab (and e.g. R) are interpreted languages. (Sure, there might be some additional optimizations possible on vectorized code, like SIMD instructions, cache locality, special algorithms for sparse vectors/matrices, but this is in most situations premature optimization. Being able to write correct code and read it later beats 2% gain in performance!)