The domain of AI is so vast that often as a beginner, there is a lot of confusion around the approach to be taken to learn, implement, understand and explain AI.
The post aims to clear some of that grey area and try to present a general approach that can be applied to implement AI in your project.
What is AI?
Nowadays the word AI is so widely used that it is almost difficult to identify its application. A simple definition would be:
A system can be said to have Artificial Intelligence if it can perform a specific task, the same way a human would do it.
So simply put, if any system can mimic human actions, we can assume that the system is intelligent enough to perform a task with maximum precision.
But how do we measure this?
To help us understand the capability of the system, we have something called The Turing Test, named after the founder, Mr. Alan Turing. Mr. Turing was a British Mathematician is also known as the father of AI. The Turing Test aims to determine whether or not a computer is capable of thinking like a human being. This was proposed in 1950 and still in use.
If a system possess the following capabilities, it can be called an AI,
- Natural language processing - To enable it to communicate successfully
- Knowledge representation - To store what it knows or hears
- Automated reasoning - To use the stored information to answer questions and to draw new conclusions
- Machine learning - To adapt to new circumstances and to detect and extrapolate patterns.
How should I start?
Often we find ourselves in a situation where we are lost in terms of the actions to be taken to implement AI. There is a process that you can follow to successfully implement and foolproof your AI solution.
Step 1: Identify the problem
It is very important to identify and understand the problem that you are trying to solve by making use of an AI-based system. Identify if there is a need for AI to solve a problem or is it over-engineering. The key here is to identify the type of agent required.
- Automation agents: These are pre-coded agents, without any intelligence, and perform a set of pre-configured tasks. If the input or the expected output changes in any way, these agents may fail to perform the task.
- Rule-based agent: These agents come with a set of pre-defined rules which can take care of the variations in input or expected output. The rules are easily configurable, which provides these agents a sense of flexibility.
- Intelligent agent: These agents learn the patterns from historical data which is fed to them and takes the best possible action needed in a situation.
- Self-evolving agent: These agents not only learn from the data which is fed to them, but also from other external or internal data sources/knowledge base to evolve themselves with time. Sounds scary?
Once you have identified the problem and finalised the type of agent to be used, we can move on to the next step.
Step 2: Identify the data source
AI is not something that came out in recent times. The term “Artificial Intelligence” was coined by John McCarthy in 1956 and ever since researchers are working on this domain. The reason this field is getting so much traction in recent times is that we now have the size of data that is needed to bring AI to life. I cannot stress enough the importance of data in building AI solutions. You can say that data is the fuel on which the AI engine runs. The better the quality of fuel we provide to the engine, the louder the engine roars.
There is a saying that explains the importance of data better, “Garbage in, garbage out”.
Step 3: Process your data
With the outburst of data, there is a need to process and filter the useful data. It is very important to identify the data that is useful for our hypothesis testing and trimming down unwanted data. Many techniques can be used to identify the most useful data. You can perform Exploratory Data Analysis aka EDA to identify the relationship different feature vectors have. Data needs to be regularised and normalised before it can be fed into our model. In future articles, we will discuss various data processing techniques in detail.
Step 4: Identify the suitable Machine Learning technique
There are many modeling techniques available to be chosen from. They vary from case to case basis. The suitable technique for your case will depend on the type of problem you are trying to solve. Majorly there are 3 types of problems that can be solved:
- Classification: when you want to predict the class of input data points. It can be binary classification (2 output classes) or multi-class classification.
- Regression: when you want to predict the output continuous value for the input data point.
- Clustering: when you want to divide or segment the input data points in different groups based on their properties.
The majority of problem statements directly or indirectly fall into one of the above-mentioned techniques. Stay tuned for more details on these techniques.
Step 5: Implement and Evaluate
This is the fun part. This is the part where you can see the results for all the hard work you were doing so far. It's time to finally train our model and evaluate the results. But before we do that, we need to make sure that the data we are providing our model needs to be divided into train, test, and validation sets. This step is important for our model to generalise the results better. Once we train our model, we need to validate the results. This can be attained using some widely used parameters like confusion matrix, accuracy, precision, recall, etc.
You can consider this step as a corrective step as well. There may be cases when the modeling technique you used is not giving the desired result or there is a need to collect more data to attain more accurate results, or there is a need to further process your data. All these insights can be gathered in this step.
The process is not set in stone. Often we need to modify the process according to our requirements. It is totally fine to go back to previous steps if the desired results are not attained.
Today we are surrounded by devices with AI capabilities. Even your favourite OTT platforms recommend you the movies that you would like, e-commerce websites recommend the items you may buy, auto-correct on your mobile that sometimes makes your life difficult, Google Map that makes your daily commute easier, there are self-driving cars running on the road and voice assist capabilities are improving day by day.
Can you think of the section of your life which is still untouched by some sort of AI? If yes, do you think that AI can be implemented there in the future?