About to graduate?
Frantically searching for the right ideology to apply to your life? Overwhelmed by Deep Learning but confused where to step in? Here’s some help.
MS or startup job—confused? Deep learning has become a sensation. Software engineers with full-time jobs in reputed companies are also learning about deep learning through platforms like cs231n. stanford.edu, cs224d.stanford.edu, 3Blue1Brown, and Siraj Raval. So how do you decide whether you pursue an MS or startup job to take up deep learning?
Anirban Santara expounds his viewpoint on this and lets us in on his philosophy. He enjoys a unique vantage point to answer this conundrum. He’s a Google India Ph.D. Fellow in the Department of Computer Science and Engineering, IIT Kharagpur and an Intel Student Ambassador for AI. He was one of the first few in IIT Kharagpur to have started research in the area of Deep Learning which is one of the most studied areas of AI today.
For the last three years, Anirban has led Deep Learning research in the IIT Kharagpur campus by collaborating with reputed public and private organizations like ISRO, MHRD, TATA Steel, Intel, and Apollo Gleneagles Hospitals as well as universities like TU Munich and IIT Madras on ambitious AI projects, publishing in top-tier international journals and conferences.
One way to address the Deep Learner conundrum
It all boils down to just two aspects: theory and application. These two categories require two different skill sets which have some amount of overlap. Depending on which skill set you’re stronger in, you can choose your category. The ‘theory’ aspect requires taking up a paper, surpassing it and then publishing it within the next ten years. The skills you require, apart from a fervent passion for mathematics are perseverance and excellent writing skills.
Presentation matters and you must be strong enough to fight off setbacks like rejections, implementation failures, bugs, and fake research works. Alongside good English, you need great communication skills to present your ideas properly to collaborators so that you can discuss carefully with experts. Reading also plays a big part. You must be able to read and summarise lumps of literature in little time. Keeping the problem in mind, one can easily locate where the solution provided by the paper you’re reading fits.
One also needs adequate proficiency in implementing algorithms in code using Deep Learning libraries like TensorFlow, PyTorch, Caffe etc. These are the traits of a ‘Deep Learning Scientist’ and if you possess most of them, you must go in for an MS/Ph.D. Choose your research lab wisely as you will be gauged based on the number of research papers (NIPS, ICLR, ICML) you published.
Quick advice in choosing your research area: Pick something that will hold the limelight to a promising future even after 3-5 years and not fizzle out by the time you are done with your PhD. You must avoid advisors who do not encourage futuristic research, external academic and industrial collaboration, internships and free interaction with other researchers in the team. Look for a good working environment as you spend upto 20 hours a day in a research lab. Your team must be ambitious with a good track record for solving problems. A culture of aiming for top conferences and journals and publishing regularly is a big plus.
Also, you must have access to requisite hardware such as GPUs, Xeon Phi/Xeon-scalable processors, TPU (in Google Cloud) etc. Next is ‘application’. The goal is to solve a problem with the deep learning theory. The data includes literature surveys and papers published on the matter. Papers should be gauged on three levels: contribution to the problem statement, scalability of the proposed solution and suitability of the solution. As an example, consider making an AI agent to help people suffering from depression. You need to know the allowable latency of your system, that is, you must not ship private data to the cloud.
The skill set required in this application domain of the ‘Deep Learning Engineer’ profile comprises some major skills. First off, superlative programming skills go without saying. You must have the zeal to optimise an algorithm as much as possible so previous full-stack work experience helps. Secondly, you must abound in knowledge about Big Data Handling, High-Performance Computing and hardware platforms such as GPU, VPU/ASIC, FPGA, CPU (x86 vs ARM) etc. Suitability of each platform must be studied and optimum code should be written.
If you possess these skills, a startup job would fare you well to explore deep learning to solve problems. However, a routine check of your boss and/or company is required before signing up. We give you an idea here of what you should look out for. First of all, if your boss believes every problem can be solved through deep learning no matter how complex, give him a miss. Make sure the company has a collaboration with a domain expert and also institutions providing labelled training data. A good company has collaborations with an AI expert in academia.
This ensures you have help along the way and don’t get stuck up at one place for very long. The next question that arises is whether to go abroad or stay in India. Unless it’s a top-tier university or a workplace close to Silicon Valley, it’s a waste of money because India has excellent colleges like the IIT’s, ISIs and the IISc. It’s better to stay back and work for your country because these institutions provide state-ofthe-art hardware infrastructure for Deep Learning that will be ready within 1-2 years.
There are also talented professors and promising research groups. Giants like Google, Amazon, Intel and NVIDIA and government organisations like MHRD, ISRO, and DRDO are investing heavily in these groups as well. Takeaway: starting with a startup job helps you identify which role fits you best—writer, programmer, strategist etc so that you can do that particular task in your research group to publish papers when you do your PhD.
If you have neither of the skills required for a deep learning scientist or a deep learning engineer, you can start off with the Google Python Class. cs231n.stanford. edu has assignments that require both paper reading and programming. This will help you understand which stream suits you better and what loopholes need to be plugged in the training.