Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Student Projects

I supervise undergraduate/postgraduate/UROP projects as part of BICV. The PI, Dr Anil Bharath, has a nice set of FAQs for prospective research students, which should give you an idea of what our group specialises in. My topic of research is deep reinforcement learning, which is less focused on computer vision and more on general machine learning or even artificial intelligence.

I expect students to be a) highly motivated and b) technically proficient.

a) Projects that I supervise revolve around cutting-edge research, and specifically deep learning. Projects can, and have in the past, relied on research released during the course of the project. Some parts of machine learning can be found in optional modules in bioengineering courses, but (modern) deep learning is currently not taught at Imperial (as far as I am aware). I usually give crash courses in machine learning, deep learning and/or reinforcement learning, but you will have to be mainly self-taught. On the other hand I am usually available to answer questions that may arise.

b) Deep learning in particular relies on efficient code to be feasible. I use the Lua-based Torch7 library. If MATLAB is the only programming language you've used, you are unlikely to have the programming skills required to make good progress. Apart from knowing a common language like C++/Python/JavaScript, you'll need to have some familiarity with Linux and the command line.

Past Projects:

  • An Empirical Evaluation of Deep Deterministic Policy Gradients
  • Incremental Slow Feature Analysis for Visual Localisation
  • Adapting GazeboJS for End-to-end Reinforcement Learning
  • Deep Reinforcement Learning for Object Grasping
  • Asynchronous Advantage-Actor Critic for Swarm Robotics


  • The priority during the project is your physical and mental health. It is better to take a break, relax, and come back to a problem with a clear mind, rather than stressing over it continuously.
  • Help each other. Be prepared to read each other's code, writing, equations etc. A second eye is a valuable asset.
  • Read papers, and equations, carefully. Several times through the course of your project. In machine learning often the small details are key in getting the big idea to work. Machine learning algorithms are often very sensitive to hyperparameter choices, so you will probably have to try several combinations.
  • Marking schemes are not designed for projects involving cutting-edge research. If you are to be examined then you need to clearly express the areas you've had to learn, the systems you've had to implement, and characterise how they work in different circumstances - to examiners who most likely have little to no experience in your field. The significance of results must be expressed well.
  • Use version control (git) and ideally some kind of project management tool (personal recommendation: Asana). Backups of some form are vital in case of emergency. When working on a computing project, embrace the wealth of IT tools available.
  • It will be tough. Don't say I didn't warn you...

Useful resources:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment