Recently, I have noticed that a lot of Engineering colleges are getting on to the AI bandwagon by starting a dedicated branch in Engineering for Artificial Intelligence. Some of them have also started it as a sub-branch under the Computer Science (CS) department. I started to wonder,
- Can AI in itself survive without a domain?
- Is AI really a subfield under CS?
- Isn’t AI just a problem-solving or an optimal decision-making algorithm?
- Problems are there in every domain, so why is it marketed under CS?
First, let us understand what I mean by the “Domain”. The domain is traditionally what work people used to do; like agriculture, manufacturing, mechanical, automotive, civil, painting, music composition, poetry, electronic design, medical, diagnostics, etc. With changing times, a lot of these moved from manual to mechanization, and now due to digitization, from mechanization to automation. AI has played a significant role in bringing about automation in all of these and many more domains. With digitization, the data that once used to meet pen and paper moved into a computer. A computer as the name suggests is mainly used to compute or process data and not just store it. But unfortunately, computers do not understand the same language as we do. Traditionally it did not have the same interface for communication (to get it to do a specified task) as we do. It could not talk or understand what we are asking it to do.
Because a computer is innately digital in nature (it really needs to be called a digital computer, but the word digital has become so implicit now) and understands only 1’s and 0’s the very first communication language was a set of predefined words (instructions) when given to a computer in a sequence would perform a specific task. The computer was said to be programmed to do a specific task. Since remembering these codes was difficult, especially as the capability of the computer also started to increase, more and more abstraction to these low-level codes started to emerge and called the programming languages of a computer. More sophisticated the programming languages became, more and more syntax started to develop and all of this abstraction and sophistication led to the birth of a separate field/branch of engineering, today called CS.
During the initial days of CS, the machine was dumb and had to be hand programmed for every task. It was not used to solve any domain problems as AI was not as mature as it is today. We required several general purpose applications in a computer like audio\video player, word, excel, browser, etc, and many more specific applications, and the need for CS graduates increased. The digital era had started and CS was at its peak. CS students also started to study algorithms and optimization, because computers had limited resources and any applications that they developed had to utilize the resources efficiently. Since the rest of the domains still required human-level expertise, it kind of became a norm that anything to do with a computer was majorly associated with a CS graduate. So CS was also considered to be a separate domain.
This skill of programming/coding was far from the reach of ordinary people. They just used the different applications on a computer to support their day-to-day work. AI also went through a couple of winters, since its multiple dependencies (algorithms, data, computing capability, storage, and bandwidth) did not synchronize well with one another.
The advent of GPUs and availability of data (due to digitization, affordable storage, and bandwidth) fueled the once hibernated algorithms (neural networks) to come out of slumber and show their prowess in solving a wide variety of problems in a generic and automated manner.
But, by this time the reputation was built, that anything to do with a computer was a CS graduate’s cup of tea. Today Deep Learning (DL) is entering into every domain and DL algorithms can learn completely from data without requiring a computer to be explicitly programmed for every specific task. When we say data, it is not any data, but relevant data. It is the data that the domain experts understand and bring relevance in. Since DL algorithms blindly try to learn from the data, it is important that we feed them the right data. Any garbage in would result in garbage out.
Since a CS graduate does not understand any other domain, he also does not understand any other data. So it kind of feels ridiculous to me if a CS graduate is given medical data to solve some medical problem without him understanding the domain and assuming that the magic black box (DL) will do the trick and give a solution. So people in any other domain other than CS should not be worried that their jobs will be taken away by computers. A lot of mediocre and repeated jobs might be replaced, but the domain expertise will still have value. To solve any problem you need to get into the shoes of the person facing it and feel the pain. You need to understand THE DOMAIN.
Opensource software and frameworks have made it easier to apply advanced algorithms in AI to the domain of your choice. But, there is a mental block. Either people from other domains do not get exposed to programming at an early stage or do not realize how it could help them to solve problems in their own domain. So once they graduate and get into the industry, they are forced to (if at all they want to switch to AI), pick domains that are popular in the open-source world than going back to their own roots. If only a farmer knew how to use these, he would definitely solve the problems in agriculture far better than any one of us from a nonagricultural background. AI as such does not achieve any goal if it is not tied to any domain. It’s like a gun, anyone can shoot, but only a shooter can aim the target.
It’s my humble request to all the Engineering colleges to stop treating AI as a separate field of study and disconnect it from any specific domain. Going forward, the use of computers and programming will be inevitable, as most of the heavy lifting when it comes to analysis, interpretation, and decision-making will be taken up by a computer (of course under the guidance of a domain expert). Using an AI algorithm to solve your domain problem will be similar to using any of your favorite apps on your smartphone. It is for everyone and not just graduates. AI is all about automating personalization with precision and speed in an optimal way. It will be used by a retailer, tailor, plumber, gardener, barber, and who not.
Before we get into all that, can we at least start by making this incremental change in Engineering? CS as a domain is much more than just programming. Programming should be given the same priority in every field of study, because we will be dependent on computers more than anyone else in our life for decision-making and analysis, and not having the skill to communicate with it should not be a barrier anymore.