Source: Deep Learning on Medium
An interview with Aakash Nain, Research Engineer at Ola
It’s my pleasure to have Aakash with me today for an interview. He is a researcher and his interest lies in the field of Machine Learning and Aakash loves open-source and keeps contributing to open-source technologies regularly. Aakash, being a self-starter and a quick learner, knows how to do the best by making use of the best. Aakash is a Google Developers Expert in Machine Learning as well. You can know more about him here.
I would like to wholeheartedly thank Aakash for taking the time to do this interview. I hope this interview serves a purpose towards the betterment of data science and machine learning communities in general 🙂
An interview with Aakash Nain, Research Engineer at Ola
Sayak: Hi Aakash! Thank you for doing this interview. It’s a pleasure to have you here today.
Aakash: Thank you Sayak for having me. It’s a great pleasure to be here.
Sayak: Maybe you could start by introducing yourself — what is your current job and what are your responsibilities over there?
Aakash: I am a Research Engineer at Ola. I have been working here for almost two years now. I am a part of the Data Science team and my time here is equally divided between cutting-edge research in machine learning and deploying machine learning models for business.
Sayak: Ah, that is so niche! What motivated you to pursue data science and machine learning?
Aakash: During my pre-final year (2015) in college, I had very little idea about data science and machine learning because these weren’t part of my curriculum. During the same phase, one of my seniors showed me a self-playing Mario game where the computer was getting better and better at playing at each iteration. I was blown away! I started reading about it. By Jan 2016, I got completely involved in machine learning and since then I haven’t looked back.
Sayak: That is interesting! There has to be a senior in our lives to get ourselves started, ain’t it (haha)? My machine learning journey also started with a similar note. When you were starting what kind of challenges did you face? How did you overcome them?
Aakash: There were quite a few challenges. As I told you, Machine learning wasn’t part of my curriculum, so there was no mentor to turn to. In fact, in my college, no one was doing Machine Learning. I completed the very famous Andrew Ng’s course on Coursera but all I had was theoretical knowledge. I started doing some pet projects but there was no one to provide feedback for the same. In June 2016, I became active on Kaggle and joined KaggleNoobs Slack. There I met Jorge, Mikel, Megan Risdal, Laurae, and Yifan who not only helped me a lot in learning but also guided me on how to approach new problems.
The second challenge that has always been there is the hardware. I love computer vision with deep learning and trying new things is more of a habit for me. Any good GPU in India is way too costly and it is a huge investment. Cloud is the only option but it isn’t cheap either. In the early days during 2016–2017, my progress was hampered due to the non-accessibility of good hardware.
Sayak: Those are some real challenges, I agree. Mentorship is so much required regardless of the field you are pursuing. The hardware problem that you mentioned is also very prominent here. Although there are free good GPU-based online environments like Colab and Kaggle Kernels they come with their limitations. You mentioned about doing several pet projects. I am very much interested in knowing what were some of the capstone projects you did during your formative years?
Aakash: There were a few projects which heavily influenced my career, especially in the field of Deep Learning and Computer Vision. Out of all those, there was one project named Cornea, which not only pushed my interest in research but it also inspired me to do Deep Learning on Edge devices. This project was done during my first job at a startup named Paralleldots. Cornea was the first AI-powered photo editor app that provided functionalities like image popularity score, similar images, color transfer, style transfer, hashtag recommendations, etc.
Sayak: That sounds amazing, I will definitely check that out! Since you are an active contributor to TensorFlow, would you like to share anything specific with respect to that?
Aakash: There are two types of contributions mainly: Active and Passive. I have been using TensorFlow and Keras since 2016. Till 2018, I was more of a passive contributor where I was involved in solving community queries. With TF2.0, Keras became the forefront. I absolutely love Keras and this is when I started contributing to it actively. In the last 6 months, my contributions include Focal loss, Cohen’s Kappa metric, and GeLU activation. I am looking forward to contributing more in the coming months.
If one wants to contribute to Tensorflow, the simplest way is to follow these steps:
- Check if the functionality is already in TF/TF-addons.
- Check if there is any active PR regarding the same functionality.
- If not, check the documentation for adding it. For example, adding a new metric requires a certain signature to be followed which is very well explained in the documentation.
Sayak: Thank you for passing them along, Aakash. These fields data science and machine learning are rapidly evolving. How do you manage to keep track of the latest relevant happenings?
Aakash: You are absolutely right. These fields are changing so fast that keeping track of everything can be overwhelming. The fact that more than 100 research papers in the Machine Learning category are uploaded to arXiv daily certainly describes the pace at which this field is moving.
To remain updated, I read a lot as well as practice a lot. My day starts with reading a new research paper (of course with my morning tea alongside). For practicing new things there is no platform that is better than Kaggle. Not only you get to experiment with new things, you learn a lot from the people who are much smarter than you. Also, it is not necessary to deep dive into every field but I believe in this simple rule: Depth in one field, breadth in others!
Sayak: That is a pretty interesting way to start your day! Being a practitioner, one thing that I often find myself struggling with is learning a new concept. Would you like to share how do you approach that process?
Aakash: The learning curve is always different for different people. Some are fast learners who can grasp the concepts very easily while others can take some time to do the same. What matters most is the constant learning efforts. As long as you are willing to learn, you will master it surely. The other thing to keep in mind is not to be shy to seek help from others or to be afraid of asking questions that may seem noobish/stupid to others. You have to invest your time to master it.
When it comes to implementation, I look up if there is already an open-source implementation available for the same. If the source is reliable enough, I go through the source code, understand it and then try to implement it on my own and then benchmark it. If I can’t find it online, I fire up a notebook and start implementing it. Once completed, I will write some unit tests and then apply them somewhere to check if it is working the expected way.
Sayak: It feels good that our thoughts in this line are very similar. Any advice for the beginners?
Aakash: Don’t go with the hype. Many beginners try to jump to the high-level concepts directly without taking time to understand the fundamentals clearly. Building a CNN using tf.keras or FastAI is surely super simple but do you understand how the building blocks of a CNN work? What most people forget is the fact that everything is iterative in nature, and so is learning. So, instead of focusing on high-level concepts every time, try to understand the underlying mechanism and principles. If you don’t do that, your career in this field won’t last long.
Sayak: And as Andrej Karpathy says “it will only lead to suffering!”. Thank you so much, Aakash, for doing this interview and for sharing your valuable insights. I hope they will be immensely helpful for the community.
Aakash: Thanks for hosting me!