Projects
Here is a list of projects that I've either supervised in the past, or would like students to do. Hopefully it'll give some of you an idea of whether or not it is worth you putting in keywords which reflect my interests. It should also give some clues to those of you who have been assigned to me by the system, but who have no idea who I am.
I've got many interests, so this isn't and exhaustive list. I'm sometimes open to suggestions from students for projects, but be warned that you would need to persuade me very well for things to go ahead and I won't supervise anything that's too off-topic for me. However, a couple of people have persuaded me to do new projects in the past and these have been quite successful, so there is always hope if you don't like anything below!
Also: don't be scared by referenced files, they are just to give you an idea if you are interested (real research!).
Project List
- Improving Google's Image Search
- Game AI for Arimaa
- Machine Learning for Spam Detection
- Computer Go
- Computer Security / Intrusion detection
Improving Google's Image Search
Google has become the benchmark for search engine technology, and in general it's very good. When searching for images however, many user queries are ambiguous, and although Google returns many relevant images, there's also a lot of extras in there that a user doesn't necessarily want. For example, if a user enters 'Syndey Harbour' as the query, they are probably after either pictures of the opera house, harbour bridge, scenes from the harbour itself or maps, etc. Images that fall into these categories could be grouped together and presented in a more friendly manner to aid the user in getting the specific image they want. This project would therefore build a front-end to performing image queries in Google and to investigate image analysis and machine learning techniques in order to post-process the images and cluster them in a helpful way; so that results are passed back to the user in a better form.
Game AI for Arimaa
Arimaa is a new game which was created with the specific application of making life hard for AI researchers. AI and Machine Learning techniques have had some success with Chess, but games such as Go still provide a huge challenge; however these games have one thing in common: Humans have been playing them for a long time. Arimaa has an interesting twist in that it is new, so Human players have to learn it too (although it can be played on a regular chessboard with normal chess pieces, so elements are familiar) -- can the Humans still beat state-of-the-art machine learning on this new game? The answer (at the moment) is yes. The aim of this project is to create an Arimaa-playing program which implements all of the rules and then benchmark some standard AI techniques for playing. These could then be developed, and hopefully a TD(leaf) reinforcement algorithm would be implemented (which proved successful for chess -- see Knightcap link below). A further extension would be for the program to actually sit as a robot and play online in order to get data to learn from.
Machine Learning for Spam Detection
Everyone knows about this issue so I'm not going to go into it here. Basically though the project revloves around using machine learning for spam detection, and comparing methods such as niave bayes, and support vector machines to see which algorithms give the best performance. Support Vector Machines are a (newish) machine learning technique that is very successful, and one component of these is something called a kernel function. Recently lots of new kernels have been applied to bioinformatics problems and in this project a nice development would be to apply variants of these kernels to the problem of spam detection. This may yield some very interesting results.
Computer Go
Go is an ancient strategy game from the far-east which still provides a huge challenge to AI and machine learning researchers (computer go players are much, much, much, worse than computer chess players). The aim of this project is to build a framework for playing computer go that other people can use and improve on. A program needs to be developed that can read in past go games from the web and build up some statistics from them so that learning can take place. A second program should be developed which can play a game of Go either online or with the public-domain package GnuGo. If these stages are completed then extensions to the project would include looking at some machine learning strategies (such as boosting or SVMs) for playing 9 x 9 Go.
Computer Security / Intrusion Detection
As most people are aware, modern network security is complex to administer and due to a combination of new attacks, user negligence and the shear complexity of systems, networks, systems and data is often compromised. This project will look at novelty detection algorithms for intrusion detection or user profiling to try and automatically detect if an attack is in place, or the system has been compromised. This is a very active area of current research.