lead developer High School of Economics, Russia, Moscow
FEATURES OF THE DEVELOPMENT OF HIGH-TECH SERVICES AND APPLICATIONS BASED ON MACHINE LEARNING
ABSTRACT
The article discusses the features of the development of high-tech services and applications based on machine learning. It is noted that within the framework of machine learning, the development and application of algorithmic structures, as well as statistical models that can be used by computer systems in solving problems without explicit instructions, using templates, as well as logical conclusions, are studied. The order of data processing with manual software implementation is presented. The procedure for obtaining a forecast using machine learning is revealed. It is noted that the use of machine learning in the framework of the processes of creating program learning is possible in several areas: making strategic decisions, providing accurate and high-quality estimates, simplifying the stages of prototyping, conducting a quality check of the program code, testing procedure, error correction, implementation of smart programming assistants. It is concluded that the use of machine learning can speed up the life cycle of software development.
АННОТАЦИЯ
В статье рассматриваются особенности разработки высокотехнологичных сервисов и приложений на основе машинного обучения. Отмечено, что в рамках машинного обучения изучаются вопросы разработки и применения алгоритмических конструкций, а также статистических моделей, которые могут быть использованы компьютерными системами при решении задач без явных инструкций, используя для этого шаблоны, а также логические выводы. Представлен порядок обработки данных с ручной реализацией программного обеспечения. Выявлен порядок получения прогноза с использованием машинного обучения. Отмечено, что применение машинного обучения в рамках процессов создания программного обучения возможно по нескольким направлениям: принятие стратегических решений, предоставление точных и качественных оценок, упрощение этапов макетирования, проведение качественной проверки программного кода, процедура тестирования, исправление ошибок, реализация умных помощников по программированию. Сделан вывод о том, что применение машинного обучения позволяет ускорить жизненный цикл разработки программного обеспечения.
Keywords: artificial intelligence, machine learning, software development, algorithm, forecasting
Ключевые слова: искусственный интеллект, машинное обучение, разработка программного обеспечения, алгоритм, прогнозирование
Machine learning has long been perceived as one of the fundamental branches of artificial intelligence, and is actively used at the heart of most innovative technologies in this area.
Machine learning has rather imperceptibly entered the most diverse areas of human activity, and helps in solving both work and everyday issues. A striking example is the voice assistants that people use everywhere, such as Alexa, Siri or Alice.
The application of this progress is seen in many areas of business, including software development. In the Russian Federation this approach is new for most developers, which is why the use of machine learning in the implementation of high-tech services and applications is little covered in scientific papers.
Machine learning itself is a science that studies the development and application of algorithmic structures, as well as statistical models that can be used by computer systems to solve problems without explicit instructions, using templates, as well as logical conclusions. Machine learning algorithms were originally used to deal with the processing of large volumes of statistical data and the formation of data templates based on them. This allows the system to make the most correct prediction of results based on given sets of input data. For example, using machine learning, it is possible to teach medical software to perform the process of diagnosing incoming x-ray images, giving it the ability to process millions of existing images with a description of them. Machine learning has great potential for automating routine programming tasks, but cannot completely replace the work of programmers [6].
First, machine learning requires a huge amount of data to train models and identify patterns. Programmers are engaged in the development and preparation of data for training models, as well as the creation of algorithms and machine learning models.
Secondly, machine learning cannot completely replace the intuition and creativity of programmers. Machine learning can find patterns in data, but programmers can apply their experience and knowledge to solve non-trivial problems that require creativity.
Thirdly, machine learning cannot replace the human factor, which is necessary in areas such as the social sciences, where many factors must be taken into account that cannot always be quantified.
Thus, machine learning is a powerful tool that can automate many programming tasks, but cannot completely replace programmers in developing complex applications and systems.
Machine learning can be represented as a process in which a certain set of knowledge is transferred to a computer, as well as algorithms for analyzing this knowledge. As a result, it turns out that the computer receives the following features:
- self-learning new knowledge;
- identification of patterns within the accumulated knowledge;
- accumulation of experience for solving problems;
- making forecasts;
- collection of analytical and statistical information [9].
The use of machine learning in fact allows you to organize data processing without writing complex program codes. This is achieved through the implementation of the original model, which allows organizing the solution of problems by a computer with an approach similar to the solution of this problem by a person.
Machine learning uses technologies that are related to three basic development steps:
- collection and processing of data by the system;
- training of the system using the collected and processed data, as well as the formation of a trained model;
- assessment of the quality of functioning of the resulting model, followed by the deployment of a software shell that allows the use of this model [7].
Different models basically imply the use of different programming languages, and also support the use of ready-made frameworks and libraries. They allow you to start processing the collected information quickly, and, if necessary, filter out unnecessary data.
The operation of the model also requires the use of visualization tools that will allow you to evaluate and identify important features of the functioning of the model - such as anomalies, linear patterns, etc. This allows you to further simplify the verification and testing of the finished model.
Speaking about machine learning and comparing it with the process of writing a software product by a developer, it should be noted that when developing software learning, the developer rigidly specifies the behavior of the computer, while within the framework of machine learning technology, the computer is given some freedom of action for the purpose of its self-learning. based on the collected data. This suggests that machine learning cannot fully replace the process of implementing program code, and a data scientist, together with artificial intelligence, can replace the work of a programmer.
Despite the fact that a data scientist uses a specific programming language in machine learning, only writing code will be a small part of his job.
Machine learning cannot be a complete alternative to traditional development and writing of program code, however, this technology can act as an additional toolkit that simplifies development processes and implements additional functionality for implemented software. Today, machine learning technology in programming is a tool that is used in situations where the use of traditional development methods will not be sufficient to solve the tasks [3].
Any software solution requires the formation of an algorithm for its work, and writing code in the development language. Next, for the implemented software product, you must provide a set of input data that will be processed by the implemented software product.
Figure 1. The order of data processing with manual software implementation
This approach is justified in the case when a set of input parameters must be processed based on known conditions and laws. However, if processing is to be carried out to form certain forecasts, then it will be necessary to expand the composition of similar parameters and use more complex computational algorithms. For example, in the case of forming a forecast estimate of the exchange rate, not only the exchange rate for a certain period is taken into account, but also external and internal economic, social and political factors that can influence this exchange rate. It will be necessary to develop a software product that will be able to accept a set of disparate parameters, on the basis of which it will form a forecast of the exchange rate. In this situation, it is important to understand the fact that in order to obtain a high-quality forecast, it is necessary to collect and process just a huge number of parameters, due to the fact that the use of a limited number of them will negatively affect the generated result. Data scientists do not implement the program for data processing, but form arrays of statistical information, on the basis of which the model will be built [5].
Once the collected dataset is considered satisfactory, the data scientist will load it into a customized machine learning algorithm. The result will be a model that can predict new results, given not only the current data, but also its proposed new input parameters.
Figure 2. The procedure for obtaining a forecast using machine learning
As distinctive features of machine learning, it is worth noting the fact that it does not require the construction of a data processing model, since this process is performed directly by machine learning algorithms, and this process is corrected by specialists in the field of machine learning.
Another important difference between how a programmer writes code and how machine learning algorithms work is the number of inputs that the implemented model must process. To obtain the most accurate results, it will be necessary to process a huge number of parameters; no developer will be able to implement such an algorithm that can accurately process such a volume of input data. For machine learning algorithms, this kind of problem does not exist, but the existing computing power should still be taken into account. For example, you can limit the number of input data, or provide them to the model in parts to ensure its correct functioning within the available computing power [4].
At its core, machine learning contains three main components that have the same level of significance. These include:
- data collected in a variety of ways. The greater the amount of data collected, the more correct the effect, as well as the final result will be obtained in the end;
- signs that determine the composition of the parameters used in the implementation of machine learning;
- algorithms based on which there will be an impact on the accuracy, speed and size of the model resulting from the implementation of machine learning.
The development and existence of machine learning is based on the application of three basic principles:
- innovation is a principle that implies that machine learning allows you to open up new prospects for the development and growth of almost any industry;
- specificity means that the use of machine learning in the implementation and implementation of new products is possible only for IT specialists;
- simplicity means that products implemented on the basis of machine learning can be easily used by users with different levels of education [1].
Tasks solved on the basis of machine learning methods directly provide significant benefits for the scope of their implementation, as well as in situations of solving social issues. The main tasks include:
- regression is the receipt of a forecast formed on the basis of a sample of a certain set of objects with different characteristics. The result of data analysis is either a number or a numeric vector.
- classification allows you to identify categories of objects, taking into account the existing parameters, that extent related to machine vision, that’s why the term «pattern recognition» is often used;
- clustering performs the division of data into similar categories, taking into account some unifying feature.
- identification separates data with specified parameters from the rest of the data array;
- forecasting is a work with a large amount of data that is generated with reference to a certain time period in order to obtain a forecast regarding the behavior of the same data in the next time period;
- knowledge extraction is used to study the dependence in relation to a whole set of indicators belonging to the same phenomenon or event [6].
Based on the foregoing, it follows that the potential range of tasks for which machine learning technology can be used is quite wide. And depending on the approaches of the developers, this circle can be more and more. For this reason, considering the options for using machine learning in software development is a well-founded question [10].
The application of machine learning algorithms within software development provides a structured way to incorporate machine learning into development processes.
The traditional method of software development involves using an extended requirements specification and then manually coding the program features. The use of machine learning eliminates the need to specify a set of rules for making decisions and actions. In this case, the developer prepares the data that will be used as part of the learning algorithms. This data is provided to learning algorithms, after which the system highlights the composition of the necessary patterns in this data. Moreover, when using artificial intelligence, such patterns can be revealed that people do not even think about.
The use of machine learning as part of the creating programmatic training processes is possible in several ways:
- Making strategic decisions will significantly simplify decision-making procedures by analyzing the level of haste of previously completed projects, on the basis of which a proposal will be developed regarding the most optimal approaches to software implementation.
- Providing accurate and high-quality estimates due to the description of functions, user history. Based on the analysis, forecasts are made and the most accurate estimate of both the budget and the timing of the project is built.
- Simplification of layout steps will not only this reduce software development time, but it will also allow fewer technical experts to be involved in the development process.
- Carrying out a qualitative check of the program code for ensuring long-term maintenance of a software product and organizing developer collaboration. As business processes or technologies develop, the implementation of changes in the code of a software product will be an inevitable process, which makes machine learning a universal tool for organizing automatic code analysis procedures, as well as optimizing its performance [8].
- One of the critical stages in the development of a software product is the testing procedure. In fact, testing is a check of the conformity of the system's actions with the expected results. If after the next action the response received from the system matches the expectations, then the test is passed. If there is a discrepancy, an error in the operation of the program being implemented will be identified, which will need to be promptly eliminated. The tester's job is to run this traditional scenario through a checklist of tests in order to obtain the fact that there are no errors in the work of the implemented program. However, taking into account the growing level of competition in the software market, as well as the requirements from customers, traditional testing methods and tools do not satisfy this kind of requests, so new, more advanced tools are required. In this case, machine learning will allow you to more accurately carry out the testing procedure. Due to this approach, not only the probability of testing errors will be reduced, but also the time spent both on organizing and conducting the testing process.
- Bug fixes while working with large amounts of program code, there is a high probability of the influence of the human factor. To detect such errors, it is necessary to check large amounts of data, and machine learning algorithms can cope with such volumes not only quickly, but also qualitatively. This greatly simplifies the process of creating software.
- One of the options for optimizing the software development process using artificial intelligence is the implementation of smart programming assistants. Software developers have to devote a lot of time to debugging the program code [2].
The total number of software development support tools based on machine learning is actively growing, in particular, free versions, which initially began to be actively used abroad, but now Russian companies are also implementing them into their processes. A striking example is AI from Sberbank, which is actively used in software development.
Conclusion. As a result, the use of machine learning algorithms can help simplify software development processes by automating related and related processes. Most large companies speak out about the benefits of using machine learning when using it as part of the business processes of an organization's activities. Speaking of software development processes, machine learning can play a significant role here. Software developers are actively discussing the impact of machine learning not only on the processes of software development, but also on the organization of the software itself.
References:
- Burkov A. Burkov A. Inzheneriya mashinnogo obucheniya [Machine learning engineering; translation from English by A. A. Slinkin] / A. Burkov. M.: DMK Press, 2022. - 306 p. [in Russian].
- Gladilin P. E. Tekhnologii mashinnogo obucheniya: uchebno-metodicheskoe posobie [Machine learning technologies: teaching aid] / P. E. Gladilin, K. O. Bochenina. St. Petersburg: NRU ITMO, 2020. - 75 p. [in Russian].
- Eremeev A.P. O realizacii sredstv mashinnogo obucheniya v intellektual'nyh sistemah real'nogo vremeni [On the implementation of machine learning tools in real-time intelligent systems] / A.P. Eremeev, A.A. Kozhukhov, V.V. Golenkov, N.A. Gulyakina // Programmnye produkty i sistemy. - 2018. No. 2. – Pp. 46-52 [in Russian].
- Ilyushchenko V.V. Analiz metodiki sozdaniya i instrumental'nyh sredstv razrabotki sistem iskusstvennogo intellekta [Analysis of the methodology for creating and tools for the development of artificial intelligence systems] // Vestnik Irkutskogo gosudarstvennogo tekhnicheskogo universiteta. – 2018. No. 2. Pp. 25-31 [in Russian].
- Limanovskaya O. V. Limanovskaya O. V. Osnovy mashinnogo obucheniya: uchebnoe posobie [Fundamentals of machine learning: textbook] / O. V. Limanovskaya, T. I. Alferyeva. 2nd ed. M.: FLINTA, 2022. - 88 p. [in Russian].
- Platonov A. V. Mashinnoe obuchenie: uchebnoe posobie dlya vuzov [Machine learning: a textbook for universities] / A. V. Platonov. Moscow: Yurayt Publishing House, 2023. - 85 p. [in Russian].
- Sakhanevich D.Yu. Issledovanie podhodov i metodov primeneniya iskusstvennogo intellekta i mashinnogo obucheniya v social'no-ekonomicheskih processah [Research of approaches and methods of application of artificial intelligence and machine learning in socio-economic processes] // Vestnik OmGU. Series: Economy. 2020. №2. URL: https://cyberleninka.ru/article/n/issledovanie-podhodov-i-metodov-primeneniya-iskusstvennogo-intellekta-i-mashinnogo-obucheniya-v-sotsialno-ekonomicheskih-protsessah (date of access: 04/02/2023). [in Russian].
- Tishchenko S. A., Shakhmuradyan M. A. Metody mashinnogo obucheniya v malom biznese: soderzhanie i upravlenie [Methods of machine learning in small business: content and management] // Vestnik REA im. G. V. Plekhanova. - 2019. - No. 6 (108). - URL: https://cyberleninka.ru/article/n/methody-mashinnogo-obucheniya-v-malom-biznese-soderzhanie-i-upravlenie (date of access: 04/02/2023). [in Russian].
- Chmir Yu. E., Karelin D. V. Puti integracii avtomatizirovannogo processa i adaptaciya iskusstvennogo intellekta pri razrabotke proektnyh reshenij [Ways of integrating an automated process and adapting artificial intelligence in the development of design solutions] // Privolzhskij nauchnyj zhurnal. - 2021. No. 1. – Pp. 81-85. [in Russian].
- Chardin B. Krupnomasshtabnoe mashinnoe obuchenie vmeste s Python: uchebnoe posobie [Large-scale machine learning with Python: a tutorial] / B. Chardin, L. Massaron, A. Boschetti; translation from English by A. V. Logunov. M.: DMK Press, 2018. - 358 p. [in Russian].