In my first semester (Sem 2 of AY2019-2020) I took CS4240 Interaction Design for Virtual and Augmented Reality, CS5340 Uncertainty Modelling in AI, and CS5446 AI Planning and Decision Making. Here are my thoughts on the modules:
CS4240 Interaction Design for Virtual and Augmented Reality
I took this to get some practical coding experience. Also, augmented reality seems to be the future of hardware UI so I felt it was worth looking into. Won’t dwell too much on it except to say that normally at the end of the module, projects are presented at the STePs showcase, and it was a bit of a bummer that due to Covid-19, STePs was held as a purely online event this year. Pretty fun mod that lets you exercise some creativity.
Expected Grade: A
Actual Grade: A
CS5340 Uncertainty Modelling in AI
I spent a lot of time on this module. I wouldn’t say the concepts are hard, but given my statistics-lite background, almost everything was new to me.
The first half is all about learning how to represent probabilities using models. The course starts off with some revision on probability distributions (Dirichlet and Wishart among the more exotic ones) to get everyone up to speed. It is assumed that one is familiar with factorising conditional probabilities. Next, probabilistic graphical models (the in thing right now) are introduced, which are a handy framework for visualising and analysing information flows.
The second half is about doing inference, i.e. calculating the probability of something happening given existing knowledge of related factors. We learn how this prior knowledge can propagate throughout the graph by message-passing between the nodes. We also learn about ‘mixed’ probability distributions (not everything follows a convenient distribution!), sampling, and Hidden Markov Models.
Due to Covid-19, the finals and midterms were administered online, and hence were not as mathematically rigorous as the previous year’s (phew!). For the group project we had to submit a video instead of doing a class presentation.
In summary, I learnt a lot from this module. Despite the recent hype around deep learning, probabilistic techniques still have much to offer. For example, variational autoencoding is a technique used to debias neural networks by probabilistically sampling the latent feature space.
Suggested prerequisites: Probability distributions and graph theory
Expected Grade: B+
Actual Grade: A-
CS5446 AI Planning and Decision Making
This module is based heavily around the textbook Artificial Intelligence: A Modern Approach by Russell and Norvig, popularly known as AIMA. It assumes that one is already familiar with the first 7 chapters on formal logic and search algorithms, as these would have been covered by a typical undergraduate course in Artificial Intelligence. Unfortunately not the case for myself, so I had to speed-mug them on the fly.
Building on these, the module quickly moves on to decision theory and the related topics of utility and game theory. I found these concepts to be very intuitive, as they closely mirror how humans make decisions (homo economicus). On a side note, if we can develop models to explain every aspect of human behaviour, does that make us nothing more than robots ourselves? Another post for another day!
The real meat of the module lies in reinforcement learning. Assessment is done through a series of mini projects based on the OpenAI gym toolkit. It starts off with a small, deterministic environment, but eventually one must factor in stochasticity and use function approximation to cope with a large task space. These are fun tests of one’s problem solving abilities.
Due to Covid-19, the final examination was proctored using Zoom. A novel experience indeed!
Suggested prerequisites: First 7 Chapters of AIMA
Expected Grade: A
Actual Grade: A-