Пример использования обучения логистической регрессии

За последние несколько лет было предпринято несколько усилий по созданию более мощных вычислительных платформ для решения проблем, связанных с новыми приложениями, такими как машинное обучение. Были разработаны процессоры общего назначения, специализированные модули машинного обучения, графические процессоры и ПЛИС со специализированными двигателями не за горами. Несколько стартапов разрабатывают новые ASIC, специализированные для приложений машинного обучения и сетей Deep Neural.

В этой статье мы проводим сравнение 3 различных платформ, доступных в облаке (ЦП общего назначения, графические процессоры и ПЛИС). Мы оцениваем производительность с точки зрения общего времени выполнения, точности и стоимости.

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

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

В этом случае мы будем использовать модифицированный набор данных NIST (Национальный институт стандартов и технологий) Digits, который представляет собой набор рукописных цифр, преобразованных в формат изображения в градациях серого 28x28 пикселей. В частности, мы оценим классификацию изображений как 10 цифр (0–9) на 1 и 2 миллионах образцов.

Целью этих записных книжек является сравнение и оценка производительности модели логистической регрессии с использованием трех реализаций: пакета Python Scikit-learn (наряду с библиотекой ядра Intel Math), библиотеки Rapids cuml и пакета, подобного InAccel Sklearn. Первая — это широко используемая библиотека Data Science, MKL от Intel — это фреймворк, ускоряющий математическую обработку процессора, а другие — более новые решения, построенные на основе ускорителей GPU и FPGA соответственно.

Мы сравнили обучение на 4 разных платформах:

  1. Ссылка: Intel Xeon Skylake SP (r5.2xlarge с оригинальной упаковкой)
  2. MKL: Intel Xeon Skylake SP (увеличение r5,2x с использованием MKL)
  3. GPU: NVIDIA® V100 Tensor Core (большая библиотека RAPIDS p3.2x)
  4. FPGA: FPGA (f1.2x с использованием пакета InAccel ML)

(Вы можете найти соответствующие блокноты здесь)

В случае процессоров общего назначения мы используем как исходный код (без оптимизированных библиотек), так и Intel MKL для оптимизации ядер машинного обучения. В случае графических процессоров мы используем инфраструктуру RAPIDS, а в случае FPGA мы используем наш собственный набор машинного обучения для логистической регрессии, доступный в InAccel.

На следующем рисунке показана производительность каждой платформы (общее время выполнения). Как вы можете видеть с точки зрения производительности, GPU достигает наилучшей производительности по сравнению с остальными платформами. Однако точность в этом случае составляет всего 73%, в то время как остальные платформы могут достигать точности до 88%. Таким образом, с точки зрения точности FPGA, использующие пакет InAccel ML, могут обеспечить оптимальную производительность и очень высокую точность.

Кроме того, стоимость также очень важна для предприятий и специалистов по данным. В этом случае мы сравниваем компромисс между производительностью и затратами, используя эти 4 платформы. Стоимость каждой платформы указана ниже:

  • r5.2xlarge: 0,504 долл. США/ч
  • p3.2xlarge: 3,06 долл. США/ч
  • f1.2xlarge: 1,65 долл. США/ч

На следующем рисунке мы показываем производительность (общее время выполнения) и общую стоимость обучения машинному обучению для этих 4 платформ.

Как видно на этом рисунке, ПЛИС в облаке (f1.2xlarge в данном случае с пакетом машинного обучения InAccel) обеспечиваетнаилучшее сочетание производительности, точности и стоимости. Оптимизированные библиотеки для процессоров общего назначения (GPP) (например, Intel MKL) обеспечивают наиболее экономичное решение, но производительность не так высока, как при использовании ускорителей. Графические процессоры могут обеспечить более высокую производительность, но стоимость намного выше, и в этом случае точность во многих приложениях неприемлема.

Также стоит отметить, что версия FPGA, использующая ядра InAccel ML для логистической регрессии, поддерживает также шаг перекрестной проверки и настройки гиперпараметров, метод, который является более эффективным, поскольку он будет обучать несколько моделей и выбирать лучшую на основе некоторой метрики. . В настоящее время перекрестная проверка для Rapids не поддерживается для логистической регрессии.

Отмечается, что для экземпляров FPGA мы использовали диспетчер FPGA InAccel, который позволяет легко развертывать и использовать FPGA без изменений кода.

Больше информации на: https://inaccel.com/