It’s hard to ignore the surge of artificial intelligence and machine learning developments in recent years. The main players such as Microsoft, Google and IBM have released AI as-a-service, making it easier than before to integrate artificial intelligence into your existing software products. You could say the commoditisation of artificial intelligence is upon us.
This introductory article is the first in a series where we explore what artificial intelligence is. In subsequent articles we’ll look at how AI can benefit your project or business, how you can identify suitable AI projects and much more.
Artificial intelligence has seen some great advancements in recent years but idea of a “thinking machine” goes back a few decades.
In the 1950s, Alan Turing created The Turing Test, Turing laid the groundwork for a machine that went onto crack the German Enigma code, he also theorised about artificial intelligence and developed the “Turing Test”.
His test opened with the statement – can machines think. In his test, he proposed:
“a human evaluator would judge natural language conversations between a human and a machine designed to generate human-like responses.The evaluator would be aware that one of the two partners in conversation is a machine, and all participants would be separated from one another”
Whilst his paper and test were criticised, it was still seen as an important topic in the artificial intelligence world. The Turning Test was meant to demonstrate AI capabilities, it could only test for the existence of “weak AI” which brings us onto…
Strong AI and Weak AI
AI generally falls into one of two categories – “Strong AI” and “Weak AI” (no, one isn’t loading on creatine!).
Strong AI is a type of machine intelligence that is equivalent to human intelligence. Intelligence that can reason, solve puzzles, apply context, make judgements, plan, learn and adjust communication considering recent events. It is sometimes referred to as “True Intelligence” or “Artificial General Intelligence”.
In the current AI ecosystem, strong AI just doesn’t exist! Some believe it will someday, whereas others believe we’ll never reach the singularity.
Weak AI, on the other hand, is machine-based intelligence that is restricted to one specific problem domain. It’s a form of intelligence that replicates human cognition and can help reduce workloads by applying automated logic. It can also help you build self-learning systems and help improve business processes or time-consuming tasks. That said, it can be easy to throw weak AI systems off balance, hence the name. Some examples where weak AI has been deployed include:
- Email spam detectors
- Image classifiers
- Spell checkers
Weak AI systems tend to deploy solutions based on machine learning technology to help the machine arrive at its decisions whether it be identifying humans in images, understanding human language or identifying spam emails.
We just touched on machine learning (another branch of AI) so it deserves a mention. While software applications are typically built by developers who translate business requirements into relatively static rules in a programming language such as C#, machine learning abandons this relatively static approach to a more dynamic one whereby the machine can make decisions by itself without a developer having to code up new business rules as new data is found.
The main categories in machine learning include Supervised Learning and Unsupervised Learning.
A supervised learning algorithm analyses the training data and produces an inferred function, which can be used for mapping new examples. An optimal scenario will allow for the algorithm to correctly determine the class labels for unseen instances.
Classification is a form of Supervised learning. It is the process of predicting which category data belongs to, all based on training data that was previously supplied to the machine.
Unsupervised machine learning is the machine learning task of inferring a function to describe hidden structure from “unlabelled” data (a classification or categorisation is not included in the observations). Since the examples given to the learner are unlabelled, there is no evaluation of the accuracy of the structure that is output by the relevant algorithm – which is one way of distinguishing unsupervised learning from supervised learning and reinforcement learning.
Algorithms lie at the centre of machine learning, there are plenty to choose from and they all serve their own unique purpose. Some of these include:
- Bayesian Networks and Classifiers
- Neural Networks
- K Means Clustering
The type of algorithm you need depends on the problem you want to solve. For example, a few years ago I had to find a way classify Twitter data into specific categories. I couldn’t code every variation or rule into my API and found that a Bayesian Classifier was ideal for the task (that’s the Bayesian Rule in the above image).
It ran with an accuracy of about 80% which was fine and effectively helped me build an automated classification API.
The Role of Data in Artificial Intelligence
Decision making lies at the heart of most AI systems, for the machine to make decisions it needs to evaluate incoming data currently being processed. To help the machine make these decisions additional datasets are used. This is often called training data.
Training data can be anything, structured, unstructured, emails, images, documents, JSON and anything in between. It might be locked away in your existing IT systems or even outside your network, the key thing is that training data must be relevant to the data you want your AI system to process.
Training data helps the machine identify patterns and gives the machine a frame of reference and some context to help it make its decision, just a like a human would. For example, you know that based on experience, dark clouds increase the likelihood of rainfall!
When specific signals are found during data processing, the machine can then adjust the behaviour of the software automatically – without developer intervention.
Traditional Software Development vs Artificial Intelligence Solution
Imagine you’re a developer that’s been asked to build a content moderator that is responsible for checking the content of each email, blog post, document and anything may contain profanity.
Some typical steps that you might take to complete this work may involve:
- Get samples of text that contain profanity to see what it looks like. You’d notice some key words or phrases and add these to a “black list”.
- Next, you would code some string manipulation methods to identify these words or phrases. You could then flag content that contained these.
- Finally, you would test the application, and iterate over steps 1 and 2 until your code is catching a decent enough percentage of content that contains profanity.
Whilst this approach would work, it would be a maintenance nightmare that contained lots of hard coded, or even regular expressions-based business rules. Each time new content was encountered that didn’t match your existing rules, you’d need to lift the hood on your source code, tweak it and redeploy it!
How AI Helps Solve This Problem
It’s in situations like this where deploying a solution that leverages artificial intelligence can really help. By furnishing data models with sufficient training data, machine learning algorithms can be used to process incoming data and automatically surface content that contains similar features to that of your training data.
The point is that it doesn’t’ have to exactly match (unlike the traditional approach where pattern matching rules are explicitly defined). Probabilities or confidence scorings can even be assigned to data processed by your AI solution which allows you to further increase your application’s intelligence!
Evolution and Democratisation of Artificial Intelligence
Technology has evolved from the days of Turing and in the last few years, we’ve seen vendors like Microsoft effectively democratise what were once complex algorithms into easy to use API endpoints.
For example, with the release of Microsoft Cognitive Services, you don’t need to get your hands dirty and code a Bayesian Classifier from scratch to help you apply sentiment analysis. You get it out of the box with the Text Analytics API.
Or if you need to perform Natural Language Processing (NLP) to help you understand human language and surface actionable insights such as Intent and Entities within a sentence, you can use LUIS.
Having access to these APIs lowers the barrier to access for businesses and developers that are keen to deploy AI powered solutions. Its as simple as obtaining a key and constructing a REST request for some of the endpoints!
Other Examples of AI
Some other use cases where you can find AI include, but are not limited to:
- Recommendation Engines
- Marketing and AdTech
- Natural Language Processing (NLP) and Chatbots
Do you have an Amazon account? Machine learning is behind the “recommendation engines” that suggest products that you might be interested in as you browse through the site. It’s especially noticeable at the checkout when you’re presented with “other products you might be interested in”. Your own personal browsing history, coupled with other customers’ past behaviours, is fed into AI algorithms which surface these recommendations.
Marketing and AdTech
Ads are as old as the internet itself. Have you ever looked at products online, only for similar products to be displayed in your Facebook or Twitter feed later that day in a digital ad? Machine learning is behind this too.
By tracking what you “Like”, comments you post, and even how long you spend on web pages, AI algorithms can, with relative accuracy, inject relevant marketing creative in your web browser.
Natural Language Processing (NLP) and Chatbots
In the last few years, fuelled by the release of easy-to-use NLP APIs, chatbots have started to flood the market. They have the potential to serve as knowledge agents, handle basic customer requests or queries, and free up humans to do more complex tasks.
A firm X.AI even developed a chatbot that removes email “ping pong” when it comes to scheduling meetings. All you need to do is CC in the AI assistant and it takes each recipient’s calendar into account to then determine the most suitable dates and times for everyone.
In this article we’ve introduced artificial intelligence, looked at some of the algorithms, the importance of data when deploying machine learning solutions, and how software projects that leverage AI can have advantages over a more traditionally architected software application. We’ve also looked at some other examples of AI in the real-world.
In the next article we’ll look at how AI can benefit your project or business.
Are you using AI in any of your projects? What has your experience been?