MLPR 2018
| Notes
| Lectures
| Forum
| Tutorials
| Assignments
| FAQ
| Feedback
MLPR FAQ, Autumn 2018
Responses to Frequently Asked Questions (FAQs). A theme in several of these
questions is that there are trade-offs behind the choices I make for the class,
and I have widely consulted in the past. If you don’t like an answer —
which can be entirely reasonable — please avoid excessive advocacy such as
“all of my friends on the class agree...”, or “X would
obviously be better...”. Your individual opinions and arguments matter,
and I’ll listen to them. However, I will also continue to revisit these
perennial questions by consulting the whole class, and discussing with
colleagues and external examiners.
- How hard is this course? Do I have the right background / know enough maths?
These questions are tricky. A lot of incoming MSc students are worried about
their studies. I don’t want to add unnecessary worry. However, because
Machine Learning is a popular area, lots of people try to take the class without
having the pre-requisites, and it would be irresponsible of me not to provide
warnings about what is required.
It’s hard for me to give individual advice, because I don’t know or
understand your exact background and current skills. I've done what I can to
outline the pre-requisites in the background section of the notes.
If there are parts that you think I can improve, please provide feedback
using the Hypothesis forum.
Ultimately you need to understand my notes, so if the background notes
don’t make sense, taking this course is probably a bad idea.
- 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 I 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?
I’m 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 I can try
to provide more pointers if you make specific requests. Using Hypothesis, you
can ask questions about any document that exists on the web, and you can also
discuss anything you like with me in my office hours. What you get out of the
course is ultimately up to you.
- When is the exam? Why?
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! I don’t know any more about the precise date than what it says on the
official pages.
Every year there are vocal groups of students that want the exam for a
Semester 1 course in either December (if it’s in May), or May if
it’s in December. 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. I
appreciate that some of you would have preferred to have more time to absorb the
material. Although hopefully you’ll appreciate having made a push on it
and got it out of the way when another heavy course-load arrives in
Semester 2.
- Will I cope with the programming?
I've done my best to explain what programming background is required
in the notes.
If you're not confident in the languages, then you'll need to self-study the
background so that you can follow the snippets in the notes, and explore
variants yourself. Then the assignments should be ok.
Some people get in a mess with all the different types of array/list/matrix you
can have in Python. 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. That’s one of the reasons I suggest
practising porting from equations or Matlab — at least sometimes.
If you're worried about the programming, I strongly suggest getting together
with someone else to try out code. Pair coding 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.
- Why do you bother with Matlab at all? Or why don't you just stick to Python?
I tried to anticipate this question
in the notes,
but I still get queries. Last year roughly 20% of the class
used Matlab/Octave by choice in the assignment. For some people, depending on
their background and course choices, Matlab is an easier option. If you’re
using Python, I think it’s useful to learn to rapidly write
your own code based on some maths, or a snippet in a similar language. If
you’re finding porting Matlab snippets time consuming, that’s probably
because you could do with more NumPy practice. If you have any trouble, you can ask
for help on the forum.
- 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.
Before using Hypothesis, I used a similar annotation system
called NB for several years. In surveys, a large
majority of my classes consistently reported that they liked being able to ask
questions directly on the notes. Partly they liked getting rapid
feedback from me, which I’m happier to do with these systems than a
traditional forum. I find that questions attached to the notes are usually
easier to answer, and directly help me to improve the notes.
In 2016 I did a review of half a dozen annotation system alternatives, and
Hypothesis (while not perfect) seemed the best option. It supports formatting
(including code blocks) and maths, and has a better PDF viewer. I also used to
get lots of request to upload extra documents to NB. With Hypothesis there
is no need.
I know having to use yet another web service is annoying. On balance I think the
cost is worth it. I haven’t pushed other staff to use Hypothesis as I do
have to work quite hard in the background to deal with its rough edges.
I’ve been giving feedback to Hypothesis, in the hope it will become easier
to use in education, and we can adopt it more broadly.
I know Hypothesis doesn’t work well on mobile. Using a proper workstation
is definitely preferable, which is probably true for a lot of your other
course-related work too. Better mobile support would be nice of course, but
sadly it’s not there yet.
In previous mid-semester surveys a large majority (but not everyone) thought I
should keep using Hypothesis. I will continue to consult. I’m sure
reasonable people will continue to have different opinions here.
- 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.
Also, I have now created an email digest, which you can sign up 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.
- Could you provide answers to more of the questions?
There will be detailed answers to the tutorial questions, and a few of the
questions in the notes. But I'm not going to provide answers for every question
in the notes. What I will do is give you feedback if you post your answer, or
explain how far you can get with the question. At some point you need to be able
to explain your reasoning to other people, and be able to reason about what you
can and cannot be sure about. In your future jobs there won't be an oracle with
answers, and you will need to communicate. It’s also helpful for me to see
where people go wrong, so I can improve the course. I get no feedback on how
you’re doing if I provide answers to everything.
- Could you provide more questions?
I’m doing what I can, and am actively adding more questions to the notes
as I update them. Have you answered all the questions that are already
throughout the notes? I think there are already more questions than most courses
(and some popular
textbooks).