So-net
- 1 year ago
- 0
- 0
ML.NET — бесплатная открытая библиотека со средствами машинного обучения для языков программирования C# и F# . Она также поддерживает модели на Python при использовании совместно с NimbusML. Предварительный выпуск ML.NET включал в себя решения для конструирования признаков (например, создания N-грамм ), двоичной и мультиклассовой классификаций, регрессионного анализа . Позже были добавлены дополнительные задачи машинного обучения: выявление аномалий и рекомендательные системы . Глубокое обучение и прочие подходы ожидаются в предстоящих версиях.
ML.NET предоставляет разработчикам на платформе .NET возможности аналитики и прогнозирования при помощи модельного машинного обучения. Фреймворк создан на базе .NET Core и .NET Standard, поэтому запускается кроссплатформенно на системах Linux , Windows и macOS . Хотя фреймворк ML.NET появился относительно недавно, его начало было положено в 2002 году проектом Microsoft Research под названием TMSN (Text mining search and navigation), созданным для внутреннего использования в продуктах Microsoft. Позже в 2011 название этого проекта сменили на TLC (The learning code). «ML.NET был получен из библиотеки TLC и во многом превосходит своих предшественников» — сообщает , сотрудник Microsoft Research.
В версии 0.3 была представлена поддержка формата ONNX , а помимо этого — машины факторизации, LightGBM, ансамблевое обучение , LightLDA-преобразование, классификация OVA. Интеграция с TensorFlow возможна, начиная с версии 0.5. Поддержка 32- и 64-разрядных приложений была добавлена в версию 0.7, вдобавок имеющую улучшенную рекомендательную систему с матричной факторизацией. Полная информация о запланированных функциях доступна на странице официального GitHub - репозитория библиотеки.
Первый стабильный релиз фреймворка 1.0 был анонсирован на конференции Build в 2019 году. В нём были реализованы инструмент построения моделей (Model Builder) и автоматизированное машинное обучение (AutoML). В версии 1.3.1 предварительно показано обучение глубокой нейронной сети для TensorFlow, используя привязку данных в C#, и Database Loader, позволяющий обучать модель с помощью баз данных. Предварительная версия 1.4.0 позволила производить оценку моделей на ARM -процессорах и обучать глубокую нейронную сеть средствами графического процессора на Windows и Linux.
Разработчики могут сами тренировать модель машинного обучения или повторно использовать уже существующую и запускать её на любой среде без подключения к интернету. Это означает, что им не требуется опыт в области науки о данных , чтобы работать с фреймворком.
Статья Microsoft о машинном обучение на ML.NET продемонстрировала способность библиотеки анализировать тональность текста, используя большие наборы данных и достигая при этом высокой точности. Результаты показали 95 % точности на наборе данных из обзоров Amazon объёмом в 9 гигабайт.
ML.NET CLI — интерфейс командной строки , который использует ML.NET AutoML для выполнения обучения моделей и выбора наилучшего алгоритма для данных. ML.NET Model Builder Preview — расширение для Visual Studio , использующее ML.NET CLI и ML.NET AutoML для графического вывода лучшей ML.NET-модели.
Темы справедливости и объяснимости искусственного интеллекта в последние годы стали предметами разногласий. Основная проблема приложений машинного обучения — эффект чёрного ящика , при котором конечным пользователям и разработчикам не известно, как алгоритм пришёл к тому или иному решению и есть ли предвзятость в наборе данных. В сборку версии 0.8 был включён API для анализа объяснимости моделей, прежде использовавшийся внутри компании Micrososft. Добавлены обобщённые аддитивные модели и функция определения важности признаков.
Когда присутствуют несколько переменных, влияющих на итоговый результат, можно увидеть разбивку каждой из них, а также признаки, оказавшие наибольшее влияние в конечном счёте. Официальная документация показывает, что метрики оценки могут быть выведены в целях отладки. Во время обучения и отладки модели разработчики могут просматривать и изучать фильтруемые данные в реальном времени. Один из инструментов, располагающих описанными функциями, — Visual Studio DataView.
Компания Microsoft Research анонсировала, что популярный фреймворк машинного обучения Infer.NET, применяемый для исследований в академических учреждениях с 2008 года, был выпущен с открытым исходным кодом и теперь является частью ML.NET. Infer.NET применяет вероятностное программирование, чтобы описывать вероятностные модели, что даёт преимущество интерпретируемости. Позже пространство имён «Infer.NET» было изменено на «Microsoft.ML.Probabilistic».
Microsoft известно, что язык программирования Python популярен среди представителей Data Science, поэтому был создан экспериментальный модуль NimbusML. Он позволяет пользователям обучать и эксплуатировать модели машинного обучения в Python. Как и в случае с Infer.NET, исходный код модуля доступен всем.
ML.NET даёт пользователям возможность экспортировать обученные модели в формат ONNX. Это в свою очередь позволяет интегрировать их в различные среды, которые не поддерживают ML.NET. Стало возможным запускать такие модели на клиентской стороне браузера благодаря ONNX.js, клиентскому фреймворку на JavaScript для глубоких моделей обучения в формате ONNX.
Параллельно с выходом предварительной версии ML.NET Microsoft опубликовала бесплатные уроки и курсы на тему искусственного интеллекта, чтобы помочь разработчикам освоить техники, необходимые для взаимодействия с фреймворком.