Would recommend, but not for the faint of heart. Perhaps the most difficult class in the cs department. I took this during covid so I had the time to devote to this class to get a decent grade but under normal circumstances this class would probably kill your social life. Gives you good fundamentals to attack deep learning, although arguably a lot of the content is useless for that if that’s what you want to get into. Also for the class competition everyone uses dl techniques so be prepared for that. The homework is hard but very doable if you have the ma background, you just have to understand what the problem is asking. Verma is a good lecturer but not very approachable imo. This class requires high skill in math and programming. If you don’t have that, reconsider. If you do, get ready to lose your social life, although if you are good at math and programming you probably didn’t have one to begin with.
Overall, I wouldn’t recommend unless you have a deep math and stats background. Prof Verma is a great lecturer and explains concepts very clearly. However, the exams and homeworks are so incredibly difficult and way beyond the scope of what is covered in lecture. The homeworks take exorbitant amounts of time and are nearly impossible to complete without attending office hours regularly.
I came from a stats background with a CS background, so I don't think this course's difficulty for me resulted from a lack of preparation. That said, I found the difficulty of this class to often be absurd, and that's coming from a student with above a 4.0. The problem sets are interesting but I found them to be so difficult that doing well on them was mostly a matter of having time to go to office hours for the solutions. Moreover, they are extremely time consuming, and I would argue excessively so for a 3 credit class. The midterm was not too bad, but Verma corrected that mistake with the final which was quite literally the hardest exam I've ever taken in my life. With that said, the class is curved so on net I guess that doesn't matter much. To end on a good note, lectures are good and I feel I learned a lot, even with some prior background in ML. Verma is a very good instructor when it comes to lecturing and explaining proofs and concepts. The only knock I have on the lecture component of the class is that we didn't get to HMMs which were the part of the class I was most looking forward to.
Do not expect any empathy or understanding from Prof. Verma if you make even a small mistake--I got a 0 on a homework worth 10% of my final grade because I misread something and tried to turn it in literally 10 minutes late. The homeworks take forever to do, and the exams are pretty challenging. That being said, he is a good lecturer. However, it is not very applied--we go through a lot of proofs of random things, and code algorithms from scratch, so if you're looking for that do not take this class.
I took Machine Learning with Professor Hsu in Fall B 2020 and I truly loved the course. He is a very chill person but also obviously a genius (that h-index though!); that combination made the class really rewarding, at least in my opinion. I really liked his lecturing pace and methodology, as he would carefully walk us through the math of everything step-by-step, so that we could truly understand the statistical and linear algebra foundations of all the different modeling algorithms. I also really enjoyed the homeworks; I felt they were highly challenging but doable in the end -- especially with groupwork!! Maybe the downside is that the class is not curved, so I felt high pressure to achieve perfect grades on everything. But, that's better than getting straight 50s in Verma's class, in my opinion; you can focus on truly understanding and appreciating the material as opposed to "beating the curve." Overall, lovely class, and I miss it.
I don't see any reviews for how this class was virtually, so I'll go ahead and throw one out there. In short, depending on your math background, I'd say this class could range from pretty difficult to regularly feeling impossible. The tests are pretty hard (sub 50 medians), and the exam caliber practice material is pretty limited. At best, you might be able to find old exams from other schools like CMU or UC Berkeley which are good for seeing if you can apply what you learned, but I found Verma's exams to invariably be harder and impossible to thoroughly finish. If you've taken multivariable calc, linear algebra, and probability you'll be able to comprehend the symbols on the homework (which is often an important first step in solving the problem!), but beyond that, I think having some kind of classes in real analysis and convex optimization would make the intuition much easier. The TAs were good and helped make the problem sets doable. The prerecorded lectures are nice, and Verma seemed helpful in his flipped classroom office hour sessions. The difficulty with the online format is especially compounded by the fact that no group work is allowed on the homework, so you can't just do 2/5 problems and have your group mates do the rest. It seems the difficulty of the problems was scaled to match things, but the class is inherently hard and there's only so much adjustment that can be made without compromising the integrity of the education. Another brutal aspect of this course is that the gap between the final and the last PSET is small because the exam happens on the last day of class, so there's no reading week to study for it. For reference, during the fall A term, the PSET was due on Monday and the exam window (there was a 48 hour period during which you could sit and submit the 2-hour exam) opened on Thursday. This meant you had most of 3 days to really dedicate to studying for the CUMULATIVE final without worrying about other stuff in the class. Good luck if you have a bunch of other stuff going on in those 3 days. The programming can handily be completed in python and isn't a real focal point of the course— it's more focused on the theory and you receive basically 0 help on any debugging or algorithmic design. If you don't know python don't use this course as a way to try and learn it from scratch. If you know some basic python and are good at googling how to solve your problems, you'll be ok. Despite how hard this class is and how much past experience with the subject matter helps, I'd still recommend it to anyone willing to try really hard because it's one of the few classes I've taken where I feel like I really learned something. I now can read papers on machine learning and have some remote idea of what's going on with the design, and I feel like I can use many existing tools with intent and knowledge on the advantages and drawbacks of each. While the class is curved in the end, don't take it if you're looking for an easy A. I think to the average undergraduate student that's taken the bare minimum prereqs listed on the course website, an A- and maybe even a B+ are great achievements here.
This is the best course that I have taken among all courses from my undergraduate and graduate schools. This course is epic. This course covers the foundation of machine learning. You will learn different machine learning algorithms from the foundation supported by math and proofs. I have weak mathematics before taking this class. My math background only has intermediate-level linear algebra, calculus, and intro-level probability. I haven't done math problems for three years. Before taking this course, I also have completed Andrew Ng's online course. Before enrolling, I thought I might struggle in this class but, in fact, I survived well and really enjoyed my experience. First of all, this is not a relaxing course. It is challenging, but it is not a hard course! What I mean is that the course homework and tests are challenging, but this course is amazingly organized and Verma is an extremely capable instructor. Even though this is a challenging course, I feel safe and comfortable when I sit in the class even though with a weak math background because of Verma's teaching. Verma is very patient on teaching his topics and he cares about how his students learn with quality rather than quantity. He is a strict yet kind instructor. I could feel that he ardently cares about his class and his student. His teaching is perfect. I can understand everything that has been taught in his class even with my weak math background. The pace of the class is slow and nobody would feel lost. The homework are challenging but are interesting to solve. If you spend time on them you can always find solutions. TAs are also helpful in Piazza and OH. The tests are also challenging. However, grades are generously scaled and you might get A- if you get 60% in tests. I learned so many things from this course and it helped me build a fundamental understanding of machine learning problems. If you really want to work in ML-related careers or research, this is the recommended intro-level course. If you hesitate whether this course is too hard, I would say be brave and enroll. You will be fine (suppose you can get 70% right for the homework 0, which is the precondition of enrolling in this class . 70% is not a hard target). Columbia University's tuition fees are expensive. You want to spend your money in the right place, this is the course you should take
I like Professor Verma so much that I decided to write a review: note that I'm biased. Prerequisite: usually linear algebra and prob-stats. But I personally wished I learned more math, especially optimization related math. Although without those it will also be fine, with those knowledge you'll definitely get more out of the class. Homework: up to three students in a group, usually due 2~3 weeks after being posted. Try to pick your teammates cautiously, because if you don't, you'll be the one doing most of the work, which means a lot of hours into homework. I usually go to at least 6 hours of OH every week and read/post on Piazza to figure out the homework. But the homework problems are all interesting! And Professor and TAs are very helpful and responsive both in person and on Piazza. Fortunately, we only had four graded problem sets and the last one is optional. And no homework was due during spring break, which is nice. Exams: Professor Verma made clear that usually you can pick some questions to finish; this is true. Due to the time constraint of 75~80 minutes, and there are 6 problems in total, I usually can only finish 4~5 problems and not all of what I wrote would be correct. But there's curve, so don't sweat too much. It's supposed to be hard! This class teaches various topics on machine learning and I feel I actually know stuff about ML now. One thing I found helpful is that all the additional notes he linked on his website for each topic covered are very helpful. After lectures, sometimes I still have questions about the topics; if I read those notes, most of my questions get resolved. Make good use of them! Go to his OH and you'll learn a lot too! He is very approachable. TAs' recitations are also helpful. He's teaching a topics class on unsupervised learning next semester (during the summer too). Take his class if you can.
Prof Verma's Machine Learning class is a confusing mixture of being not technical enough and over-technical at the same time. He assumes knowledge of some advanced multivariate calculus, multivariate probability and linear algebra without going through the techniques explicitly or in any systematic way, while the prerequisite classes cover nothing close to what he requires. This could be partly due to the fact that half the class are grad students, with the overall result that undergrads feel very left behind. At the same time, Prof Verma introduces results of some advanced derivations, skipping over the math in class entirely with the reason that "it is too easy/simple/boring", but expects you to reproduce it in a test. He focuses on teaching the "intuition" behind the proofs, yet fails to understand that "intuition" comes from understanding, which is impossible for most students unless he goes more into the math. Another huge blindspot for the course is that Prof Verma does not give out solutions for his practice exams. This could seem forgivable, except the homework questions are nothing like exam questions (problem sets are more like mini-projects while exam questions are just out of nowhere), so students who have seen questions of this type for the first time are forced to study without any guide or solution. This coupled with reasons mentioned in the above paragraph result in overall confusion before the exams. (In addition, no one does well on the actual exams). The lack of solutions handed out caused some Piazza savagery in my section, which I feel was actually quite justified. I hope Prof Verma sees this and realizes that no learning happens if the correct answer is not given. Perhaps he believes in unsupervised learning, but the results of this can be unboundedly far from the global optimal. As an example of how ridiculous the technical expectations for this class is, during class Prof Verma regularly mentions Convex Optimization, some material from which is relevant in class. I looked up Convex Optimization and it is E6616 - a 6000-level course. If you're not prepared to deal with some 6000-course material that will not be explicitly taught to you, you may not want to take this Machine Learning course. I personally feel it is a shame because the material is super interesting and relevant, and could have been much better taught. A suggestion is a more depth, and less breadth, could improve the class significantly. Overall, this class seems to reward prior knowledge, rather than diligence over the course, which is something I have an issue with.
Professor Verma's ML section was definitely worthwhile. He's a clear lecturer and gave homework that really helped further develop the concepts we learn in class. But, be warned that the homework was difficult and time consuming, though this is somewhat mitigated by the fact that he allows students to form groups of 3 to work on homework together. Tests were a mix of very easy questions and a couple rather hard questions. Some of the more in-depth math was fortunately not tested on exams, but there were some difficult theoretical problems. Overall, particularly with the curve, the tests were definitely manageable. Personality wise, Prof. Verma is great. He cracks jokes during lecture and he really cares about his students. His OH often seemed to extend passed the slotted time so that he could continue to help students. His niceness was a bit of a drawback at times in that some students would occasionally eat up a lot of lecture asking basic or unnecessarily involved questions and he wouldn't cut them off, but he got better at handling this as the semester progressed. Overall, this was a good course that'll teach you ML basics, but it will probably be one of the heavier workload courses you'll take in a semester.
I took Machine Learning with Professor Pe'er in Spring 2017 - I've been tardy about writing a review, but I feel it is necessary. I am genuinely in awe at how bad my experience in this class was, in seemingly every way. To start: Professor Pe'er. It is fortunate that this man is, in fact, a professor - were I to call him "Instructor Pe'er", one may get the false impression that he is capable of instructing anyone. He is not. I have never seen a human so uniquely unsuited for pedagogy as this man. His classroom delivery is a complete trainwreck - when he's not stumbling over his words or saying "ehm" for 15 seconds, the words he does say are incomprehensible, even when explaining material that is clearly within students' grasp. Unfortunately, most of his lectures did not fall into this category, as the prerequisites for this class grossly understate the necessary statistical background. As a CS student with only an intro-level stats background, I rarely had any idea what the hell was going on in lecture. Professor Pe'er's attempt to bridge this gap was laughably insufficient: he spent one day at the beginning of the semester attempting to speed through all of statistics. It didn't play well. Here is how Pe'er explained what a convex surface was: he brought a muffin into class, and passed it around the room. Here is how he explained differences in dimensionality: he printed out a picture of Antarctica, wrapped it around an apple, and placed it under an overhead projector. He proceeded to stab the apple with a knife, cutting out the outline of Antarctica. I wish I were joking. One gets the impression that he might not know the difference between "preparing for lecture" and "purchasing lunch". The homeworks, while being the only useful part of the course as far as my own learning was concerned, similarly left a lot to be desired. Each problem set was written in impossibly dense and questionable English, requiring several hours of what was essentially decoding by TAs and other students before the meaning became clear. After this, the process of completing the homework wasn't much better. There was a STRONG emphasis on the mathematical background of the material, which I wasn't a fan of: despite having completed a course in machine learning in the computer science department, I feel I've gained almost no intuition for how/when to use the models we supposedly learned. Focusing on the math behind ML seems to be typical of 4705; this could have been fine if the instructor was capable of pulling it off. He was not. Even Pe'er's slide decks were of marginal use, combining incomplete/incomprehensible sentence fragments, mathematical derivations that were somehow both excessively long and too incomplete to actually follow, and completely indecipherable scrawlings done in class. The textbook for the class was also too dense for a beginner in the subject to comfortably consult. In order to be able to complete the homeworks, my classmates and I had to teach ourselves all the material from slides we found online from other universities. Literally nothing the professor provided to us contributed to our learning in any capacity. The only saving grace was that the TAs were all qualified, helpful, and not completely devoid of pedagogical abilities - unlike the professor. I regret this class more than any class I have ever taken in my time at Columbia. I had read the previous Culpa reviews and thought, "Oh, it'll be fine." I flew too close to the sun. It was not fine. Do not take it. Do not take any class with Pe'er.
Never take class with Martin in IEOR, Martin is the worst professor in Columbia. The topic of the class is interesting, however, Martin makes it a bad experience to learn it, rash through all topic without clear explanation, and all slide, both graph and text come from the reference book. But proof are deleted on purpose. Talk about some deep topic but do not provide any clear explanation about these topics. In the exam, he ask you to do proof that he never went through in class. He pretends that he knows everything, but how could a guy know everything but never talk about anything in lecture. learn the material by yourself is even better than learning with him.
I cannot stress enough how awful this teacher truly is. He will teach you absolutely nothing. He does not explain anything thoroughly. He cannot answer any questions. His slides are a total mess. If you can avoid taking this class with this teacher, I highly recommend you do.
I'd heard horror stories of other ML professors at Columbia, but Satyen turned out to be a dream. I believe he used Daniel Hsu's syllabus and materials throughout the course, but his style was much different. While Daniel focuses heavily on the math and the proofs and (I would assume) hope that intuition on the mechanisms of the ML models follows, Satyen would focus heavily on the visuals and step-by-step walkthroughs of everything before touching on the math. He hadn't taught before, but I feel like coming from industry was a boon because he seemed comfortable going through the same concepts a couple times to make sure everyone got it. He managed to make almost everything (even kernels!) readily digestible, and made me feel confident in being to implement models later in the homeworks. My only gripe with him was the mathematical rigor of the exams. He lifted them straight from Daniel, who spends _his_ classes delving into math, so the dissonance between Satyen's style and the first midterm was jarring. When students pointed this out on Piazza, he made an effort to include more proof-based questions on the homeworks to give us exposure to the type of questions we might expect on the final. I still didn't do too well on the final, but neither did anyone else.
Prof. Kale is a nice guy, but as a first-time professor, he is not very good at lecturing. His explanations of the conceptual stuff is very clear, but when it comes to the derivations and proofs, I don't think anyone in the class really understood what was going on. Which sucks, because the exams are all about math. His strategy for explaining math seems to be to click through the slides as quickly as possible. The good part is that Prof. Kale takes student feedback _extremely_ seriously, so after the midterm he included more math questions on the homework so that we could have some preparation. (Some would argue that he takes feedback seriously to a fault, in that there are too many extensions) As much as I am complaining, this course did a good job of introducing me to a wide variety of machine learning techniques which is exactly what an introductory course should do. It demystified machine learning, by showing that most of the algorithms are intuitive and simple. Realizing this also gave me more confidence when doing math by teaching me how to look past the weird symbols and realize that the ideas behind them are also simple.
I am about to say some things that will scare you, but when it comes down to it, you should take this class. Daniel: Daniel is an expert. This is both good and bad. It is bad because he will sometimes explain things as though we are all on his level, when really no one else is. Additionally, the homework problems can be very challenging and overly mathematical. However, Daniel is more than happy to answer any questions during lectures, so make sure to ask if something gets glossed over. Additionally, you will really understand machine learning after taking this course. I recommend that you print out the slides and take notes on them, as for me they were useless without commentary (because I am not on Daniel's level). TAs: Our TAs tried really hard, but a few of them fell very short. They often could not help with homework and were unable to answer questions about exams. However, homeworks were graded fairly leniently to make up for this. I was fine with the compromise as I still learned a lot, though it was very frustrating at times when trying to complete difficult homework problems. The best thing was there were a lot of TAs and there were at least one set of office hours each day. Homeworks: Most homeworks involved a MATLAB component that was never too difficult, and was always my favorite part of the assignments. It was cool to actually apply everything and have a classifier that had a low error. Some people thought that these parts relied too heavily on understanding the tricks of MATLAB, but I always just had long runtimes and didn't bother too much with optimization. I never got points taken off for this. The written parts of the homework could be too mathy for me. Additionally, everything had to be typeset so you couldn't just write it out and then take a picture of it, which always added at least an hour to the write-up. Exams: The first exam was extremely long. I don't think anyone finished early. It was tough but I think it worked out pretty fair with the curve. The second exam wasn't so long but I thought it was extremely hard. There were some questions that were straight linear algebra without even having an ML twist on them, which I thought was ridiculous as I had taken CLA 2 and a half years before. However, the curve on that ended up okay too and I think the curve overall was also very fair. I did put in at least 90% effort into this class, but I still ended up with a higher grade than I expected. Readings: There is a statistics textbook that I couldn't even read it was so over my head. However, the actual ML textbook can be very helpful and is great to read after lectures to clarify things. There weren't as many readings in the second half of the class and I pretty much stopped doing them after the first exam.
This is a decent class where you will be challenged, put up with lousy instruction but learn a good deal in the process. Daniel Hsu is a super smart professor but about as engaging as a piece of wood. He knows the material in and out and leave you with an appreciation for ML by the end. The class runs pretty smoothly from an operational perspective. The response time on Piazza is insane - Daniel gets back to you in a few hours, especially right before HW deadlines and exams. His answers aren't generally helpful. You see a lot of monosyllabic "No"s as answers and he will put you down if your question is stupid or poorly worded (thank god for anonymity). However, when he does deem your question worthy, you get a thorough response. The course assumes you have a decent background in calculus, statistics and linear algebra. Daniel does not pull any punches on the math. If you've taken Calc III, Linear Algebra and Intro to Probability and Stats, you should be fine. You have to be familiar with some matrix calculus, basic probability and stats (multivariate Gaussians, expectations, Baye's rule), projections, eigenvectors and SVD from linear algebra. Daniel focuses a lot on a lot of theory in machine learning and less on practice. Lots of long proofs and details on the math behind classification models. I personally think this is excellent since ML is inherently a very mathematical subject and understanding it at this level is key. We covered MLE, generative models, decision tress, linear classifiers, perceptrons, SVM, kernels, some ML theory, boosting, regression, PCA, clustering, entropy, HMMs and some math behind a lot of these topics in detail in their own dedicated lectures. Lots of good stuff! It was impossible to stay awake in class since he turned off the lights in 501 NoCo and is a pretty boring lecturer. He doesn't engage with students unless someone asks a question. Thankfully, his slides are great and available online. I encourage you to try to pay attention in class because sometimes the slides are hard to understand on your own right before the exam at the last minute. The homeworks were reasonable and consisted of a mix of theory and programming questions. They were challenging but nothing you couldn't do by spending some time pouring over the slides and going to office hours. Some of the theory questions were hard and it took my hours reading lecture notes or going to office hours to figure them out. The programming part tends to be simple but you have to vectorize your code for it to take minutes not hours, which can be a bit tricky. Assuming you don't pay attention in lecture (because it's really hard to) and that you have to read the slides from scratch to solve the HW, it takes 8+ hours of work on average. TAs were not helpful since they often couldn't solve the homework themselves. His exams are impossible. Numerical grading on tests and homeworks was very generous and countered the difficulty of the exams. However, his letter grade assignments are on the harsh side. I heard StatML with Cunningham is fantastic. He's a great lecturer and focuses on intuition. If you want a more practical course, I would suggest that. If you're a CS major in the Foundations or AI tracks and need ML to count towards your track requirements, you're out of luck. Daniel's class is not bad and I would take it again even though it was a little painful.
The only reason not to take this class with Daniel Hsu is if you already have a full workload for the semester. It's great but pretty difficult. The overall curriculum of the course is heavily mathematical. There is relatively little concern with "real-world" issues like cleaning data or choosing good features. There were some students who sounded like they wanted a course that would teach them how to apply canned algorithms from sklearn or something. It's more about how to implement those algorithms. The first half covered classification problems of various kinds, followed by some learning theory. There's some statistics which comes from a really interesting and unique perspective. It's the first time I've felt statistics wasn't boring. The second half covered unsupervised learning (clustering, etc.) and Markov models. Sprinkled throughout are theoretical discussions of optimization techniques used to fit various models. Finally, the last few lectures were just topics that the professor thought would be enriching, most notably a lecture on how rating prediction systems like Netflix actually work. The class structure is pretty normal -- readings (that you can get by without doing), lectures, and problem sets, plus two exams. The course had a Piazza board, which the professor was always watching. He would give clear, excellent answers, even at weird hours in the middle of the night. He also remained available the night before a problem set. I thought it was nice that he didn't pretend we had good time management skills, although I agree floating late days would have been good, or at least penalties for late assignments rather than refusing to accept them outright. The lecture slides are all posted online and are detailed and excellent. I didn't need to take any notes. But this doesn't mean it's not worth going to lectures! Prof. Hsu is a good lecturer, although sort of quiet. His explanations perfectly complemented the slides. When students asked questions, he listened carefully and gave very clear and cogent answers. We covered a ton of ground, at a decent level of mathematical sophistication. I think perhaps the professor overestimated our mathematical competence. However, those high expectations along with his good teaching skills made this a great class. Hopefully Columbia keeps him around.
TL;DR: Hsu is a solid professor if you're a math-y sort of person who wants derivation, proofs and (by CS standards) rigor. But if you want an easy ML survey course, go take AI, which is pretty much that. The good: Professor Hsu is by no means the most charismatic lecturer at Columbia, but he teaches a solid ML course. His lectures are thorough and rigorous -- he does not succumb to the temptation to use teaching a survey course as an excuse to skim easy topics at a high level -- and the online lecture notes are quite good. Also, it was really nice that the two textbooks the course uses are both available online for free, legally, and that he provided us links to them, unlike so many professors who assign the $300 latest edition of [insert textbook] without giving students' finances a second thought. I was absolutely amazed how fast he responds to Piazza questions; he was single-handedly more responsive than a crew of about 8 TAs in another of my classes. The responses, always within a few hours, are sometimes not what the poster is hoping for (monosyllables aren't unusual: quite a few questions get a "no." and no more, particularly if they're stuff like extension requests), but the question is invariably answered in full. And that means stuff like "what should we review for the final?" gets answered with a 28-point bulleted list. The bad: No floating late days. There's a reason almost every CS class offers them, and it's both because they avoid all the whining on Piazza from people who put their work off to the last minute and because they provide a way to grant a bit of deadline flexibility without being unfair to anyone. Professor Hsu, if you read this, you really should consider having a few floating late days. The first midterm was to a considerable degree just a speed test (caveat: I didn't feel that way; I mostly missed points for not being able to remember material. But everyone else I spoke to felt it was a speed test) and the curve was, by CS department standards, fairly tough. The lecture hall (the huge one in NoCo) was dimly lit and has poor acoustics, which didn't make staying awake through lecture any easier given that Hsu isn't exactly lecturing at John McWhorter levels of energy most of the time.
Pros: I thought the assignments were good, but super time consuming and there was one every week, that will squeeze all the time out of you, but in a way you learn. Midterm fair and final was ok. Grading was reasonable. Cons: The worst classroom delivery I have ever seen in my entire life including school anywhere. Machine learning is no doubt fascinating but does require some foundation, but his classroom delivery is some of the worst I have ever seen, stammering, stuttering, is ok for CS 101, in a community college but totally unacceptable for a graduate level course in such a esteemed institution where the pay for professors is high and the fees are exorbitant. On top of his inaudible and cringe inducing voice the material is complex but no doubt interesting. Professor needs to desperately address this and take a look at videos of himself on how to improve for future classes or otherwise just stay a researcher and not lecture. Just look at the how well Andrew Ng did his course in Coursera on Machine Learning. Because of the above it felt a waste of the money we spend on course here. I think Jebara would be much better, understandable and you would feel your moneys worth. But if you can bear and listen to him maybe the course is made for you.
Machine Learning is a fascinating subject and is clearly a very valuable subject to know about. However, our class was very unfortunate to have been taught by Professor Pe'er. He is by far the worst professor I've ever had in my academic experience. To add insult to injury, he is very unapologetic about the way he manages things and treats his students unfairly. Assignments: Every assignment included grammatical errors and unintelligible sentences in addition to mistakes in the problem descriptions. As a result, 1-2 day assignment would turn into a week-long affair. Future assignments are also based on answers to previous ones even though the class was not given the solution to the previous assignment. As a result, students who might have had incorrect answers in the previous assignment would unknowingly have errors in the next assignment. Misinformation: Professor Pe'er likes to portray himself as a fair individual but time and time again did he prove us wrong. Our first quiz was multiple choice test where correct answers were given 3 points and incorrect negative 2. However, the class was not told that leaving answers blank would result in negative marks too. Another example of this kind of behavior was demonstrated when he ran a poll to decide whether assignments should be due on a Friday or Wednesday. >80% of students who voted, voted for Friday yet the Professor appeared to have conveniently forgotten to tell the class that over 60% of the entire class needed to participate in the poll for it to be deemed valid. Something he decided to tell us after the fact. Sadly there are many more examples of this kind of behavior which is simply unprofessional. I can't speak to how Prof Jebara might teach this class and whether it's any better. But my main advice would be to stay away from Prof Pe'er, simply because you'll waste more time clearing up any confusions than being able to dedicate time to the actual subject.
Machine Learning by Prof. Pe'er was an excellent class. The course was well structured, however the course load was pretty heavy. Nonetheless, the assignments and mid-term made you learn a lot. cons :- 1. The problem explanation in the assignments were vague at times. The TA's were irresponsive most of the times, thus most of the times went struggling with the problem statements. 2. It was difficult to follow prof in class, but hey, the lectures were recorded on CVN! pros :- 1. The prof was very approachable and cared for his class. 2. He atleast tried to make sure that everyone gets the concepts right. In a gist, i'd recommend this class to anyone who wants to learn machine learning in a way such that the intuition and math behind the concepts is both clear.
Prof. Pe'er is really well-intentioned, and it's clear that he cares a lot about his students. I took a lot away from this class, even though it was a struggle. That said, DO NOT take this class if you're not remotely interested in machine learning - it's _not_ worth it. There are several other breadth/AI track courses that are (possibly) more interesting. If you _are_ interested in the subject, however, I'd definitely recommend taking this class with him instead of with Prof. Jebara. 1) Teaching: If you have trouble staying awake in classes where professors speak really slowly/if you've ever been in one of the Mudd classrooms and know how boring they are, BRING COFFEE/TEA/anything that keeps you awake. Prof. Pe'er speaks really slowly, so much so that when you play his lectures at 1.5x speeds (they're all on CVN, which is great), it sounds like most people speaking at a normal pace. 2) The material: While the class is very math-heavy (as are most courses on machine learning), Prof. Pe'er is very generous with his use of examples to provide better intuitions for the concepts/algorithms covered, and even tries to do live demonstrations to help make the math clearer. Some lectures and topics have a very steep learning curve even if you have the prerequisites covered, but I learned a tremendous amount from this class and I don't think I would have gotten that much from Prof. Jebara's far more theoretical approach. 3) Homework: The homework is time consuming, not because each individual assignment is long, but because there are assignments EVERY WEEK. The assignments are hard, so starting in advance is essential (which means you're usually working on ML assignments 4 days a week at least), and responses on Piazza from the TAs are erratic and come in waves, so they're not reliable. Prof. Pe'er does allow group work with some constraints, so that usually makes working on assignments easier. But START EARLY. The assignments are also usually vaguely worded, which was a pain to deal with. 4) The tests: This was the most confusing part of the class. I think Prof. Pe'er experimented with a lot of testing styles because it was his first time teaching this class. (Either that, or he always throws 4 different testing styles at his students in all his other classes too because he thinks it builds character.) - Quizzes: multiple choice, where any number of choices could be true or false, and you lost points for either answering wrong or not answering at all. (So really, you had a 50% chance of getting it right anyway..) The questions on the quiz were theoretical and just requierd you to know the concepts, and some involved doing some basic calculations/inferences. - Midterm: Easily the best test in this class. It was take-home and entirely programming, with 50% of the grade going towards an explanation of your approach. I think the grading was pretty fair - you got graded on the performance of your approach for the programming part, and the quality of your approach for the explanation. Very straightforward and doable in the 4 day timeframe given. - Final: This came out of nowhere - the questions on the final ranged from proofs to algorithm creation to calculations - basically a very, very difficult exam. He gave us a practice final that, as it turned out, exactly resembled the actual final, but it still gave us no way to prepare, given that all the testing methods we'd had before were so different. It was almost impossibly long (though challenging and very interesting, required you to actually apply knowledge to real-world problems). 5) The curve: VERY generous curve. Another reason to definitely take this class with him and not Prof. Jebara. I think he really recognizes how hard he makes the class (in terms of workload, learning curve, difficulty of final) and curves to a high-ish B+. A large percentage of the class got A-range grades. Again, this is a professor who really cares about his students and the effort they put in, and isn't just looking to make this class frustrating and impossible. In general, he's very very responsive to feedback, even takes reasonable requests for class-wide extensions, and always tries really hard to make sure ever single student understands. I haven't had many 4000-level classes where that's the case, so this was refreshing. The class is still extremely frustrating, but ultimately rewarding if you like the material and put a lot of effort into the work.
If you find Itshack Pe'er teaching Machine Learning, avoid it, unless you know most concepts of ML in advance. Weekly assignments wasted most students hours and hours without any progress. The wording of assignment was very vague. To make situation worse the TAs were constantly unresponsive so you can't get clarification in time (and after the midterm they closed Piazza). The two quizzes, contained T/F questions, suffered same vagueness. The midterm question is interesting and good. although the grading of midterm is not very fair. it was OK. I have not taken the final exam yet, but the mock final seemed completely different to assignments and quizzes, to the extend that you might think it was for another course.
Machine Learning by Prof. Jebara was an excellent class. There are not many graduate classes at Columbia where you feel you have learnt your money's worth. Trust me, this is one class where you will feel challenged and inspired. Prof. Jebara is good with giving intuitions about many things, picking examples from Vision, Genomics, NLP. You many find this course "hard", or "uninteresting", if you thought ML is "cool", or the sole image of Machine Learning in your head is from ML class by Andrew Ng on Coursera. This is a very maths based course, and he mentions this in the first class, and urges people to drop if they can't handle it. I guess it is fair on his part, to announce that the maths will be slighty tough, I wouldn't say even tough, just different. This course will help you a lot, if you want to read Machine Learning papers, do research in the field, because there is some very odd notation involved and the course will teach you that. My vote is take this course, if you are ready to dive into hour long lectures of Mathematical Proofs, but if you are upto it, this will be a great course.
Top 5 (out of 1,024) reasons to avoid this course at all costs: 1. No matter how much Prob/Stats or Linear Algebra or just MATH in general you *think* you know, you're not ready for this course (especially if you're an undergrad.. if you're a superstar Ph.D student, make your own judgement). For example, on one of the homeworks, we were asked to perform vector calculus, which is usually not covered in any of the prerequisites. Another example is when we were asked to do multiple indefinite integrals of a particularly long formula, by hand, during a midterm as a problem worth 20% of the grade. 2. He goes through very few examples in class, (and when he does, only a select few understand him) which means that most of the homework problems you have absolutely no idea how to do, even if you took the best notes humanly possible in his incredibly dull lectures. For this reason, academic honesty in its strictest definition (no looking through internet for answers, no collaboration on homeworks) is nowhere to be found, because it is impossible to do 90% of the workload in this class otherwise. 3. He can't teach. I will leave it at this because no other words can describe how truly bad he is. 4. Since this isn't an absolute requirement for any tracks (even for AI, you can take much better courses such as Spoken Language Processing), you can do yourself a favor and take this same course on Coursera or other excellent online alternatives if you would really like to learn Machine Learning. This is more ideal since Jebara's class is the least efficient place to do any learning. 5. http://www1.cs.columbia.edu/~jebara/ Look at his picture. He is smiling smugly at the pains you will have to go through to survive in his course.
Most of the reviewers from spring 2011 class have got it right about the lecture style of prof Jebara. He simply can't teach. I think the prerequisites are enough to prepare you for the math covered in the material; you will have the opportunity to explore more of differentials applied to matrices, lagrangian and bayesian probability. For me it was pain attending lectures as I could hardly follow him. I guess his lectures were hampered by the size of the class. He would always seem to be in a hurry to cover as much material as he could without really caring whether students understand any of it or not. Like many others, I had to rely on online lectures from Stanford to build a proper understanding of many concepts covered in the class. What a shame! Assignments do well in helping you get the feel of the concepts but are not substantial enough to endow confidence to tackle hard problems. Mid-term was a disaster. Final exam was good, I thought.
The topics were extremely interesting. All of the readings were fun and understandable. Unfortunately, the class was enormous with about 200 people and the lectures took a hit. The instructor had no clue where most of the class was, and questions were rare. The lecture slides and lectures assumed reading ahead of time, and half of the class seemed to be behind. I got an A+ and I didn't do anything special other than read ahead in the book. The class doesn't lost as prerequisites but should MATLAB, optimization (Lagrangians, subgradient and gradient methods, etc.), graduate probability ( measure spaces, Bayes, and conditional/causal reasoning, etc.), lots and lots of linear algebra, and differential equations. It felt like he was trying to fit an entire career of ML into one semester. Some I sat next to in class were from basketweaving departments like OR or Business. This is definitely a math or statistics class.
Warning: this class should be an applied math course. I attended lecture frequently but learned nearly nothing, and the slides were incomprehensible. He assumed a level of math that was not reflected in the prerequisites whatsoever, but at the same time, he oversimplified some things to the point of being confusing: he explained what an integral was but then, a few lectures later, used Lagrange multipliers without a single word of explanation. The homeworks were nigh impossible, and the midterm was about tangential mathematical properties of the equations that we based algorithms off of. This course is by far the worst grade I've gotten at Columbia, despite the effort I put in.
This is a very difficult course made much worse by the fact that he simply can't teach. From what I understand he is very good in his field, but that does not translate into the classroom. The lectures are confusing and the slides are difficult to understand. He spends slide after slide on the easiest parts and then glosses over the more difficult concepts because they're "obvious". I and a lot of other students in the class didn't bother to use our notes and materials from his lectures to prepare, instead using the freely available materials for the Stanford machine learning course. It's absurd how much better they are. Jebara isn't very approachable. If you look at his personal web page he has about ten different places where he says he's busy and can't be bothered. The TA's are hit and miss - there are one or two that are good and will actually try to help, but the rest aren't that great. I'm pretty sure one of them never actually held office hours. He just sent out an email that he was canceling every week. Also, there was a really strange incident that stuck out at me: on one of the homeworks one of the TA's announced they thought there was a lot of cheating going on, as they got a lot of almost identical submissions (something like 40 out of 130ish students), and their response to this was to take a few points off the grade of any student with one of those suspicious homeworks who asked for a regrade. It just falls in with the fact that, as a general rule, the professor and TA's for this class just can't be bothered.
One of my least favorite classes at Columbia. I am sure the professor is a genius in his field, but it was not well executed or translated to undergrads. The lectures were dry at best - the class was not engaged. The lectures were very repetitive - you realy only needed to go to every other class as he spend the first half reviewing and the second half teaching (though I did go to every class). The slides were confusing with too much information crammed into them. The teacher was not very approachable - I went to his office hours but he was unable to explain the proof in question to me. Much of the course was over my head, in part because the prerequisites did not prepare me. Iw as not alone in this, but the course was not taught with this in mind. The TA's were horrendous at best. The did NOT understand teh material. I would usually start the homework the day it was assigned - if I went to office hours then I was told I was working too early and they were not yet expected to understand the homework. I was also very annoyed when, after a homework had been live for a week (and I had completed it) it was changed.
There's a lot of debate on the background required to take/enjoy this course. Let me give you mine: Linear algebra (important, forgot), Gradients/Hessian (slightly important, forgot), diff/integ of exp, log, poly (important, very good), Probability (most important, Very good), Statistics (not needed, forgot), Optimization (slightly important, none), MATLAB (most important, none). Do not let people intimidate you, you can still do very well in this course by honest effort. Besides Prof. Jebara is a very good and considerate teacher who buffers his lectures with essential background material. I'm puzzled with the other reviewer's comments regarding the material with respect to Ng et al. The combination of topics such as SVMs, VC Dim, graphical models and Back propagation is rare. Digging deeper, 6.867 at MIT is very similar in scope. His slides are a work of art! Beautifully thought out with rich visual cues. TAs were brilliant (Pier Francesco Palamara and David Bondatti). Patient, welcoming and knew the material inside out.
Nice guy, a horrible professor. The main problem is that he tries to fit way too much information into slides and is so boring that you stop caring about the course. He also interlaces examples while introducing examples, which may seem like a good idea, but Prof. Jebara introduces them at such bad times that you don't learn anything. Also, the homework is embarrassingly easy and you don't learn anything, so by the time exams roll around, you don't have a clue what happened in the class. Before people spout off bullshit about how machine learning is hard, try to find a lecture about ML by Andrew Ng (Stanford), Michael Jordan (Berkeley), or Tommi Jaakkola (MIT), or for a different flavor Carlos Guestrin (CMU). All the classes they teach cover more material, but the students are able to understand more material and understand it better.
My opinion is opposite to that of the other two reviews. While I do not rate him as the best guy in the department, he is not as bad as the other two reviews suggest. Machine Learning is a specialized field, unlike other core cs courses, it is interdisciplinary. It does need a good background in Linear Algebra, Calculus and a bit of statistics. WIth the right background, if the course is taken, the course is really enjoyable. Some of his slides are really good (again if you have the right background needed). Compared to Machine Learning home works given at other schools by other professors, his home works really make you understand what you implement. Overall I would give an A- for his course. I would like to stress that you need right background and interest to appreciate his classes
One of the worst professors at Columbia. Not a mean guy, by any means, probably a genius in his field, yet not a very effective lecturer. Be sure to know your linear algebra and calculus cold because this is what this course is all about. If you're a statistics major, all the better, the course will be a breeze for you. All the rest, keep out.
Allegedly Columbia's resident machine learning guru, Jebara is an extremely mediocre professor. The lecture slides were unhelpful at best, and he basically just reads off of them during lecture with some supplementary doodling on the blackboard. Still, he's a nice guy who will be happy to explain stuff in office hours, but I found the books to be the most helpful, especially for the homeworks. As for the course, be ready for A LOT of stat and linear algebra before you get to the good stuff.