Краткое введение в Dynamics NAV и машинное обучение

Давайте отставим популярность слов в сторону и рассмотрим, какие возможности есть сегодня у машинного обучения с точки зрения Dynamics NAV и Dynamics 365 Business Central.

Компания Microsoft ставит себе за цель вести игру во всех сферах, в которых это возможно. Направление аппаратного обеспечения могло бы быть более успешным в последние несколько лет, однако программное обеспечение всегда было сильным. Потому не удивительно, что Microsoft предлагает своим клиентам среду машинного обучения ещё с начала 2015 года. А после выхода Dynamics NAV 2017 появилась возможность интеграции среды машинного обучения Azure Machine Learning Studio через веб-сервис. Конечно же, существует много способов интеграции решения машинного обучения с использованием данных на SQL-сервере. В данной статье освещается встроенная интеграция Azure Machine Learning Studio.

Что такое «машинное обучение»

Давайте сначала посмотрим, что о машинном обучении говорит Wikipedia:

Машинное обучение (перевод с английского) – это область информатики, в которой часто используются статистические техники, чтобы наделить компьютеры способностью «обучаться» (то есть, прогрессивно улучшать свою производительность по конкретной задаче) с помощью данных без прямого программирования.

По сути, машинное обучение состоит из алгоритмов, использующих статистические модели и алгебру для расчёта возможности сравнения нового набора данных с уже существующими наборами данных. Следствием такого сравнения является прогнозируемый результат. К примеру, используя набор данных по ценам на дома на основе размера участка, можно спрогнозировать цену на новый появившийся на рынке дом. В следующей ниже таблице показан существующий набор данных.

Используя приведённые в таблице выше данные можно спрогнозировать цену на новый дом на основе таких критериев: площадь здания 90, кол-во комнат 4, размер участка 101, квартирный дом 0, сблокированный дом 1, угловой дом 0, отдельный дом 0 (вероятно, около 275000).

Используемый в приведённом выше примере подход называется «контролируемое обучение». При таком подходе результаты сравниваются с существующими правильными результатами. Таким образом можно проверять качество и точность решения в процессе его разработки. В мире машинного обучения также существуют решения с «неконтролируемым обучением». Однако, в Dynamics NAV данные хорошо структурированы и размечены, потому нет необходимости передавать классификацию данных в решение машинного обучения.

В общем, машинное обучение основывается на математических понятиях. Поэтому, в теории, можно использовать любой язык программирования, который поддерживает математическую библиотеку.

Чем машинное обучение … не является

Решение проблем с помощью машинного обучения то же, что и решение проблем с помощью Dynamics NAV (или 365BC). В первую очередь, необходимо дать определение проблеме, проанализировать и взвесить её. Как и в случае с любыми разработками в Dynamics NAV, необходимо измерить влияние на бизнес. Более того, важно оценить результат. И последнее, но не менее важное: в конечном счёте расходы должны быть оправданы. Эти базовые вопросы нужны потому, что само по себе машинное обучение не является готовым продуктом, решающим любую проблему сходу.

Понятие машинного обучения (как и в случае разработки Dynamics NAV) не имеет чётко очерченных рамок, и нет никакой гарантии, что результат будет правильный. Вовлечённые стороны должны обладать обширными знаниями о возможностях машинного обучения. Более того, на этапе разработки необходимо рассматривать индивидуальные характеристики бизнеса. Также необходимо, чтобы люди, которые будут работать с финальным решением машинного обучения, знали, как оценивать результаты.

Результатом машинного обучения является прогноз, а не точные данные. Поэтому результаты машинного обучения могут лишь дать направление. Окончательное решение должны принимать владельцы процесса. Машинное обучение способно выполнять только функцию поддержки.

Машинное обучение и Dynamics NAV/365BC

Как упоминалось ранее, существует возможность использования данных из Dynamics NAV/365BC через SQL-сервер. Структура таких данных весьма хороша. Для опытного эксперта не должно быть проблематичным создание решений машинного обучения с использованием любой программной платформы. Однако такой путь может оказаться сложным, особенно в случае, если вообще нет никаких знаний о машинном обучении.

Компании Microsoft известна эта проблема, и она создала среду Azure Machine Learning Studio. Azure ML – это визуальное веб-решение с поддержкой перетаскивания объектов для решения проблем с помощью машинного обучения. В Azure ML есть возможность выбирать и выполнять такие заранее установленные шаги, как преобразование данных, расчёт или скрипты. Это помогает понимать поток данных и анализировать проблемы. Связь между Dynamics NAV (а также 365BC) и Azure ML обеспечивает веб-служба, которая отсылает и получает данные.

С точки зрения долгосрочной перспективы возможна бесперебойная интеграция машинного обучения с Dynamics NAV. По сути, Microsoft сделала это в версии Dynamics NAV 2018. В «Список товаров» компания Microsoft интегрировала факт-бокс под названием «Прогноз» (“Forecast”). Данный факт-бокс способен показывать прогноз по Товарно-материальным запасам.

Заключение

Машинное обучение – это концепция для решения проблем с массовыми данными. Прогнозирование может обогатить процесс принятия решений каждого бизнеса. Однако, даже если имеется такая отличная визуальная интеграция, как Azure ML, всё равно необходимо знать, что такое машинное обучение. Если начать решать проблемы с помощью машинного обучения без правильных знаний – это может дать результат, который бизнесу навредит.

Перевод статьи из блога Hannes Holst