MindsDB Wiki:
Machine Learning Explained

Accuracy is a term used to describe how often a machine learning model correctly classifies a data point. Essentially, accuracy points out the rate at which machine learning makes a correct prediction. Accuracy is an important metric in machine learning because companies use machine learning to get predictions that they then use to make important business decisions. Due to the nature of the kinds of decisions these companies often make as a result of said predictions, it’s important that the predictions are ones that these businesses can be confident in. Thus, the more accurate a prediction is, the lower the risk involved for any party ready to use the prediction’s insights to make decisions.

 An algorithm is a mathematical formula for solving a problem. They solve problems using a sequence of specific actions. Computers use algorithms to provide detailed instructions on how a task should be performed. Humans use algorithms every single day. For example, writing a recipe or giving a friend direction’s to a particular restaurant are all algorithms. Although, algorithms used by computers are often more complex than those two examples, they are two sides of the same coin: someone or something needs instructions on what to do and the instructions are the algorithm. In computing, an algorithm gets trigger (i.e., knows it needs to start following its instructions) when it understands the first step in the sequence for actions it must follow.  Artificial intelligence (AI) is made of of a group of algorithms and thus, companies that want to use AI, should understand the kinds of algorithms they’ll need to build to make the most of AI. 

Artificial Intelligence (AI) is the ability for a computer to imitate human behavior by performing tasks that once required human make intelligence. AI allows machines to stimulate human intelligence by processing information, learning from that information, using reason to make decisions from the information its given, and self-correcting when it notices flaws in its reasoning or decision-making processes. Since computers have the ability to process information at rates that are impossible to humans, artificial intelligence’s ability to stimulate human intelligence means that computers can process massive amounts of data and complete tasks quicker and more efficiently than humans. AI allows companies to optimize processes and increase productivity by giving computers the ability to take over tasks that would be too-time consuming for humans to do.

An artificial neural network (ANN) provides the framework for machine learning. Designed to stimulate the structure of the human brain, ANNs help make computers reason like humans. The human brain uses data it receives to learn and make interpretations that computers traditionally weren’t able to. Artificial neural networks allow computers to learn and make decisions similar to the way humans are able to. However, being that these systems are built on computers, ANNs have the ability to process, interpret, and learn from data in scales and ways that humans simply cannot. An artificial neural network uses mathematical algorithms to process the information it receives and then learns from that data. ANNS excel at recognizing patterns that are often too complex for the human brain to decipher. Artificial neural networks are also self-learning and provide better results as it processes additional data. An ANN enables organizations to make better decisions by learning from all the data points it has available and continuing to challenge itself to produce even better results from additional inputs of data.

Automated Machine Learning (autoML) describes the methods and processes that automate a machine learning model’s iterative tasks. Building traditional machine learning models is a complex process that requires domain expertise, time, and significant resources. Automated machine learning helps make this process less complex by automating the more time-consuming parts of training and running machine learning models. Automated machine learning makes it so analysts, data scientists, and developers can build making learning models quicker, more efficiently, and at greater scale. When using autoML, all an individual needs to do is identify a problem it wants to use machine learning to solve, point the autoML solution to the data set it wants it to use to solve that problem, configure the autoML program to abide by certain parameters, and run the model. The automated machine learning system will test, train, and run the model and then provide you with solution to the problem you posed to it.

Autonomic Computer refers to a computer’s ability automatically manage itself. Autonomic computing systems don’t require any input from the user to control how computer applications and systems function. This kind of computing is mostly focused on distributed computing resources (computing systems that are distributed across different networks yet communicate by sending and receiving messages to and from one another ). Designed as a means of replicating how the human body’s nervous system self-heals, autonomic computing is able to configure, heal, and protect itself by responding to all kinds of inputs and conditions, even the most unpredictable ones. This ability to take care of itself makes autonomic computing critical in today’s age of application development and management. Organizations can trust that these computing systems are not only monitoring and accessing behavioral deviations in an application, but are also able to react accordingly to protect a system by sending alerts, going into recovery mode, or shutting down the system when it deems it necessary.

The term ‘big data’ describes large volumes of complex data sets—including structured, semi-structured, and unstructured ones. One way to characterize big data is by its volume, variety, and velocity, also known as the 3Vs of big data. Volume illustrates that the size of the data is incredibly large whereas variety relates to the types of data while velocity refers to the speed in which data is received and softened acted on. Big data’s volume, variety, and velocity make it so that traditional means of processing data doesn’t suffice with it. Understanding how to use big data effectively allows organizations to gain insights that enable them to make more informed decisions. Artificial intelligence and machine learning techniques provide organizations with massive amounts of data with the ability to do just that.

A chatbot is a computer program that uses artificial intelligence to stimulate human conversation. Chatbots are used via messaging interfaces. A chatbot works using either a set of guidelines or by using machine learning. Chatbots that use a set of guidelines is able to respond to only a specific set of questions. Once the person interacting with this chatbot get to the final question, the chatbot is no longer able to engage. A chatbot that uses machine learning, on the other hand, is able to intelligently continue to engage with the human on the side of the interaction until it concludes that all of this human’s inquiries have been answered. Chatbots that use machine learning are able to improve by learning from each conversation and taking that new insight into future conversations.

