I interned at Indira Gandhi Center for Atomic Research (IGCAR), as part of my BITS academic requirement from 21 May 2019 to 14 July 2019.
After the formal introduction, we were told to choose one project from the given list of projects. I decided the project titled “Exploring machine learning solutions for Semantic Segmentation for Nuclear Domain” with Dr Meenachhi as a mentor. She told me that it is an open problem statement which will provide decent research experience and offers a steep learning curve in ML, a field I am highly passionate about.
Dr Meenachhi described me about the formal scheme of things, weekly progress report presentation and daily morning viva. The problem statement of my topic was that I wanted a machine to understand nuclear texts like a human does. He gave me an example of a word, say “piping”. Now a mechanical engineer might think of it as pipes used in machines, a gardener may understand it as pipe used for watering whereas a computer scientist might think of piping of outputs used in a Linux environment. She told me to do a literature survey of the approaches that have been used in both nuclear and non-nuclear domains.
I read many research papers on google scholar, which were related to semantic segmentation. My background experience was traditional machine learning and computer vision, hence I followed Stanford CS224n NLP course to gain a better understanding of the concepts alongside literature survey. I made a word document of all the research papers I felt related to our topic.
After a week or so, I started to get a better understanding of the material and the terminologies and jargons used in the research papers. By now, I had referred around fifty research papers and binge-watched most of CS224n. But the more I understood the topic, the lesser I seemed to have the clarity of the problem. Many articles used rule-based ontological approaches in their respective domains to perform semantic tasks. After a point, I was even confused with the terms “semantic” and “segmentation”. I was wondering what does “semantic” actually mean here. What am I trying to achieve? After referring some more research papers, articles and with the help of my mentor, I finally understood that “semantic” actually refers to any task which requires an understanding of the meaning of the topic. For example, Natural Language Inference, where there are a hypothesis and an assertion and the machine needs to tell whether it is a valid inference or not. Semantic tasks also involved tasks such as Question-Answering, which, in fact, is the Turing test of Artificial Intelligence.
With this understanding, I now referred to more resources. I observed that many of these tasks are already done, so what will be the problem if I use one such model? What will be the difference and difficulties in applying a model in different domains? I specifically focussed on how various fields are tackling similar problems.
I realized that models need first to map words into some form of numeral representation to perform further operations. Converting words into numerals is the foundation step for most of the Natural Language Understanding tasks. If I used pretrained word2vec, then most of the jargons used in Nuclear domains would be unknown words for it, and hence we won’t achieve good success in downstream tasks.
Well, I hate to leave things in suspense, nevertheless I would complete the journey some other time.