+38/044/257-2444
+38/067/502-3306
+38/050/370-3627
Новости

Microsoft объявил о выпуске ML.NET 0.7 — кросс-платформенной и open source системы машинного обучения для разработчиков .NET

Microsoft объявил о выпуске ML.NET 0.7 — кросс-платформенной и open source системы машинного обучения для разработчиков .NET

Microsoft объявил о выпуске ML.NET 0.7 — последней версии кросс-платформенной и open source системы машинного обучения для разработчиков .NET (ML.NET 0.1 был выпущен на //Build 2018). Этот релиз направлен на расширение функциональности платформы.

Поддержка системы рекомендаций с Matrix Factorization

Рекомендательные системы позволяют создавать персонифицированные рекомендации для продуктов в каталоге, песен, фильмов и т.д. Мы улучшили поддержку создания систем рекомендаций в ML.NET, добавив Matrix factorization (MF). Это — популярный подход к рекомендациям, когда можно получить данные о том, как пользователи оценивают те или иные элементы в каталоге. Например, вы можете знать, как пользователи оценивают некоторые фильмы. Благодаря этим знаниям можно порекомендовать другие фильмы, которые они, вероятно, тоже захотят посмотреть.

Microsoft добавил MF в ML.NET, потому что он часто значительно быстрее, чем Field-Aware Factorization Machines (которые мы добавили в ML.NET 0.3), и он может поддерживать рейтинги, которые являются численными (например, 1-5 звезд) вместо бинарных значений («Понравилось» или «не понравилось»). Несмотря на то, что мы добавили MF, вы все равно можете использовать FFM, если хотите использовать другую информацию за пределами рейтинга, который пользователь присваивает элементу (например, жанр фильма, дата выпуска фильма, профиль пользователя). 

MF ML.NET использует LIBMF.

Сценарии обнаружения аномалий — обнаружение необычных событий

Обнаружение аномалий позволяет идентифицировать необычные значения или события. Он используется в таких сценариях, как обнаружение мошенничества (выявление подозрительных транзакций по кредитным картам) и мониторинг сервера (выявление необычной активности).

ML.NET 0.7 позволяет обнаруживать два типа аномального поведения:

  • Обнаружение спайков: Spikes приписываются внезапным временным всплескам в значениях входных данных. Это могут быть выбросы из-за сбоев в работе, кибер-атак, вирусного веб-контента и т.д.
  • Change point detection: change-поинтами отмечают начало постоянных отклонений в поведении данных.

Эти аномалии могут быть обнаружены на двух типах данных с использованием разных компонентов ML.NET:

  • IidSpikeDetector и IidChangePointDetector используются для данных, взятых из одного стационарного распределения (каждая точка данных не зависит от предыдущей).
  • SsaSpikeDetector и SsaChangePointDetector используются для данных, имеющих компоненты сезонности/тренда (возможно, упорядоченных по времени, например, продаж продукта).

Улучшенная настраиваемость ML.NET pipelines

ML.NET предлагает множество преобразований данных (например, обработку текста, изображений, категориальных функций и т.д.). Однако для некоторых случаев использования требуются специфичные преобразования. Теперь мы добавили поддержку пользовательских преобразований, чтобы вы могли легко включать кастомные решения.

CustomMappingEstimator позволяет вам создавать собственные методы обработки данных и вносить их в pipeline ML.NET. Вот что он будет выглядеть в pipeline:

var estimator = mlContext.Transforms.CustomMapping<MyInput, MyOutput>(MyLambda.MyAction, "MyLambda")
    .Append(...)
    .Append(...)


Ниже приведено определение того, что будет делать этот кастомный маппинг. В этом примере мы преобразуем текстовую метку («spam» или «ham») в логическую метку (true или false).

public class MyInput
{
    public string Label { get; set; }
}

public class MyOutput
{
    public bool Label { get; set; }
}

public class MyLambda
{
    [Export("MyLambda")]
    public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer<MyInput, MyOutput>(MyAction, "MyLambda");

    [Import]
    public MLContext ML { get; set; }

    public static void MyAction(MyInput input, MyOutput output)
    {
        output.Label= input.Label == "spam" ? true : false;
    }
}

Поддержка x86 в дополнение к x64

В этом выпуске ML.NET теперь вы можете использовать модели машинного обучения на устройствах с архитектурой x86/32-бит (только для Windows). Ранее ML.NET ограничивался устройствами x64 (Windows, Linux и Mac). Обратите внимание, что некоторые компоненты, основанные на внешних связях (например, TensorFlow), недоступны в x86-Windows.

NimbusML — экспериментальное связывание Python для ML.NET

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

ML.NET не только позволяет дата-сайнтистам использовать модели машинного обучения в Python (с компонентами, которые также могут использоваться в scikit-learn pipelines), но также позволяет сохранять модели, которые можно легко использовать в приложениях .NET через ML.NET (подробнее см. здесь).

Отзыв о новом API ML.NET

В ML.NET 0.6 появился новый набор API для ML.NET, который обеспечивает повышенную гибкость. Эти API в версии 0.7 и последующих версий все еще развиваются, и мы хотели бы получить ваши отзывы для того чтобы сделать систему еще лучше.

Хотите принять участие? Оставьте отзыв на ML.NET GitHub!

Другие новости