In artificial intelligence, classification occurs when a machine uses data that it already has to draw conclusions about how to categorize items using from that data. Before it can place an item into a category, the machine uses an algorithm to define what similarities exist between a group of items, does a comparison of those characteristics, and determines the instances those categories will continue to look similar.

Cluster analysis is when a set of objects are grouped based on their similarities. Clusters are created so that items that are similar to one another remain near one another. Cluster analysis occurs through unsupervised learning and is used in applications that require pattern analysis or any kind of segmentation.

Clustering occurs objects are grouped together based on similarity. These grouped objects are called clusters. Clustering is a technique that is often use in data mining and analysis. There are two primary kinds of clustering: hard clustering and soft clustering. Hard clustering states that an object can belong to only one cluster (if any) while soft clustering doesn’t dictate the number of clusters an object can belong to. Clustering is typically used for pattern recognition, image recognition, and data mining.

Cognitive computing aims to stimulate human cognitive processes through a computer. The goal of cognitive computing is to allow computers to use their complex processing powers to solve issues and conduct tasks much faster than a human can. Cognitive computing systems are able to take data from various sources, consider the information presented in that data, and provide answers that require a degree of “thought.” Cognitive computing systems are able to do this because they are equipped with self-learning technologies that empower them to do this. It is particularly useful when it comes to pattern recognition. Although cognitive computing is often used synonymously with the phrase artificial intelligence., there are differences between the two. The key difference is that AI tends to learn by being fed data over a period of time while cognitive computing is able to learn from data that it receives in real-time. Cognitive computer tends to also be used to help humans make better decisions while AI thrives in helping identify patterns and answer questions where data exists to provide those answers.

Computer vision is a field of study which aims to help computers “see” digital videos and images on its own. The idea behind computer vision is that, with the right tools and training, computers will be able to take over tasks that typically require humans’ visual capabilities to conduct. Computer vision requires that a computer first process what it sees and then analyze that information to make the right decision as to what to do with the information that it’s learned it’s seen. For example, a car that’s equipped with computer vision may be able to note not just that there’s an object on the road, but also the kind of object and then relay that information to the driver.

A convolutional neural network (CNN) is a type of neural network used primarily in the classification and processing of images. A CNN enables image recognition to occur. A CNN uses deep learning to take information inputted and understand 1.) that what it’s seeing is an image, 2.) break up parts of that image into objects which it then can assign importance to, and 3.) to differentiate between different images. Convolutional neural networks are used to identify all aspects of visual data (including faces, buildings, street signs, etc.). Although primarily used for the processing and classification of images, CNNs can also be use to identify and classify sound (as long as the sound is represented in a spectrogram).

Data mining is the process of digging through data to discover patterns, correlations, and anomalies in large data sets in an effort to make predictions from this mined data. Dating mining is able to make these predictions by taking into consideration historical data. Data mining is often used in search engine algorithms, recommendation systems, and fraud detection.

Data science is the field that encompasses everything from the concepts, processes, technologies and tools that enable organizations to analyze and extract meaningful information from data. Using statistics and mathematics, data science primarily aims to take raw data and make it easy to understand and use for purposes including forecasting, decision making, and product development.

A decision tree is a kind of supervised machine learning in which, based on particular predefined parameters, data is continuously split. These splits in the data are called nodes. Decision trees begin with a single node and split to many nodes—called leaves—representing different categories that this tree is able to classify. Decision trees are used to solve regression and classification problems. It’s easy to explain a decision tree’s decision as they do this themselves. Thus, they are primarily used to solve problems that benefit from automated decision making—for example, a developer would use a decision tree to create a ranking system because they would be able to see exactly why the decision tree’s made its ranking decisions.

Deep Learning is a subset of Machine Learning which tries to replicate the way a human brain works, automating much of the learning process. As humans, we ingest vast amounts of data without even knowing it. Ever wondered how we can tell an apple from an orange even though no two apples look exactly alike? Well, we have seen tens of thousands of apples and oranges in our lifetimes — some have been labelled for us (like in a supermarket), others have not. However, we can identify them because of their color, shape, and how others peel and eat them.

Deep Learning is similar, using a very large dataset (that may be labelled like the apples in the supermarket — supervised learning) or not (like all the other apples you have seen and had to determine for yourself what they are — unsupervised).

The term deep fake is a portmanteau of deep learning (link) and fake. It describes a technique that uses AI-technology to alter existing images, videos and audio of people. 

This creates realistic material that can make people appear to be doing things that they’re actually not doing. Deepfakes use a machine learning method called generative adversarial network.

Generative adversarial networks describe deep-learning algorithms that are able to synthesize highly realistic images, videos and audio. The most commonly known application of GANs are deepfakes, which has given them somewhat of a bad reputation. However, they can be used as a source of good as well. Due to their ability pattern match images they can have important benefits for medical diagnosis for example. 

