Anand Asokan: Internship at KAIST
Please give a short description of your profile.
Currently, I’m a 4th year ICE undergraduate, and a member of RMI, FSR and LEAP. I’m the President of RMI and the head of FSR. I stay in Chennai, but I’m a native of Kerala. My field of interest is in robotics. I have always loved to work on research problem statements, and hence I have worked on many projects both in college and during earlier internships. I focused on universities rather than applying for a company intern, for my summer research internship at the end of third year.
I got an opportunity to work at KAIST (Korea Advanced Institute of Science and Technology) – it’s a research university, and is English based. Being an English university is not very common in Korea. The most commonly spoken language is Korean, consequently most universities in Korea have Korean as their medium of instruction, with KAIST being one of the few exceptions. KAIST is ranked #2 in Korea and is in the top 40 universities in the world.
What other universities did you apply to?
Last year I had gone to NTU (Nanyang Technological University). This year, I applied to NUS (National University of Singapore), on a few of my seniors recommending the same. Unfortunately, I had applied too late and the vacancy was filled. I also applied to Carnegie Mellon University (CMU) and a few universities in Canada like University of British Columbia (through MITACS). Carnegie Mellon’s Robotics Institute is known worldwide for robotics; unfortunately, I didn’t get through. My application to KAIST got through in the first week of April, and I decided to go there for my internship.
Can you provide a timeline right from when you applied to when you got your visa?
I started looking for opportunities from September. I applied for MITACS, which opened then. I also applied for Carnegie Mellon University’s RISS program, and the results were to be out the following April. I was waiting for these two results. Meanwhile, I applied to a few universities directly, and I got my KAIST offer in the first week of April.
The visa process was pretty simple; it took just five days to complete. I filled up a form, and they gave me a signed confirmation form. Once I submitted this form, I received my actual visa in a couple of days. I needed a transcript from the college. I didn’t need any recommendation letter as it was an independent venture. It is ideal to start applying from September and keep looking out for university programmes.
What was the selection process like?
Since it is a research-based intern, and I applied of my own accord, it was all about emailing professors. They would look at my resume and gauge if my interests matched with what they were working on in the lab. KAIST, being a research university, it doesn’t have many UG students, and is primarily occupied by students pursuing their PhD. The professor at KAIST was glad to take me in. Since I was an international intern, he also gave me a small stipend to partially cover my expenses.
What did you work on during your internship?
My intern was about deep learning. Deep learning is essentially an implementation of Machine Learning. In Machine Learning, a computer learns based on examples or logic fed to it. When a new example is fed to it, it will give you an output, based on what it has been trained with. The accuracy depends on how you train it. In this case, I was working on object detection. You would’ve seen the face-detection feature in your phone – it detects your face an draws a bounding box over it. I was doing something similar, but instead, with ships.
At my lab, they were building an autonomous ship which had RADAR and LIDAR. LIDAR is good for short range scanning, and RADAR for a long range. They aren’t accurate enough in the region in at medium range, hence the requirement to fill in the gaps in the sensor data. The proposal was to use a single camera feed to obtain information about the boat positions. Here is where I worked on, detecting ships from the camera feed.
In my deep learning structure, I fed images from the camera feed of the autonomous ship, from example images off the internet, and so on. The model would be trained with this. Given a new test set, it would analyse the picture, draw a bounding box around the object, and classify it as a boat. With these pixel coordinates, the position of the ship can be found out so that our ship can take necessary actions.
Would you suggest any online courses that were useful during your internship?
I had very little knowledge of machine learning before my intern – I had to learnt it mostly from scratch. I have worked quite a bit in Python though. Machine learning is primarily done with python, as most of open source packages are available there, like TensorFlow, and PyTorch. These are two major frameworks for working on Deep Learning and Machine Learning in general. I followed a course from Stanford University – CNNs (Convolutional Neural Networks) for Visual Recognition. We use CNNs to do image processing, as they are a very powerful tool in the field.
To study the basics of Machine Learning, you can follow the Coursera course by Andrew NG from Stanford University, but his course is long. So, I took up a few points from it. My project was very specific to CNN.
What other skills were useful during your internship? How does one pick up those skills?
For Python, TutorialsPoint is a good place to learn. They teach you some basics very quickly. Watching videos is good, but they are generally so short that you don’t get to grasp the concept completely. You need to look at some examples and learn from them. However, I think learning Python should not be done by following a tutorial, actually. When you have a goal that you want to achieve, you must think what you can do algorithmically to solve the problem, and then look up the Python Documentation, and find out the right thing to do. For example, in the case of sorting, I know I should create a loop to go through the array, so I need to know how to create an array, and then on looking through the documentation, I come to know about the ‘for’ loop, the ‘while’ loop and so on. That is how you learn. Rather than learning the ‘for’ loop first and then looking for its applications, one should go for the application first, and then you will come to know how important a for loop is. That is I how I learnt Python.
For Java, again, I looked at the documentation. It’s advisable to learn Java using an IDE. Some people learn it using Notepad++ or Sublime Text, which are not full fledged IDEs. Those are text editors, with some extra capabilities, like highlighting keywords etc. Some say that IDEs have so many features like autocomplete, suggestions and so on inbuilt, that you forget to actually learn the language. But I feel that is not an issue, as you know at which point the autocomplete kicks in, and it is anyway not that smart to completely finish the code for you. For Java, the most common IDE is Eclipse, for Python, Visual Studio Code is a good choice as it is a full fledged IDE now.
To pick up electronics, Arduino is the best place to start, even for coding in general. Then you can move to Python. You can use the Arduino Language or Embedded C. That is what I would recommend.
Do you intend to pursue highers in a similar field?
Yes, I wish to continue in robotics. But if you are referring to deep learning, then I consider deep learning to be a tool. It’s like learning Python – its very rare that you see someone pursuing a career in Python. You can use Python to develop something else. If you learn Django for example, you can create a webpage. My research interest lies in biomedical robotics. In that field, I could use deep learning to take images and automatically detect cancer tumours. Or, I could use the same machine learning analysis to analyse a person’s paralysis. Instead of directly finding solutions and hard-coding your robot, my professor suggested to use a structure like this and make the robot learn for itself, opening up new possibilities.
Did you face any difficulties in financing?
The flight tickets to Korea cost quite a bit. I got a relatively cheap flight at Rs. 40,000 (round trip). Korea is costly in terms of food. On a daily basis, every meal cost about 5,000-6,000 Won (around Rs. 300-350) at the cafeteria. At an on-demand hotel, it would cost about 8,000 Won for a very basic meal (around Rs 500). Food in Korea is a problem. Their style of food is completely different from ours. I have had some experience with Asian food, so I didn’t face much of a problem. For vegetarians, it is a troublesome place. Some restaurants understand vegetarian food means to not have meat, and seafood doesn’t come under meat, so you are most likely to get some seafood in what you order. Accomodation was reasonable – I stayed on-campus in the dormitory. It cost about 8,000 rupees for two months. Transport within Korea is reasonable, easy and very efficient. I spent around Rs 1.2 Lakh for the entire internship – 40K for the flight tickets, and the rest mainly on food and local trips to a couple of places in Korea.
How did you overcome the language barrier?
I had a fair idea of the lack of English speaking people there. Since Korea is a developed nation, I had a feeling that people would know enough English for me to manage. At places like the Airport, there are English alternatives. However, people you meet on a daily basis like shopkeepers, taxi drivers etc. all converse only in Korean. You cannot even use simple English terms like right, straight, etc. Say, I want to go to a hotel, making them comprehend what I wanted was difficult. Since our accent is also different, they have a hard time understanding words that they may have understood if they did know English.
I resorted to Google Translate for pretty much all day-to-day needs, especially during the first few days, say for example, purchasing bread at a supermarket. I would simply use the translator on my phone for transliteration of simple words. To give you a rough idea, except for numbers, everything in a supermarket was in Korean. Google Translate has a Live Translate feature, wherein it takes in images and converts the text in them to your preferred language, right on the screen.
I realised that language was not necessarily a communication barrier. I realised how much I could convey what I need through sign language. Despite the fact that the other party spoke in Korean and me in English, just by the tone, nature of the conversation, and the body language, I could interpret a majority of what he was trying to convey. That was really amazing. I also realised how much I had taken for granted about using English as the main language on an International trip.
Did being a part of RMI help you in the work that you did during your intern?
Being in RMI, I learnt a lot about problem analysis, and in general, a lot of algorithm development. Hence, I was able to pick up easily on what was required of me during my project. I had a bit of prior experience with Machine Learning, mostly through my friends at RMI, while working on some projects.
Can you explain a bit about your previous internships?
I did a research intern at NTU, Singapore during the summer of 2017. I had applied directly to a professor at the School of CSE, and fortunately got through. I worked on Human Computer Interaction – about how a human Air Traffic Control (ATC) operator interacts with a computer. The ATC operators, who are responsible for preventing collisions and instructing planes to land properly, are often in a very stressful environment, as they have to continuously keep track of which planes are coming from which direction, and where they need to go. So we studied how these planes are moving and how these operators are responding to that – like where he looks and how fast he responds. I built a Java application to track his eye movements, his cursor movements and so on. They had an eye tracker, a keystroke logger, audio logger, a mouse logger etc. The data from each tracker is stored in a different log file and are later analysed in a piece of software that I additionally developed. So the intern was not entirely in the field of robotics. However, I think it was a good way to learn sensor integration, and problem analysis. I also learnt multithreading, where multiple processes run simultaneously. Since the eye and mouse movements happen simultaneously, the computer should process them together, and not sequentially.
I had also worked at the Neuromechanics Lab at IIT Madras in the winter of the same year, where I worked on modelling a PID Controller to simulate a person’s behaviour for a specific line tracking task. This would help doctors and researchers to better understand eye-hand coordination in humans, and thus help design new treatment methods for disorders.
What are your plans for the future?
I want to do my Master’s, most likely in robotics, but I am open to similar fields like Mechatronics, and Aerospace Engineering. That is, I am interested in studying technology related courses which are interdisciplinary. I will be applying to universities in the US, Canada and Europe.
Is it useful to do a research based company intern if one is interested in pursuing highers?
For Master’s, research internships are better because it shows the application committee that you are interested in research, especially when you’re planning to do a Master’s with thesis. Master’s with coursework is a bit different – it is like B.Tech, where you do multiple courses and submit a basic project. Master’s with thesis is like a mini PhD – you write and submit a big project thesis. You will have fewer courses. So, especially for Master’s with thesis, you need to show that you are interested in research. Research based internships are very good in that aspect.
But some company internships are basically doing research. If you do an intern on data analytics for example, you might study business models too. Those kind of internships are good enough if you are taking Masters in Business or in the fields of data management, data analytics, big data etc. But if it is monotonous, mundane work that you are do there, then it is of little value. So, if you are interested in going for Master’s, your internship should be in some way related to research, where you at least learn research concepts. An example would be picking up Python, which is something that is useful later.
Is there any general advice that you would like to give to students?
Many people go for an internship just for the sake of completing a requirement at college. But an internship is actually an opportunity to learn a lot, because you get exposed to new perspectives. The people who work there have a different perspective than what we come across in college in general. You gain new perspectives from different people on how to approach a problem. You will also do some self-discovery – you will learn how you are able to solve that particular problem. Also, you should not be afraid to go for an intern that is not relevant to your exact field. For example, my second year intern was not in robotics. But then I still went there for the international exposure that I got.
You also realize the application of what you can do – you realize your potential there. You realize the extent to which you can apply the skills that you have picked up, in a real world scenario. In college the opportunities are very minimal as you don’t work on any research or projects as such. If you are in a club, you will have some partial understanding of these things, but going out, in the form of an intern is the best way to do it. So, don’t be afraid to go for an intern that is not aligning very closely with your interests. Rather, take something new, learn it. If you feel it is not going to be useful there, it will be useful for you somewhere else. In my case, I learnt Java in my intern, even though it is not used as much anymore. But from doing that project I learnt a great deal about the way that software is built, so now I can built similar kinds of software in any other coding language. Now I also know how to talk to and behave with people who are not of the same culture as me. Those kinds of soft skills are what you pick up most from internships.