When working with machine learning systems, it is necessary to consider the human factor and capitalize on the available data; it is essential to living with the errors that techniques inevitably introduce. The acquisition of software that uses machine learning techniques is undoubtedly the shortest way to introduce these technologies into one’s production process.
Much specific software allows you to perform tasks such as recognizing and tracking objects or processing natural language texts in search of information. Many cloud services such as Microsoft, Amazon, and Google offer tools that offer the possibility of introducing these technologies using high-level editors and tools such as Sage maker, Azure ML or Vertex AI.
If the use of software, or a cloud service, allows you to quickly introduce AI techniques into the production cycle, the use of systems that promise to obtain AI solutions without programming quickly collides with the need to understand essential aspects of the functioning of the machine learning techniques.
And if you have programmers, you can consider the idea of introducing machine learning directly into your systems by turning to ready-made libraries that promise ease of use and guaranteed results. Also, when you approach it, you quickly realize that using these tools requires some essential notions and the ability to identify the data necessary to feed the automatic learning algorithms within your production process correctly.
Machine Learning, Techniques
Ultimately, automatic learning characterizes an ever-increasing number of techniques whose goal is to infer a mathematical function starting from many pairs (input, output) that constitute the data from which knowledge is extracted.
Machine learning systems build their operation on minimizing the error in generating an output starting from the input and verifying the distance from the expected outcome. By iterating this process and adapting the appropriate parameters of an algorithm, it is possible to obtain a model that, when put into production, seeks to associate the output with a separate input based on the examples seen during the learning phase.
Since the relationship between the input data and the respective outputs is not customarily known, there is a risk that the data used to train the model is incomplete and somehow misleads it in the predictions on data never seen before. It is as if you were trying to learn the trend of temperatures using only summer data and then be amazed that the system does not correctly predict the temperature during the winter.
To mitigate this risk, it is common practice to divide the data used to train an algorithm into two sets: the first and most significant to be used for training (training set), and the second to validate the behavior of the generated model in the face of cases. New (test set). Suppose the error in the prediction of the test set data is sufficiently small. In that case, we can conclude that the learning was successful and put the model into production, monitoring its execution and adjusting for subsequent iterations of the process, enriching the data used for training.
Therefore, the data are the lifeblood of this process, and their selection often determines the success of these techniques in the production process. It should be emphasized that each input can be made up of hundreds or even thousands of “features” or distinct variables that characterize an aspect of the problem. Therefore, the construction of the dataset necessary for learning is a very complex step that requires efforts that are not limited only to data collection but also to their cleaning and labeling to provide the learning algorithm with data that may be of some use.
The data must then be collected having in part in mind which algorithm you intend to use, and this requires that specific skills are formed within a company capable of understanding the options available and how to prepare the data and perhaps compare different algorithms to find the one that produces the best results given a particular dataset. For this reason, there are no specific shortcuts in adopting automatic learning techniques that use company data: the constitution of the dataset can only be done internally.
In this period, we hear almost only of deep learning, or the use of a particular form of neural networks capable of doing incredible things. But if you are holding a hammer, it is not true that everything else is a nail: there are numerous techniques studied in over 50 years of research that can be used and are available in machine learning libraries. Among these, we find clustering, support vector machines, decision trees, to name some of the best-known algorithms.
The first thing to do is to identify what you want to learn and what type of learning the task falls into:
- Regression: estimating values given a particular input
- Classification: classify a piece of information into two or more classes
- Group data: identify groups of data present in the dataset without having predefined classes
Regression and classification are often done in a process known as supervised: preparing the dataset with labels and identifying features is done manually. The algorithms that autonomously group the data allow to learn the structure of a dataset automatically and are often referred to as unsupervised algorithms, working directly on the data.
For each task, well-known algorithms are used (linear regression is a typical example for regression, decision trees for classification). The problem often arises which, given the same task, performs better. For this reason, automatic techniques for selecting the best algorithm are being studied (often referred to as automated machine learning ). For not too complex datasets are starting to be a valuable tool to speed up the process.
Among the most used techniques in the industrial field are object detection and anomaly detection. The detection of anomalies, in particular, finds numerous applications in search of unexpected behavior of equipment or any case of sensor readings. Suppose you want to have a graphic idea of simple regression. In that case, you can interact with one of the demos of the ConvNetJS library that graphically shows a one-dimensional regression in which you can add points to a graph and see how a convolutional neural network reacts.
The Computing Power
It is now known that GPUs play a central role in machine learning, but that doesn’t mean that you can’t make use of these techniques without a GPU. These accelerators are very effective in machine learning when using algorithms based on matrix computation, such as neural networks. Still, for datasets that are not too large, it is possible to learn models even without the aid of these accelerators.
In any case, it is essential to keep in mind that the learning phase is the one that requires most of the computing power. Once the model is obtained, its execution usually requires a much lower amount of computing resources. It is often possible to run the models on much smaller apparatuses than those used for learning.
It’s even possible to run models on small controllers like a Raspberry Pi. If the dataset is not huge, even the learning part can be performed on modest-sized processors. This is important in the industrial environment since it is impossible to perform the calculations in a data center but only on edge.
Machine Learning: AI In The Industrial Environment
Machine learning requires some effort and therefore an investment that cannot be short-term within an industrial process. It is necessary to develop skills within the staff on the subject and work on the constitution of the datasets that become an essential asset for the company that must be maintained and developed.
Source code plays a decidedly non-strategic role in this scenario by only loading a model and running it. It is the model that has the value. Consider, for example, the model that verifies an attempted fraud: from a code point of view, the giant Amazon will be similar to that of a small shop. Still, the quality will differ in the two cases since the dataset available to the giant of online sales will be much richer in examples and situations that learning will introduce into the model.
The model is a sort of condensed knowledge of the company. It has a value that depends on the energy necessary for its development (and on the current and the processing costs required to synthesize it) but which is small in size; it is, therefore, essential to protect it as it represents a part of the company knowledge from which it is possible to gain ground in a particularly competitive sector.
Machine learning is finding countless applications in industry, but it is necessary to consider the human factor and capitalize on the available data. The models obtained are often made accessible through more traditional code microservices that use them as oracles that answer questions whose answer has not been coded by programmers but learned by the machine.
When working with these systems, it is essential to avoid the errors that techniques inevitably introduce and design robust systems, assuming that even the most accurate model can provide erroneous outputs.