Русская Википедия:ML.NET

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Программа ML.NET — бесплатная открытая библиотека со средствами машинного обучения для языков программирования C# и F#.[1][2][3] Она также поддерживает модели на Python при использовании совместно с NimbusML. Предварительный выпуск ML.NET включал в себя решения для конструирования признаков (например, создания N-грамм), двоичной и мультиклассовой классификаций, регрессионного анализа. Позже были добавлены дополнительные задачи машинного обучения: выявление аномалий и рекомендательные системы. Глубокое обучение и прочие подходы ожидаются в предстоящих версиях.[4][5]

История

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 и во многом превосходит своих предшественников» — сообщает Шаблон:Iw, сотрудник Microsoft Research.[6]

В версии 0.3 была представлена поддержка формата ONNX, а помимо этого — машины факторизации, LightGBM, ансамблевое обучение, LightLDA-преобразование, классификация OVA.[7] Интеграция с TensorFlow возможна, начиная с версии 0.5. Поддержка 32- и 64-разрядных приложений была добавлена в версию 0.7, вдобавок имеющую улучшенную рекомендательную систему с матричной факторизацией.[8] Полная информация о запланированных функциях доступна на странице официального GitHub-репозитория библиотеки.[9]

Первый стабильный релиз фреймворка 1.0 был анонсирован на конференции Build в 2019 году. В нём были реализованы инструмент построения моделей (Model Builder) и автоматизированное машинное обучение (AutoML).[10] В версии 1.3.1 предварительно показано обучение глубокой нейронной сети для TensorFlow, используя привязку данных в C#,[11] и Database Loader, позволяющий обучать модель с помощью баз данных. Предварительная версия 1.4.0 позволила производить оценку моделей на ARM-процессорах и обучать глубокую нейронную сеть средствами графического процессора на Windows и Linux.[12]

Характеристики

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

Производительность

Статья Microsoft о машинном обучение на ML.NET продемонстрировала способность библиотеки анализировать тональность текста, используя большие наборы данных и достигая при этом высокой точности. Результаты показали 95 % точности на наборе данных из обзоров Amazon объёмом в 9 гигабайт.[13]

Построитель моделей

ML.NET CLI — интерфейс командной строки, который использует ML.NET AutoML для выполнения обучения моделей и выбора наилучшего алгоритма для данных. ML.NET Model Builder Preview[14] — расширение для Visual Studio, использующее ML.NET CLI и ML.NET AutoML для графического вывода лучшей ML.NET-модели.[10]

Объяснимость моделей

Темы справедливости и объяснимости искусственного интеллекта в последние годы стали предметами разногласий.[15] Основная проблема приложений машинного обучения — эффект чёрного ящика, при котором конечным пользователям и разработчикам не известно, как алгоритм пришёл к тому или иному решению и есть ли предвзятость в наборе данных. В сборку версии 0.8 был включён API для анализа объяснимости моделей, прежде использовавшийся внутри компании Micrososft. Добавлены обобщённые аддитивные модели и функция определения важности признаков.

Когда присутствуют несколько переменных, влияющих на итоговый результат, можно увидеть разбивку каждой из них, а также признаки, оказавшие наибольшее влияние в конечном счёте. Официальная документация показывает, что метрики оценки могут быть выведены в целях отладки. Во время обучения и отладки модели разработчики могут просматривать и изучать фильтруемые данные в реальном времени. Один из инструментов, располагающих описанными функциями, — Visual Studio DataView.[16]

Infer.NET

Компания Microsoft Research анонсировала, что популярный фреймворк машинного обучения Infer.NET, применяемый для исследований в академических учреждениях с 2008 года, был выпущен с открытым исходным кодом и теперь является частью ML.NET.[17] Infer.NET применяет вероятностное программирование, чтобы описывать вероятностные модели, что даёт преимущество интерпретируемости. Позже пространство имён «Infer.NET» было изменено на «Microsoft.ML.Probabilistic».[18]

Поддержка Python

Microsoft известно, что язык программирования Python популярен среди представителей Data Science, поэтому был создан экспериментальный модуль NimbusML. Он позволяет пользователям обучать и эксплуатировать модели машинного обучения в Python. Как и в случае с Infer.NET, исходный код модуля доступен всем.[8]

Машинное обучение в браузере

ML.NET даёт пользователям возможность экспортировать обученные модели в формат ONNX. Это в свою очередь позволяет интегрировать их в различные среды, которые не поддерживают ML.NET. Стало возможным запускать такие модели на клиентской стороне браузера благодаря ONNX.js, клиентскому фреймворку на JavaScript для глубоких моделей обучения в формате ONNX.[19]

Школа изучения ИИ и машинного обучения

Параллельно с выходом предварительной версии ML.NET Microsoft опубликовала бесплатные уроки и курсы на тему искусственного интеллекта, чтобы помочь разработчикам освоить техники, необходимые для взаимодействия с фреймворком.[20][21][22]

Примечания

Шаблон:Примечания

Литература

Ссылки