MLPR FAQ, Autumn 2024
Responses to Frequently Asked Questions (FAQs).
- Should I take this course? Do I have the right background / know enough maths?
As stated on the main page, this course is intended as an introduction for those who want to move towards doing research in machine learning. If you are really interested in using machine learning, then AML is a more appropriate choice. Or see other machine-learning-related courses discussed in the MSc handbook. Undergraduates who took the former IAML course in 2021 or earlier may take MLPR, there is some overlap, but MLPR should still offer an interesting challenge.
If you do want to do research in this area, there are pre-requisites. Just because machine learning is popular you shouldn't ignore them. We've done what we can to outline what these pre-requisites are in the background section of the notes. If there are parts that you think we can improve, please provide feedback using the Hypothesis forum.
Ultimately you need to actively work through the course notes, so if the background notes don’t make sense, or you don’t like their style, taking this course is probably a bad idea. - No really, should I take this course? Will I do well? Will it be useful for me?
We can’t know for sure, even if we had a thorough description of your background. The education literature tells us that pre-tests, and screening based on qualifications, only ever give moderate correlations with success, not certainty. As long as you have some experience attaching mathematics to problems, and are comfortable following the background notes, motivated and well-organized students can fill in any gaps. If you want to succeed, actively study the material from the beginning: attempt all the questions in the notes, and ask questions on the Hypothesis forum as necessary.
MLPR has picked a thread of topics that quickly get to a probabilistic view of machine learning that will be useful in some careers, but the advanced parts are less immediately useful for many graduates than being fluent in popular methods. We explicitly don't try to cover all of the machine learning methods that are in frequent use. Our assumption is that if covering methods is your immediate priority you'd pick AML (although no course will cover everything), and otherwise it won't be hard to pick up particular standard methods (e.g., by reading online tutorials and documentation).
Although we use more maths than AML, you do not need to "be a mathematician", e.g., with experience writing formal proofs. MLPR is not really a "theory" course, in that its maths isn't about "learning theory" (proving rates of convergence, or bounds on performance, or privacy properties of methods). Instead it uses maths to describe the methods themselves and derive methods from principles. For example, by the end of the course: "Given that I want to do Bayesian inference for this machine learning model, form an approximation to the ideal update, and derive the update rule that we'd then implement.". We also care about discussing the trade-offs between different approaches, as you might need to with colleagues in future. It's rare that anyone can mathematically prove that one machine learning method will be universally better than another. - Can I audit the class / register as “class only”?
Your Student Advisor or Supervisor needs to register you in Euclid as “class only”, and they have our blanket permission if they think it’s a good idea. You do not need to register for the class to obtain access to the class materials or the class forum. Only those taking the class for credit get access to tutorials, have work marked.
Our experience is that — despite good intentions — hardly any students keep answering the questions in the notes unless they are registered for the class, and so don’t really keep up. Our advice is to register class-only for at most one class per Semester.
The only real reason to register class-only is to access lecture recordings (it takes an update over-night to get access). We do not have a way to give access to lecture recordings if you are not a member of the University. - Can I take the class as a visiting student?
As stated on the DRPS catalogue page, this course is only available to visiting students taking the majority of their credits in the School of Informatics who are either on a general or subject-specific exchange. Please make sure you have the pre-requisites for this course, and also consider whether you'd prefer our more applied course, AML. - Why is the course so hard?
MLPR isn’t an especially hard course — the mark average tends to be reasonable. However, the variance is large, which means more fail than we would like, and some of the best students complain it is too easy. MLPR assumes a reasonable level of mathematical experience. The level assumed isn’t unreasonable for a course in an Informatics department. For example, all of the undergraduates in this School study the maths that’s required, and the level of mathematical sophistication is probably less than most of the theory courses in the School and other excellent departments internationally. - Why is the course so easy?
We're sorry if you find the course too easy. You will be in a small minority, but that won’t make it any less frustrating. There are pointers in the notes to material beyond the core material in the course. And we can try to provide more pointers if you make specific requests. Using Hypothesis forum, you can ask questions about any document that exists on the web, and you can also discuss anything you like in office hours. What you get out of the course is ultimately up to you. - Will there be an exam?
The exam will be in the December exam diet. Warning: don’t neglect studying the course because of courseworks that are worth far less than this exam! We don’t know the precise date until it appears on the official pages.
The School decided to put the MLPR exam in December, to spread the load for all students, and to give better feedback to MSc students. Some of you might have preferred to have more time to absorb the material. Although hopefully you’ll appreciate having it out of the way when another heavy course-load arrives in Semester 2. - Will I cope with the programming?
We discuss the programming background that's required in the notes. You are expected to have some general programming experience. If you're not confident in Python, you will need to self-study a tutorial, and we advise you start now. Then, as long as you are diligent in trying the snippets in the notes, and the exercises we give you, you should be able to keep up.
Some people get in a mess with all the different types of array/list/matrix you can have in Python and Numpy. It takes experience to untangle this mess, and write neat code quickly. Reading examples isn’t enough, you’ll have to pull them apart, write your own, and debug your code.
An excellent way to get going quickly will be to get together with someone else in the class to try out code. Pair coding can work well remotely using screen sharing. It often prevents small slips that waste lots of time, and you rapidly learn things from other people that would take a long time to pick up any other way. If you are an expert programmer, you might learn even more through reflection during pair coding, and being able to guide others is an important skill in industry. - Why do you use Hypothesis? Now I have to create a login
for yet-another tool / It doesn't work well on mobile / I'd rather just
use a normal forum.
In surveys over the last 5+ years, a large majority of the class has consistently reported that they liked being able to ask questions directly on the notes. Partly they liked better feedback from instructors: questions attached to the notes are usually easier to answer, and directly help us to improve the notes.
A small minority has called for us to use a conventional forum instead. We will continue to consult; reasonable people will continue to have different opinions here. We will also keep a look out for a better system, but after exploring several alternatives, haven't found one yet. - Can I get email updates from Hypothesis?
Hypothesis will email you when someone replies to one of your posts. However, they don't support emailing updates every time there is an update to a group. There are Atom and RSS feeds, which you could use to get updates. Since our Hypothesis group is private, you will need a tool such as h_notify to subscribe to the feed. Also, we have scripted an optional email digest that you can subscribe to.
Another suggestion is to plan your work in batches. If you schedule time to look over notes, including the Hypothesis stream, it may be more efficient than getting interrupted with notifications all the time.