Since researches in the medical often lack sufficient training data due to privacy concerns it is often difficult to train deep-learning algorithms. GANs can be used instead to synthesize images that are virtually equivalent to the real ones in the quantity needed.

The more sophisticated ML/AI models become the less interpretable they tend to be. One of the critical shortcomings of machine learning is that it is often unclear how the system attained its result. By adding explainability to all predictions MindsDB tries to tackle this flaw. Not only can you ask questions of your data, but you can receive answers that explain themselves. This gives you context that empowers you to trust its conclusions even more.

Explainable AI (XAI) is a term that was initially coined by DARPA (the Defence Advanced Research Project Agency) which was set up as a research initiative to solve this problem. 

What’s more is that AI in its current form is designed to learn on specific domains and to learn from concrete examples of data, narrowed only to the specific problem they are trained to solve, for it still takes the human capacity of abstract thinking to understand the full context of the problem.

Given the narrow scope of understanding that these AI/ML-based systems have, it is natural to argue that if these algorithms are used for making critical decisions concerning someone’s life or society in general, then (it is obvious to me and I hope it is to you too) that we should not get rid of them, but we should not delegate these systems with the full responsibility of making such critical decisions.

To further elaborate on this, I’d suggest you read Michael Jordan (not the basketball player but a well-known engineer from Berkeley) who has put a length of his thoughts in his article called “Artificial Intelligence — The Revolution Hasn’t Happened Yet”. He and I agree on something; We should ask ourselves what are the important developments that ML/AI needs today, to safely augment the human capacity to solve very complicated problems. In my opinion, XAI is certainly one of those important developments.

Describes a quick solution or rule of thumb which is deemed “good enough” for solving a (machine learning) problem in an acceptable time. This solution may however not be the most accurate or best possible solution.

Machine Learning is the building of Artificial Intelligence algorithms that learns from a series of inputs and outputs generating a final algorithm that can predict the answer when provided the data input (e.g., predict whether an image is of an apple or an orange.)

Are Machine Learning and Artificial Intelligence the same thing? Well, no — Artificial Intelligence is the broad concept of machines being able to do human tasks, and Machine Learning is one application of that broad concept into applications such as recognizing objects.

A Machine Learning model is a set of assumptions with a number of parameters that need to be learned from the data. It is used to provide a framework for what your machine learning algorithm should learn. The model changes as more learning is acquired.

Natural Language Processing (NLP) attempts to capture natural language and process it computer-based using rules and algorithms. NLP uses different methods and results from the linguistics and combines them with modern computer science and artificial intelligence. The goal is to create the widest possible communication between humans and computers by voice. This should allow both machines and applications to be controlled and operated by voice.

A neural network or artificial neural network describes a computational learning system that is essentially modelled after the human brain’s ability to learn. It mimics the way that neurons in the brain can recognize relationships in a set of data and thus find patterns. 

The big advantage of neural networks is that they can adapt according to the changing input, meaning that they don’t need to be programmed with specific rules on what output is expected. The algorithm is instead trained on a set of examples and answers by which it can itself determine the correct output given it has enough data.  Neural networks are being applied to many real-life problems today, including speech and image recognition, spam email filtering, finance, and medical diagnosis, to name a few.

Developing software is a tedious, time-consuming process. In order to simplify the process and reduce the amount of resources needed, companies have started to make the source code of programs available to the public. This gives every programmer the ability to modify and improve the source code and share it with the community. Open source frameworks are used to develop websites, user interfaces or basic software applications.

A prediction is defined as the output of a machine learning model that has been trained on data. This output can then be used to forecast the possibility of another outcome.

Recurrent neural networks (RNNs) are a form of a neural network that recognizes patterns in sequential information to predict the next likely scenario. They are commonly applied to in text recognition, speech recognition, videos, music etc.

Regression is a common type of machine learning model based on supervised learning. 

It is mostly used for finding out the relationship between variables and forecasting. The desired outcome of a regression problem is a quantitative answer such as predicting the prices of a commodity or the number of minutes that someone will spend watching tv.

Reinforcement learning is a technique used in machine learning used to train a model. The focus is on the sequence of actions required to achieve a goal. A reward and punishment are defined for possible actions. Then the program learns the correct sequence of actions to achieve the goal or reward. After more trial runs it can learn to do it as quickly as possible.

Supervised learning is one of the techniques used in machine learning. A model is trained with a set of known input and output data. A person who acts as supervisor tells the model whether the output is correct or not. The aim is to provide a rule that takes the input data and provides a 

particular output then we apply supervised learning and set our criterion for what returned value is correct.

Unsupervised learning is one of the techniques used in machine learning. In unsupervised learning, the aim is to try to detect patterns and regularities in the input data only, without a supervisor (see supervised learning) to tell the data whether the are values are correct. As an example, a company may want to group customers who are similar, based on the data they keep on them such as demographic, financial and/or past purchases, etc. Then we have a natural customer segmentation and we can learn about the similarities of groups of customers without looking for something in particular.