Artificial Intelligence is the application of algorithms to data. If you have no data, or the data is not clean, there is no intelligence.
The term Artificial Intelligence (AI) is somewhat misleading. It suggests that it is possible to make a computer think or rationalize the way a human can. Although there is much interest and work being done in this area (i.e. Cognitive Intelligence), where AI is currently useful is in identifying patterns and abnormalities in data.
Artificial Intelligence is not Natural Intelligence
In order to understand AI better, it is useful to consider Natural Intelligence. From birth humans are passed through a series of events. The brain stores a map of those experiences and results, which are used as input in future decision-making exercises. Presumably the more input we have, the better decisions we make. We refer to this as wisdom.
When we speak of AI, we refer to it as Artificial, in part, because we are forcefully training a computer program using a predetermined set of data. It is not like the random walk that humans take through life. In fact, it is quite the opposite. Although AI applications can identify patterns in clean data sets, perhaps better than human beings, its limited perception of the world is easily distorted by abnormalities in the data set. The application can be intelligent (good equations and programming logic), but have no wisdom, so to speak.
Effectively Deploying Artificial Intelligence
When deploying AI, a computer program that is composed of a set of algorithms, is forced to derive conclusions from sets of data. Without the data, the program has no means of identifying trends, and therefore, it has no basis for making decisions regarding new input. Simply put:
AI = Equations + Data
Equations can be perfectly programmed, but without equivalently perfect data, the AI is unlikely to be effective in interpreting or predicting information. If a data set has a lot of noise, or irrelevant information in it, even the most ingenious algorithm will be useless. Effectively deploying AI, therefore, requires data to be cleansed, normalized and processed before using it to train an application.
Training an Open Source Business Card Reader
Recently, we experimented with various Machine Learning applications in an attempt to eliminate the tedious task of entering information from a business card into our Customer Relationship Management (CRM) system.
Machine Learning is a subset of Artificial Intelligence that focuses on using algorithms and statistical models to train computers to perform specific tasks without using explicit instructions. In this case we were hoping to feed an image of the business card into our application and have it return a set of name-value pairs that we could push into our CRM.
Using MATLAB, we converted a set of 50,000 images we obtained from Kaggle, into gray-scale using Otsu’s method. Otsu’s method exhaustively searches thresholds to minimize differences between two data sets. This allowed us to identify text regions for certain pieces of data. We used that output to feed Tesseract, an optical character recognition (OCR) engine. It is widely considered one of the leading open-source text recognition engines and is often used in business card reader applications.
After training the Tesseract engine using the Kaggle data set, we were able obtain roughly 52 percent accuracy when feeding new business card test data into engine.
Deploying Microsoft’s Business Card Reader
Microsoft Power Automation is the next evolution of Microsoft Flow. It allows a user to automate simple tasks with little to no programming code being written. Microsoft has also incorporated some of the AI functionality that lives in Azure, into Power Automation, allowing everyday users to easily incorporate AI into their workflows without the help of a computer programmer or a data scientist.
Microsoft has included a business card reader in the latest release. This product provides the consumer with both the algorithms and the data. There is no programming or training required. Simply feed a business card into the application and it outputs the name-value pairs. Out of the box, Microsoft’s business card reader was achieving an 87 percent accuracy using the same test data. When you compare that to the 52 percent accuracy rate experienced with Tesseract, a leading OCR engine, you can come to only one conclusion – Microsoft has better data than Kaggle, and therefore, their OCR reader is going to perform better.
It has more experience – more wisdom – and is therefore, more intelligent. AI’s performance is largely a function of the data used to train the engine. Without big data, there is no intelligence.