Perfect Last ML Class to Take
Fall 2024Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (3.9 / 5):
Workload: 15 hours/week
Pros: 1. Literally the title - best class to end on if you plan to take all of the ML classes (I will explain why below) 2. Professor was very knowledgeable, explained concepts well, and actually tried to engage on the discussion forum 3. Homeworks have a ton of the boring boilerplate code already done for you, so you can focus on actually applying the NLP concepts 4. You actually are encouraged to use LLMs which was really funny and cool to me. Cons: 1. I never like classes with final projects and this one was time consuming and took a very long time to actually wrap your mind around and understand what you had to do (but graded very nicely) 2. Having to grade your peers' homeworks is always annoying. 3. It's annoying that you're forced to do all of the problem sets after each module. They're all due at the very end of the class and I think most people naturally just wait till the very end to be done with them. Very much a "came in one ear, came out the other ear" situation. 4. (Slight con) Lectures became hard to follow at the very end of the course, I think both because concepts became more obscure and we were focused more on the final project. Detailed Review: Professor does a fantastic job in a very clear and concise way at reviewing quite literally the fundamentals of all the other ML classes in the program (ML/DL/RL) at the very beginning of the class. It did a great job to reinforce everything I have learned and help me really understand what the ultimate motivation of ML actually is. And that was exactly the order I took the classes, with this being the last, so I thought it ended up perfect. I definitely would not take this class first, nor would I take it before DL since you definitely do use neural networks, but you could take it before RL since there's little overlap. Reiterating the above, professor was great. Definitely very knowledgeable and cares a ton about the class. Definitely came out of here, having a much better understanding of NLP. I think the hours per week is a little misleading that you see. It's lopsided imo: you do not have something due every week, and some homeworks were pretty easy. But the final project took a lot of time, so it's hard to give an overall average. I did take this class with another class (SIMPL) and it was doable, but not without a lot of questioning my life's decisions, especially when SIMPL had it's big assignment/exams due and when this class had its midterm and final paper due. Looking bad, I still think its doable if anyone is interested in doubling up and trying to finish the program ASAP. Homeworks were fair, some were easy, I think a couple were a little tough. But overall not too bad. And they were designed very well too to help reinforce the concepts. Midterm was fair, but definitely had a lot of questions that were tricky. You really need to understand what is going on for the conceptual questions, and really need to understand how to do the math calculations, especially attention. Final project was personally a big time sink but again that was because it took me a really long time to understand what actually had to be done. I think the professor kept it very open ended on purpose to give us freedom, but most of us really just wanted to do the right amount to get an A. Assuming it doesn't change, hopefully this helps: You are asked to choose some NLP model (four are specifically recommended to you) and then choose some standard dataset (again, a few are recommended to you) and analyze with the model and figure out how to fix its shortcomings. Then you given of a ton of papers that did essentially just that, in many, many different ways. My advice to you is that your grade is ultimately determined by how much effort/how unique your approach was, or well really, how many "twists" you applied to the basic path here: Let's say you pick a model, pick a dataset, find where the model's shortcomings are (there was emphasis here), create a new dataset based on a shortcoming you found, train on that new dataset (you can just an LLM to generate this), then show the results on the old dataset and the new dataset, and analyze and ascertain what happened and why (there is massive emphasis on this final part). That approach is basically what is more or less outlined in the last homework and discussed in class, and would probably get you somewhere in the B range on the project. To get a higher grade comes down to the number of "twists" you apply to this basic path. What if you choose two models instead and follow the same path and then compare them both? What if instead of one dataset, you chose two datasets instead? What if instead of generating one dataset based on one shortcoming, you generate datasets for each shortcoming you found? How could you go above and beyond just doing a basic analysis of the results (a couple papers do this in clever ways)? Really just think about the ways you can enhance the basic path and make it more involved/complex, as the more effort is shown, the better your grade will be. Do that, and make sure to really analyze your results well and you will definitely get an A.