“Try to pick an AI problem that you are really passionate about (Whether it is computer vision, chatbots, robotics, games or anything) and try to build your best version of this AI.”Ujjwal Das Gupta
For this week’s machine learning practitioner’s series, Analytics India Magazine got in touch with Ujjwal Das Gupta, a machine learning researcher with stints at Apple and Google. Ujjwal has an M.Sc. in Statistical Machine Learning at the University of Alberta, Canada. In this interview, Ujjwal gave a sneak peek into his machine learning journey.
AIM: How did your machine learning journey begin?
Ujjwal: I got interested in programming and computers when I studied C++ in school at Springdales. Later, I got into Computer Engineering at the Delhi College of Engineering. I was interested in the idea of artificial intelligence at a young age. It seemed like a fascinating and inevitable next step in the evolution of the human species. Reading books like “Godel Escher Bach – An Eternal Golden Braid” helped me think of the problem in a way that seemed possible to solve in my lifetime. I took up many courses related to AI & ML during my undergraduate degree, and during my first programming job at Adobe. My interest in algorithms was sparked by computer games. I had a really old computer that wouldn’t run any modern games. So I was always fascinated by techniques to make my programs run faster.
AIM: What were the initial challenges and how did you address them?
Ujjwal: My undergraduate coursework was extremely out of date. I had to find my own courses from websites of different universities. I focussed on courses that put emphasis on writing your own programs and code continuously. Indian colleges rarely have such a curriculum.
AIM: How do you approach any machine learning problem?
Ujjwal: The first step is to analyse it mathematically and pragmatically. What do we know for sure about the data? What inputs do we have to our model? What assumptions can we reasonably make? What are some viable ways to model the problem from available information?
Then, try to cast the problem as something that might be solved partially by an existing library available to you, like deep learning frameworks, or convex optimization frameworks. Many of these are open-source, and are widely used in the industry.
Next stage is experimentation. Not all the approaches to the problem will produce good results when tested. One needs to introspect the models to figure out what can be improved. Searching over parameters at scale using cloud computing can help test a candidate model completely.
AIM: What does your machine learning toolkit look like?
Ujjwal: For Deep Learning, I use PyTorch and Tensorflow. Since my main area of work is Reinforcement Learning, I also use libraries like Rllib and OpenAI Gym. Other general purpose libraries that I use a lot are numpy, scipy and cvx (a convex optimization library).
AIM: Which domain of AI do you think will come out on top in the next 10 years?
Ujjwal: I think general purpose research in AI, whether it is work in building principled models of computer vision (like capsule networks), neural network structure learning, recurrent networks, and reinforcement learning, will pay off the most in the long run. Some fundamental breakthrough that can generalise all of these is needed. In the next 10 years, I think we may see applications like AI for text chat completely solved.
AIM: Few words for the aspirants
Ujjwal: Try to pick an AI problem that you are really passionate about (whether it is computer vision, chatbots, robotics, games or anything) and try to build your best version of this AI. Use all open source tools available to you and try to beat the status quo. The experience alone will distinguish you from the rest. It is also important to regularly try to solve programming problems, like the ones used in programming contests like ACM ICPC. This helps build problem solving abilities and the skill to program under a time limit. However, being good at the simple/medium level problems is sufficient unless you want to be a professional competitive coder.
AIM: Any Book/blog recommendations?
- Godel Escher Bach – An Eternal Golden Braid, by Douglas Hofstadter is a great book about the philosophy of AI
- Reinforcement Learning: An Introduction, by Sutton and Barto, is a great introduction to one approach towards general AI.
- Deep Learning by Ian Goodfellow is a great resource on Deep Learning in general, and covers many modern advances in this field.
- Berkeley Artificial Intelligence Blog
- Apple Machine Learning Research
- DeepMind Blog