Artificial Intelligence. We keep hearing about it, we have watched many movies based on it, it is all around us and there are quite a few tutorials in CodeStories that mention Artificial intelligence, but what is it really?
Definition
Artificial intelligence (AI) has many definitions. Today, modern dictionary definitions focus on AI being a sub-field of computer science and how machines can imitate human intelligence (being human-like rather than becoming human). The English Oxford Living Dictionary gives this definition: “The theory and development of computer systems able to perform tasks normally requiring human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages.”
Merriam-Webster defines artificial intelligence as
- A branch of computer science dealing with the simulation of intelligent behavior in computers.
- The capability of a machine to imitate intelligent human behavior.
The Encyclopedia Britannica states, “artificial intelligence (AI), the ability of a digital computer or computer-controlled robot to perform tasks commonly associated with intelligent beings.” Intelligent beings are those that can adapt to changing circumstances.
Definitions of artificial intelligence begin to shift based upon the goals that are trying to be achieved with an AI system. Generally, people invest in AI development for one of these three objectives:
- Build systems that think exactly like humans do (“strong AI”)
- Just get systems to work without figuring out how human reasoning works (“weak AI”)
- Use human reasoning as a model but not necessarily the end goal
Artificial Intelligence in Computer Science
Artificial Intelligence is any technique which enables computers to mimic human behavior. To accomplice this goal Artificial Intelligence includes Machine Learning (ML) and Deep Learning.
Machine Learning
Machine learning (ML) is the scientific study of algorithms and statistical models that computer systems use to progressively improve their performance on a specific task. Machine learning algorithms build a mathematical model of sample data, known as “training data”, in order to make predictions or decisions without being explicitly programmed to perform the task.
Machine Learning Algorithms and approaches
Machine learning tasks are classified into several broad categories. In supervised learning, the algorithm builds a mathematical model of a set of data that contains both the inputs and the desired outputs. For example, if the task were determining whether an image contained a certain object, the training data for a supervised learning algorithm would include images with and without that object (the input), and each image would have a label (the output) designating whether it contained the object. In special cases, the input may be only partially available, or restricted to special feedback.
Classification algorithms and regression algorithms are types of supervised learning. Classification algorithms are used when the outputs are restricted to a limited set of values. For a classification algorithm that filters emails, the input would be an incoming email, and the output would be the name of the folder in which to file the email. For an algorithm that identifies spam emails, the output would be the prediction of either “spam” or “not spam”, represented by the Boolean values one and zero. Regression algorithms are named for their continuous outputs, meaning they may have any value within a range. Examples of a continuous value are the temperature, length, or price of an object.
In unsupervised learning, the algorithm builds a mathematical model of a set of data which contains only inputs and no desired outputs. Unsupervised learning algorithms are used to find structure in the data, like grouping or clustering of data points. Unsupervised learning can discover patterns in the data, and can group the inputs into categories, as in feature learning.
Deep Learning
Deep learning (also known as deep structured learning or hierarchical learning) is part of a broader family of machine learning methods based on learning data representations, as opposed to task-specific algorithms. Learning can be supervised, semi-supervised or unsupervised.
Deep learning architectures such as deep neural networks, deep belief networks and recurrent neural networks have been applied to fields including computer vision, speech recognition, natural language processing, audio recognition, social network filtering, machine translation, bioinformatics, drug design, medical image analysis, material inspection and board game programs, where they have produced results comparable to and in some cases superior to human experts.
Deep learning models are vaguely inspired by information processing and communication patterns in biological nervous systems yet have various differences from the structural and functional properties of biological brains (especially human brains), which make them incompatible with neuroscience evidences.
Artificial Intelligence Examples in daily life
We use artificial intelligence everywhere in our daily life. From the recommendations we get in our daily feeds to smart home devices and digital assistants. Below is a list of services that all use AI to protect from fraud, advertise and assist us in everyday tasks.
- Smart Cars and Drones
- Digital Assistants
- Social Media Feeds
- Music and Media Streaming Services
- Video Games
- Online Ads Network
- Navigation and Travel
- Banking and Finance
- Smart Home Devices
- Security and Surveillance
Artificial Intelligence Software and Libraries
As developers there are a lot of libraries to help make our applications intelligent. You can find a lot of tutorials here in CodeStories on the Artificial Intelligence section. As a .NET developer some of the services I have used are:
- Microsoft Cognitive Services
- The Microsoft Cognitive Toolkit
- The Microsoft Azure Machine Learning Studio
But there are libraries for every programming language and preference. Below you can find some for Python, C++, JS and C#
- TensorFlow
- Theano
- Keras
- Caffe
- Torch
- Accord.NET
- Spark MLlib
- Sci-kit Learn
- MLPack
- Deeplearning4j
- IBM Watson
- Pybrain
- Swift AI
- Apache MXnet
- TFLearn
- PaddlePaddle
- and more…
The Future?
In 2016, several industry leaders including Amazon, Apple, DeepMind, Google, IBM and Microsoft joined together to create Partnership on AI to Benefit People and Society to develop and share best practices, advance public understanding, provide an open platform for discussion and to identify aspirational effort in AI for socially beneficial purposes.
The rest is up to us as developers to build responsible applications 🙂
References:
Forbes: https://www.forbes.com/sites/bernardmarr/2018/02/14/the-key-definitions-of-artificial-intelligence-ai-that-explain-its-importance/#4a2798374f5d
Wikipedia Articles: https://www.wikipedia.org