- Home
- Search
- Jonathan C Kao
- All Reviews
Jonathan Kao
AD
Based on 97 Users
This guy is the ABSOLUTE GOAT. Don't hesitate to take this class. He is one of the best lecturers I've ever seen and he knows how to really make you interested in the material. Office hours are super helpful and the TAs were also great for my quarter. Grading is extremely fair and often times quite generous. You can tell he really cares about his students. Homework is worth doing, not only because it is a fair chunk of your grade, but because the homework problems are interesting, engaging, and not at all tedious. Overall, I recommend Kao more than any other professor I've had yet.
Professor Kao is great. His lectures are very clear and he works through problems carefully on the board, which makes it easy to follow. He is nice and approachable. He answers questions directly and clearly in class.
The material of the class is tough. The homework will take a long time, but the lectures, discussions, and office hours will help guide you through them. Everything is well organized online and all the resources (including previous tests) were given to us. The final exam was fair and overrode the midterm grade, which was tougher our quarter.
The only complaint I have is of the TAs. They were pretty good, but they each had their faults. Siyou was kind but unclear with her work. Sometimes I couldn't understand how she arrived to her answer because she would not write down much. Still, her grading was much more organized and gave lots of partial credit. Tonmoy was very clear and wrote down great notes from his discussions, which were informative and easy to follow. The issue I had with Tonmoy was that he was harsh. He did not have enough patience with students and would snap at them if they did not understand the material. His grading was often all or nothing. For such a math-heavy class, this seemed excessively harsh.
All the instructors were well-intentioned and the class was a good experience overall. I learned a lot and I would definitely recommend this professor.
This is probably the best introductory class to neural networks I have attended. It is very well structured and everything is built up in a purposeful way. It goes into the mathematical calculations behind deep learning, where the homework is about deriving and implementing the backpropagation algorithm for different neural network layers and functions. There are many opportunities to ask Prof Kao and the TAs questions during lectures and discussions, which they usually answer in meaningful ways.
On the more mixed side, the lectures in class are long (2 x 2 hours per week, not including discussions) and in this quarter, fell a bit behind schedule. As a result, many assignment deadlines and other topics had to be moved around, which could sometimes be confusing. Also worth mentioning is the workload, which is very high. A lot of derivations in the homework will require taking derivatives with respect to matrices, which can lead to tensor-sized derivatives easily. Coding the derivations in a performance-friendly way is also not trivial. As such, there is no shame in asking for help from students and teaching staff and it is generally encouraged, so you do not spend many nights figuring it out alone.
While the material is challenging it is communicated well and I personally feel I have a much better of what is happening when using neural networks from frameworks such as TensorFlow or PyTorch.
Kao a is an absolutely fantastic professor. His lectures are clear and engaging, and manage to break difficult concepts down into understandable chunks. He provides excellent slides, both annotated from class and unannotated originals, which are wonderful for studying. His slides often mention cutting-edge research in deep learning. Seriously, this is what a proper college class should feel like.
Although the class has listed prerequisites, they're not enforced. ECE 133A isn't really required (I didn't take it and did just fine). ECE/CS M146 isn't really necessary either, it's just background information that's mentioned in passing during lectures (I also hadn't taken it). You really do need to take a probability class though, even if it's not ECE 131A (STATS 100A or MATH 170E, etc. will do fine) or you'll be lost in the first half of the class.
The homeworks are quite time consuming, but there were only 5. They're a mixture of written math solutions and Python coding in Jupyter notebooks. It's helpful to have some exposure to Python before the class (even better if you already have familiarity with NumPy). The homeworks are pretty well spaced out, so there's plenty of time to complete them, and the TAs provide exceptional help during discussions (seriously, don't skip discussions. The TAs practically solve homework problems sometimes). Kao gives three "late days" across all the homework, so the deadlines are a little flexible.
Instead of a final, there is a final group project where you have to apply everything you learned in the quarter to a deep learning project. Kao provides a default project (in case you aren't creative, like me). It requires a fair amount of work, but it's due before finals week, so if you start early enough it doesn't interfere with studying for other classes. Getting a good group is essential.
Overall, this was one of the best courses I've taken at UCLA, and Kao is one of the best professors in the ECE department. If you're at all interested in machine learning, I highly recommend you take this class before you graduate. CS majors can probably petition it to count as an elective.
I disliked this class. I feel like it could have been a lot better. The class was much more difficult this quarter than in the previous many years Kao has taught this course, so take previous year’s grade distributions with a grain of salt. I didn’t mind the hard exams though. What I did mind is the way the course content was taught: I think there should have been a much heavier emphasis on applications. If you enjoy spending time converting arbitrary expressions from one form into another form using a list of properties and algorithms (similar to how linear algebra is often taught), then you will enjoy this class. If you prefer learning using your physical intuitions and being able to apply your learnings, then I don’t think you will enjoy this class.
This is my second course I’ve taken from Kao and I’m still not sure why he’s as highly-related as he is. I think he’s nice, truly cares about his students, and is a decent lecturer, but I feel like he focuses too much on the math and not enough on applications. Just my two cents though. Maybe this is on the department for not making ECE 3 a prereq so that the course can contain more applications.
A bit of advice for first and second years: I would recommend taking this before or at the same time as your analog circuits class. I think you’ll have a much deeper appreciation for working with frequencies and filters when you encounter them in circuits.
Going into this class I was expecting a chill A after hearing from numerous sources about how amazing Kao is of a teacher. He's an ok teacher, nothing more, nothing less. Just because he teaches with a smile and is respectful when asked questionsdoes not, in my opinion, make him an exceptional teacher. The course material is very math heavy and too put it bluntly very boring. The homework wasn't too bad and I found it to be the best way to understand the concepts after listening to 4 hours of lecture each week. The midterm was slightly harder than expected but then the after being told by Kao that the final would be easier, we received the most ridiculus piece of s***t of an exam I've ever seen. While the past finals took me less than 2 hours to complete with straight forward questions, this final was impossible to complete within the 3 hours as each problem either required knowledge of some little "trick" or would take a significant time to complete. As the other recent reviews said, most people did not do very good on the final and yet the graders still decided to grade as harshly as possible.
Midterm was a copy of the review, and because the median was so high, the TAs made the final extremely difficult Class overall was a lot of work, but Prof. Kao explained the material very well and in a simple matter. Homework was pretty difficult too, and it took a long time to finish.
The first part of this review is to the people who are considering taking this class without prior experience. I highly recommend not taking this class unless you took M146 and have some experience in machine learning, both of which I didn't do (this my fault). The course was very math heavy at the start and Kao doesn't define many of the ML terms that he already expects you to know.
Generally, the workload is also very intense and very much requires that you have an understanding of numpy (it will be extremely painful if you do not). Luckily Tonmoy was very helpful in his office hours for the homeworks, but the homeworks will generally be awful.
The class is very theory based. You learn a lot of how neural networks functions and the function of each hyperparameter, but you won't be taught much of how to use frameworks such as PyTorch or good practices for training a model.
I also personally would have changed the grading scheme a bit. 50% for midterm is a bit excessive. There was also double jeopardy on the backprop question on the midterm: if you made the same small mistake on both sides of the backprop, you would lose the points for both sides; you could lose 4% of your total grade in the class just for making a small algebra mistake. The 2% extra credit is nice though, and the project is graded very leniently.
I don't know what more I can say that other reviews do not state already. Professor Kao is one of the most helpful and kindhearted professors I have had the utmost pleasure to learn from. His use of slides, recorded lectures, zoom livestream, have all helped me keep up with the class without having to worry about missing one or two lectures. The TAs are the best TAs I've ever encountered in my time at UCLA. Yang, Tonmoy, Kaifeng, Shreyas, and Lahari were very helpful; were straightforward with you if you got a question on the homework right or wrong (they don't dance around you and say 'hmm you might be right' or give you some BS answer), no, they help you get to the right answer if you're stuck and they corroborate you if you are correct. The midterm was hard, but expected. The questions mirrored the midterm review closely as the TAs had emphasized, and the TAs are straightforward with you if you ask a question about what's on the midterm. I asked one of them, 'is expectation going to be on the midterm,' to which they simply replied, 'yes.' Office hours were an absolute godsend. Go to them if you are not comfortable with the subject. I had satisfied absolutely NONE of the pre-reqs, so I went to OH to get the help I needed, and it WAS helpful.
I won't sugarcoat it; this class is A LOT of work. It's fairly easy to get an A, but be ready to also put in the time and effort to achieve that grade. I dedicated around 10-15 hours every week to this class (I took CM146, CS143, and DH101 as well for reference). It was highly rewarding and I learned SO much. AI was such a blackbox before I took this class; there was so much hype and pizzazz surrounding it. But after taking C147, it really broke it down into the base parts that go into building a neural network, and though I no longer look at AI mystically, I enjoy learning about it nonetheless. So, for anyone who is interested in this subject or is looking for a CS elective, take C147.
Kao teaches this well. I didn't have any of the prereqs and did fine. Just start assignments early and go to discussions. Many people did not study very much for the exam this year which is why it was lower than previous years. In my opinion we had by far the easiest exam (but the extra credit was very difficult) compared to previous years. The only prereq you really need is multivariable calculus, knowledge of what expectation is, and the most important is probably python and numpy skills. The rest will come. I wish we covered more material, lots of students asked really bad questions during class which kept us behind. Still recommend if you are very interested in deep learning. If you aren't very interested, you may not like the class.
This guy is the ABSOLUTE GOAT. Don't hesitate to take this class. He is one of the best lecturers I've ever seen and he knows how to really make you interested in the material. Office hours are super helpful and the TAs were also great for my quarter. Grading is extremely fair and often times quite generous. You can tell he really cares about his students. Homework is worth doing, not only because it is a fair chunk of your grade, but because the homework problems are interesting, engaging, and not at all tedious. Overall, I recommend Kao more than any other professor I've had yet.
Professor Kao is great. His lectures are very clear and he works through problems carefully on the board, which makes it easy to follow. He is nice and approachable. He answers questions directly and clearly in class.
The material of the class is tough. The homework will take a long time, but the lectures, discussions, and office hours will help guide you through them. Everything is well organized online and all the resources (including previous tests) were given to us. The final exam was fair and overrode the midterm grade, which was tougher our quarter.
The only complaint I have is of the TAs. They were pretty good, but they each had their faults. Siyou was kind but unclear with her work. Sometimes I couldn't understand how she arrived to her answer because she would not write down much. Still, her grading was much more organized and gave lots of partial credit. Tonmoy was very clear and wrote down great notes from his discussions, which were informative and easy to follow. The issue I had with Tonmoy was that he was harsh. He did not have enough patience with students and would snap at them if they did not understand the material. His grading was often all or nothing. For such a math-heavy class, this seemed excessively harsh.
All the instructors were well-intentioned and the class was a good experience overall. I learned a lot and I would definitely recommend this professor.
This is probably the best introductory class to neural networks I have attended. It is very well structured and everything is built up in a purposeful way. It goes into the mathematical calculations behind deep learning, where the homework is about deriving and implementing the backpropagation algorithm for different neural network layers and functions. There are many opportunities to ask Prof Kao and the TAs questions during lectures and discussions, which they usually answer in meaningful ways.
On the more mixed side, the lectures in class are long (2 x 2 hours per week, not including discussions) and in this quarter, fell a bit behind schedule. As a result, many assignment deadlines and other topics had to be moved around, which could sometimes be confusing. Also worth mentioning is the workload, which is very high. A lot of derivations in the homework will require taking derivatives with respect to matrices, which can lead to tensor-sized derivatives easily. Coding the derivations in a performance-friendly way is also not trivial. As such, there is no shame in asking for help from students and teaching staff and it is generally encouraged, so you do not spend many nights figuring it out alone.
While the material is challenging it is communicated well and I personally feel I have a much better of what is happening when using neural networks from frameworks such as TensorFlow or PyTorch.
Kao a is an absolutely fantastic professor. His lectures are clear and engaging, and manage to break difficult concepts down into understandable chunks. He provides excellent slides, both annotated from class and unannotated originals, which are wonderful for studying. His slides often mention cutting-edge research in deep learning. Seriously, this is what a proper college class should feel like.
Although the class has listed prerequisites, they're not enforced. ECE 133A isn't really required (I didn't take it and did just fine). ECE/CS M146 isn't really necessary either, it's just background information that's mentioned in passing during lectures (I also hadn't taken it). You really do need to take a probability class though, even if it's not ECE 131A (STATS 100A or MATH 170E, etc. will do fine) or you'll be lost in the first half of the class.
The homeworks are quite time consuming, but there were only 5. They're a mixture of written math solutions and Python coding in Jupyter notebooks. It's helpful to have some exposure to Python before the class (even better if you already have familiarity with NumPy). The homeworks are pretty well spaced out, so there's plenty of time to complete them, and the TAs provide exceptional help during discussions (seriously, don't skip discussions. The TAs practically solve homework problems sometimes). Kao gives three "late days" across all the homework, so the deadlines are a little flexible.
Instead of a final, there is a final group project where you have to apply everything you learned in the quarter to a deep learning project. Kao provides a default project (in case you aren't creative, like me). It requires a fair amount of work, but it's due before finals week, so if you start early enough it doesn't interfere with studying for other classes. Getting a good group is essential.
Overall, this was one of the best courses I've taken at UCLA, and Kao is one of the best professors in the ECE department. If you're at all interested in machine learning, I highly recommend you take this class before you graduate. CS majors can probably petition it to count as an elective.
I disliked this class. I feel like it could have been a lot better. The class was much more difficult this quarter than in the previous many years Kao has taught this course, so take previous year’s grade distributions with a grain of salt. I didn’t mind the hard exams though. What I did mind is the way the course content was taught: I think there should have been a much heavier emphasis on applications. If you enjoy spending time converting arbitrary expressions from one form into another form using a list of properties and algorithms (similar to how linear algebra is often taught), then you will enjoy this class. If you prefer learning using your physical intuitions and being able to apply your learnings, then I don’t think you will enjoy this class.
This is my second course I’ve taken from Kao and I’m still not sure why he’s as highly-related as he is. I think he’s nice, truly cares about his students, and is a decent lecturer, but I feel like he focuses too much on the math and not enough on applications. Just my two cents though. Maybe this is on the department for not making ECE 3 a prereq so that the course can contain more applications.
A bit of advice for first and second years: I would recommend taking this before or at the same time as your analog circuits class. I think you’ll have a much deeper appreciation for working with frequencies and filters when you encounter them in circuits.
Going into this class I was expecting a chill A after hearing from numerous sources about how amazing Kao is of a teacher. He's an ok teacher, nothing more, nothing less. Just because he teaches with a smile and is respectful when asked questionsdoes not, in my opinion, make him an exceptional teacher. The course material is very math heavy and too put it bluntly very boring. The homework wasn't too bad and I found it to be the best way to understand the concepts after listening to 4 hours of lecture each week. The midterm was slightly harder than expected but then the after being told by Kao that the final would be easier, we received the most ridiculus piece of s***t of an exam I've ever seen. While the past finals took me less than 2 hours to complete with straight forward questions, this final was impossible to complete within the 3 hours as each problem either required knowledge of some little "trick" or would take a significant time to complete. As the other recent reviews said, most people did not do very good on the final and yet the graders still decided to grade as harshly as possible.
Midterm was a copy of the review, and because the median was so high, the TAs made the final extremely difficult Class overall was a lot of work, but Prof. Kao explained the material very well and in a simple matter. Homework was pretty difficult too, and it took a long time to finish.
The first part of this review is to the people who are considering taking this class without prior experience. I highly recommend not taking this class unless you took M146 and have some experience in machine learning, both of which I didn't do (this my fault). The course was very math heavy at the start and Kao doesn't define many of the ML terms that he already expects you to know.
Generally, the workload is also very intense and very much requires that you have an understanding of numpy (it will be extremely painful if you do not). Luckily Tonmoy was very helpful in his office hours for the homeworks, but the homeworks will generally be awful.
The class is very theory based. You learn a lot of how neural networks functions and the function of each hyperparameter, but you won't be taught much of how to use frameworks such as PyTorch or good practices for training a model.
I also personally would have changed the grading scheme a bit. 50% for midterm is a bit excessive. There was also double jeopardy on the backprop question on the midterm: if you made the same small mistake on both sides of the backprop, you would lose the points for both sides; you could lose 4% of your total grade in the class just for making a small algebra mistake. The 2% extra credit is nice though, and the project is graded very leniently.
I don't know what more I can say that other reviews do not state already. Professor Kao is one of the most helpful and kindhearted professors I have had the utmost pleasure to learn from. His use of slides, recorded lectures, zoom livestream, have all helped me keep up with the class without having to worry about missing one or two lectures. The TAs are the best TAs I've ever encountered in my time at UCLA. Yang, Tonmoy, Kaifeng, Shreyas, and Lahari were very helpful; were straightforward with you if you got a question on the homework right or wrong (they don't dance around you and say 'hmm you might be right' or give you some BS answer), no, they help you get to the right answer if you're stuck and they corroborate you if you are correct. The midterm was hard, but expected. The questions mirrored the midterm review closely as the TAs had emphasized, and the TAs are straightforward with you if you ask a question about what's on the midterm. I asked one of them, 'is expectation going to be on the midterm,' to which they simply replied, 'yes.' Office hours were an absolute godsend. Go to them if you are not comfortable with the subject. I had satisfied absolutely NONE of the pre-reqs, so I went to OH to get the help I needed, and it WAS helpful.
I won't sugarcoat it; this class is A LOT of work. It's fairly easy to get an A, but be ready to also put in the time and effort to achieve that grade. I dedicated around 10-15 hours every week to this class (I took CM146, CS143, and DH101 as well for reference). It was highly rewarding and I learned SO much. AI was such a blackbox before I took this class; there was so much hype and pizzazz surrounding it. But after taking C147, it really broke it down into the base parts that go into building a neural network, and though I no longer look at AI mystically, I enjoy learning about it nonetheless. So, for anyone who is interested in this subject or is looking for a CS elective, take C147.
Kao teaches this well. I didn't have any of the prereqs and did fine. Just start assignments early and go to discussions. Many people did not study very much for the exam this year which is why it was lower than previous years. In my opinion we had by far the easiest exam (but the extra credit was very difficult) compared to previous years. The only prereq you really need is multivariable calculus, knowledge of what expectation is, and the most important is probably python and numpy skills. The rest will come. I wish we covered more material, lots of students asked really bad questions during class which kept us behind. Still recommend if you are very interested in deep learning. If you aren't very interested, you may not like the class.