Artificial Intelligence, Machine Learning, Deep Learning & Data Science
Image retrieved from [1]
Compendium of articulated concepts to understand new technologies.
First at all I want to explain some definitions about this subjects with focus on differences and then I’ll try to explain in more detail what is ML, define its approaches, techniques, programing languages and some applications.
Artificial intelligence (IA)
The term artificial intelligence as concept, was coined in 1956, but AI has become more popular today thanks to increased data volumes, advanced algorithms, and improvements in computing power and storage.
AI makes it possible for machines to learn from experience, adjust to new inputs and perform human-like tasks. Most AI examples that you hear about today come from chess-playing computers to self-driving cars and rely heavily on deep learning and natural language processing. Using these technologies, computers can be trained to accomplish specific tasks by processing large amounts of data and recognizing patterns in the data.
There are two main IA types, Strong IA and Narrow (weak) IA. First one is focused on perform general human-like tasks and is of course the most difficult and controversial in this time, for example domestic robots. The second is IA created just to perform one specific human-like task, for example image or voice recognition.
How AI Works
AI works by combining large amounts of data with fast, iterative processing and intelligent algorithms, allowing the software to learn automatically from patterns or features in the data. AI is a broad field of study that includes many theories, methods and technologies, as well as the following major subfields [2]:
- Machine learning. It uses methods from neural networks, statistics, operations research and physics to find hidden insights in data without explicitly being programmed for that task.
- Neural network. It is a type of machine learning that is made up of interconnected units that processes information by responding to external inputs, relaying information between each unit.
- Deep learning uses huge neural networks with many layers of processing units, taking advantage of advances in computing power and improved training techniques to learn complex patterns in large amounts of data.
- Cognitive computing is a subfield of AI that strives for a natural, human-like interaction with machines. Using AI and cognitive computing, the ultimate goal is see, listen and speak coherently in response.
- Computer vision relies on pattern recognition and deep learning to recognize what are in a picture or video. When machines can process, analyze and understand images, they can capture images or videos in real time and interpret their surroundings.
- Natural language processing (NLP) is the ability of computers to analyze, understand and generate human language, including speech. The next stage of NLP is natural language interaction, which allows humans to communicate with computers using normal, everyday language to perform tasks.
As we can see, IA has a very big scope and subfields to work. Now we can try to explain what is Machine Learning, with the understanding than this is one subfield of IS.
Machine learning (ML)
ML is the science of training machines to perform specifics human-like tasks.
ML methods are the way how machines learn from data, are the way to train machines how to learn. The following is the life cycle of ML:
- Ask question
- Collect the data
- Train algorithms
- Try it out
- Collect feedback
- Use the feedback to improve algorithms
ML is a research field in computer science, artificial intelligence, and statistics [3]. It is a method of data analysis that automates analytical model building. It is a branch of artificial intelligence based on the idea that systems can learn from data, identify patterns and make decisions with minimal human intervention. Try to train algorithms to learn patterns and make predictions from data.
This involves feeding huge amounts of data to the algorithm and allowing the algorithm to adjust itself and improve [4].
It lets us use computers to automate decision-making processes, in a variety of applications: Netflix, Amazon, Banks, and healthcare companies.
While many ML algorithms have been around for a long time, the ability to automatically apply complex mathematical calculations to big data over and over, faster and faster is a recent development. Here are a few widely publicized examples of ML applications you may be familiar with [5]:
- The heavily hyped, self-driving Google car.
- Online recommendation offers such as those from Amazon and Netflix.
- Knowing what customers are saying about you on Twitter.
- Fraud detection.
Now we can say that ML is also a very huge subject with a lot of possibilities perhaps its focus is in one particular problem each time. So, let’s try to define in this point what is Deep Learning and how is related with IA an ML but first we need to define Neuronal Networks.
Neural Networks (NN)
NN were conceived of by Warren McCulloch and Walter Pitts in 1943, yes, first than IA. Actually one can say that seeing NN possibilities, scientist began to talk about IA. McCulloch and Pitts wrote a seminal paper on how neurons may work and modeled their ideas by creating a simple neural network using electrical circuits. Remember than the transistor was invented in 1948 and the integrated circuit in 1958, so in that moment didn’t exist the software as we know it right now.
This breakthrough model paved the way for neural network research in two areas:
- Biological processes in the brain.
- The application of neural networks to artificial intelligence (AI).
AI research quickly accelerated, with Kunihiko Fukushima developing the first true, multilayered neural network in 1975.
The original goal of the neural network approach was to create a computational system that could solve problems like a human brain. However, over time, researchers shifted their focus to using neural networks to match specific tasks, leading to deviations from a strictly biological approach.
Since then, neural networks have supported diverse tasks, including computer vision, speech recognition, machine translation, social network filtering, playing board and video games, and medical diagnosis.
As structured and unstructured data sizes increased to big data levels, people developed deep learning systems, which are essentially neural networks with many layers. Deep learning enables the capture and mining of more and bigger data, including unstructured data.
Deep learning (DL)
DL is one of many approaches to machine learning. Combines advances in computing power and special types of neural networks to learn complicated patterns in large amounts of data. It is a type of machine learning that trains a computer to perform human-like tasks, such as recognizing speech, identifying images or making predictions. Instead of organizing data to run through predefined equations, deep learning sets up basic parameters about the data and trains the computer to learn on its own by recognizing patterns using many layers of processing [6].
Image retrieved from: https://foroingenieros.com/f/foroingenieros/plataforma-inteligencia-artificial-ml-dl-data
In addition we can say that DL try to create its own full model and algorithm to perform a task almost without human aid in contrast with ML which need human skills to do the same. An example DL is the following [7]:
- “As of 2016, AlphaGo's algorithm uses a combination of machine learning and tree search techniques, combined with extensive training, both from human and computer play. It uses Monte Carlo tree search, guided by a "value network" and a "policy network," both implemented using deep neural network technology”
Data Science (DS)
Also called Data Analysis or Data Mining, investigate the structure of data and use it to identify patterns and possible solutions to problems. Within this domain, data science draws on methodologies from statistics, mathematics, and computer science to both analyze events using data and predict possible outcomes. One important trend within data science is machine learning, which uses algorithmic data inputs and statistical analysis to train computers to output values within a certain range. In this way, machine learning enables practices such as automated decision-making. [8]
Now let’s go deeper inside ML to understand a little bit more how this works.
ML in deep
Learning methods
We need to say first with general methods are used by ML to accomplish its goals. There are four learning methods that can be used separately or in conjunction for a specific task:
- Supervised learning: a human been is the main responsible for the learning, giving a lot of data for the machine process and giving the wright answer in every case. In this way the algorithm is continuously changing trying to achieve an expected performance.
- Unsupervised learning: no human been interfere with the learning process so the algorithm receive the data and must achieve the right answer without knowing it in advance.
- Semi-supervised learning: is a combination of the previous two methods in certain proportion.
- Reinforcement learning: the goal is to keep learning until the best possible policy/performance is achieved.
Approaches
Now let’s see some ML approaches. We can say than there are mainly two:
- Statistics approach: we talk about mathematical classification, correlation and regression of data to obtain a good prediction when new data arrive.
- Non-statistics (neuronal networks): we try to train a NN to be prepared and respond correctly when new data arrive.
Algorithms
Just in case you’re curious in this moment, I’m going to list some of the most common algorithms for ML (see some illustrative images at the end of the list):
- Linear Regression: based on an approximately model of type: y = mx + b, it means output is proportional to the input plus a bias (b).
- Logistic Regression: approximately model using more complex equations.
- Decision Tree Learning: map observations about data to conclusions about the data’s target value, to create a model that will predict the value of a target based on input variables.
- Random Forests: a lot of decisions tree to achieve a best result.
- Deep learning neural networks: supervised DL to classify data, or unsupervised DL and perform pattern analysis.
And just others:
- Support Vector Machines
- K-Nearest Neighbors
- K-Means Clustering
- Principal Components Analysis
Linear regression
Logistic regression
Support Vector Machines
K-Means Clustering
So the question in this moment is, the algorithms are there, so why to worry about ML? One of the clues of ML is to define which machine learning algorithm should I use for a specific applications because each one has its own particularities (pros and cons). To have an idea of this, following are a cheat sheet to figure it out.
Image retrieved from: https://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/
Programing languages
If you’re still reading this article, I want to give you a first approach to programing languages widely used to for ML:
- Python, used widely in academics and research. Frameworks:
TensorFlow
PyTorch
Keras
scikit-learn ML library (built on top NumPy, SciPy, Matplotlib)
- Java, used widely at enterprise level for network security reasons. . Libraries:
Deeplearning4j
MALLET
Weka
- R, used for statistical computing widely in acadamia and has risen in industrial applications. Packages:
Packages caret
RandomForest
E1071.
- C++, for ML and IA in games and robot applications. Libraries:
Mlpack
Dlib
Shark.
Do you have a free spirit? Look for Julia, Rush, Haskell and Ruby.
And what about math? All the background of this is math, just take a look:
Human Biases
Finally, I want to say that is very important to let you know, that all this new technology is (at least for now) created by humans, so is very likely that algorithms has our human biases with or without know it. That’s why we most to be carefully with data, algorithms, programs to minimize human-like biases. One recommendations is the convinced that have diverse people working, testing, reviewing projects like this is a need [10].
Corollary
A trend to think about it and reflect about where we are and where we want to be in respect to new technologies.
Images retrieved from https://trends.google.com/trends/explore?date=2005-01-01%202019-12-31&q=machine%20learning
References
[1] https://medium.com/@srnghn/introduction-to-deep-learning-what-do-i-need-to-know-75794ebc4a62
[2] https://www.sas.com/en_us/insights/analytics/what-is-artificial-intelligence.html
[3] https://www.digitalocean.com/community/tutorials/an-introduction-to-machine-learning
[5] https://www.sas.com/en_us/insights/analytics/machine-learning.html
[6] https://www.sas.com/en_us/insights/analytics/deep-learning.html
[7] https://en.wikipedia.org/wiki/AlphaGo
[8] https://www.digitalocean.com/community/tags/data-analysis/tutorials
[10] https://www.fidelitylabs.com/2017/06/14/combating-machine-learning-bias/
Software
TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research.
Simple and efficient tools for predictive data analysis Accessible to everybody, and reusable in various contexts Built on NumPy, SciPy, and matplotlib Open source, commercially usable - BSD license
Tutorials
https://www.tensorflow.org/tutorials/keras/classification
https://www.digitalocean.com/community/tutorials/how-to-plot-data-in-python-3-using-matplotlib
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-tensorflow-on-ubuntu-18-04
Compiled by: Leonardo Calderon J. 01/24/2020