The rapid increase in hardware speed has led to increasingly more complex software. Unfortunately, this complexity has resulted in unreliable software and as a result, I believe a shift in the way computers are programmed and used is inevitable: they cannot no longer by manually programmed any more. Instead, they will have to be trained. The "software" running on the computer will be sophisticated, possibly self-modifying, learning algorithms. I think this trend is very exciting, and I am very interested in Artificial Intelligence and Machine Learning in particular.
My research focuses on teaching computers to automatically discover abstractions and reformulations. In particular, I have developed algorithms to discover high-level, temporally extended actions in Reinforcement Learning. So far, the applicable domains have been very restricted and synthetic. I am now working on widening the applicability and finding new ways to discover abstractions in continuous domains. It is also not possible to look at temporal abstractions of actions alone. It is important to look at state abstractions at the same time, as different state representations are useful for different time scales and allow for generalization of learned knowledge.