//Лучшие инструменты машинного обучения: выбор экспертов

Лучшие инструменты машинного обучения: выбор экспертов

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

Оглавление

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

 

Вот почему мы взяли интервью у практиков в области науки о данных – на самом деле гуру относительно полезных инструментов, которые они выбирают для своих проектов. Специалисты, с которыми мы связались, имеют разные области знаний и работают в таких компаниях, как Facebook и Samsung. Некоторые из них представляют стартапы AI (Objection Co, NEAR.AI и Respeecher); некоторые преподают в университетах (Харьковский национальный университет радиоэлектроники). К дискуссии присоединилась и команда специалистов по обработке данных AltexSoft.

 

И если вы ищете определенный тип инструментов машинного обучения, просто перейдите к интересующей вас области:

Самые популярные языки машинного обучения

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

Python: популярный язык с высококачественными библиотеками машинного обучения и анализа данных

Python, язык общего назначения, отличающийся удобочитаемостью, хорошей структурой и относительно легкой кривой обучения, продолжает набирать популярность. Согласно ежегодному опросу разработчиков, проведенному Stack Overflow в январе, Python можно назвать самым быстрорастущим основным языком программирования. Он занимает седьмое место по популярности (38,8 процента) и сейчас на шаг впереди C # (34,4 процента).

 

Руководитель исследования в Respeecher Грант Рибер, специализирующийся на глубоком обучении, применяемом для распознавания речи, использует Python, поскольку « почти все в настоящее время используют его для глубокого обучения. Swift для TensorFlow звучит как крутой проект, но мы подождем, пока он станет более зрелым, прежде чем думать о его использовании », – заключает Грант.

 

Соучредитель стартапа NEAR.AI, ранее руководивший командой Google Research по глубокому обучению для NLU Илья Полосухин, также придерживается Python: «Python всегда был языком анализа данных, а со временем стал фактически язык для глубокого обучения со всеми современными библиотеками, созданными для него.»

Одним из вариантов использования машинного обучения Python является разработка моделей и, в частности, создание прототипов.

 

Руководитель направления Data Science в AltexSoft Александр Кондуфоров говорит, что использует его в первую очередь как язык для построения моделей машинного обучения.

Виталий Булыгин, ведущий инженер Samsung в Украине, считает Python одним из лучших языков для быстрого прототипирования. « В процессе прототипирования я нахожу оптимальное решение и переписываю его на языке, необходимом для проекта, например, C ++», – поясняет специалист.

 

Исследователь искусственного интеллекта Facebook Денис Ярат отмечает, что у этого языка есть потрясающий набор инструментов для глубокого обучения, такой как фреймворк PyTorch или библиотека NumPy (о которых мы поговорим позже в статье).

C ++: язык среднего уровня, используемый для параллельных вычислений на CUDA

C ++ – это гибкий, объектно-ориентированный, статически типизированный язык, основанный на языке программирования C. Язык остается популярным среди разработчиков благодаря своей надежности, производительности и большому количеству поддерживаемых им доменов приложений. C ++ имеет функции как языка высокого, так и низкого уровня, поэтому он считается языком программирования среднего уровня. Еще одно применение этого языка – разработка драйверов и программного обеспечения, которые могут напрямую взаимодействовать с оборудованием в условиях ограничений в реальном времени. А поскольку C ++ достаточно чист для объяснения основных понятий, он используется для исследований и обучения.

Специалисты по обработке данных используют этот язык для решения разнообразных, но специфических задач.

 

Андрей Бабий, старший преподаватель Харьковского национального университета радиоэлектроники (ХНУРЭ), использует C ++ для параллельной реализации алгоритмов на CUDA, вычислительной платформе графического процессора Nvidia, для ускорения приложений, основанных на этих алгоритмах.

 

« Мне нужен C ++, когда я пишу собственные ядра для CUDA», – добавляет Денис Ярат.

R: язык для статистических вычислений и графики

R, язык и среда для статистики, визуализации и анализа данных, является лучшим выбором для специалистов по данным. Это еще одна реализация языка программирования S.

 

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

 

Александр Кондуфоров отмечает, что машинное обучение с R позволяет быстро анализировать и визуализировать данные.

Инструменты анализа и визуализации данных

pandas: библиотека анализа данных Python, улучшающая аналитику и моделирование

Пришло время немного поговорить о Python pandas, бесплатной библиотеке с самым красивым названием. Преданный науке о данных Уэс МакКинни разработал эту библиотеку, чтобы сделать анализ данных и моделирование удобными в Python. До pandas этот язык программирования хорошо работал только для подготовки и изменения данных.

pandas упрощает анализ, конвертируя файлы данных CSV, JSON и TSV или базу данных SQL во фрейм данных, объект Python в виде Excel или таблицу SPSS со строками и столбцами. Более того, pandas сочетается с набором инструментов IPython и другими библиотеками для повышения производительности и поддержки совместной работы.

matplotlib: библиотека машинного обучения Python для качественной визуализации

matplotlib – это библиотека для построения 2D-графиков Python. Построение графиков – это визуализация данных машинного обучения. matplotlib происходит от MATLAB: его разработчик Джон Д. Хантер эмулировал команды построения графика из программного обеспечения MATLAB от Mathworks.

 

Хотя библиотека написана в основном на Python, она дополнена NumPy и другим кодом, поэтому она хорошо работает даже при использовании для больших массивов.

matplotlib позволяет создавать визуализации производственного качества с помощью нескольких строк кода. Разработчик библиотеки подчеркнул, насколько проста она в использовании: «Если вы хотите увидеть гистограмму своих данных, вам не нужно создавать экземпляры объектов, вызывать методы, устанавливать свойства и так далее; это должно просто работать ».

| Аналитика бизнеса
Демонстрация визуализации matplotlib. Источник изображения: Галерея стилей matplotlib

Функциональность библиотеки можно расширить с помощью сторонних пакетов визуализации, таких как seaborn, ggplot и HoloViews. Специалисты также могут добавлять дополнительные функции с помощью базовых карт и наборов инструментов для картографирования и проектирования карт.

Практики Data Science отмечают гибкость и возможности интеграции matplotlib. Андрей Бабий, например, предпочитает использовать matplotlib с seaborn и ggplot2.

 

Денис Ярат (Facebook AI Research) говорит, что он выбирает matplotlib в основном потому, что он хорошо интегрирован в набор инструментов Python и может использоваться с библиотекой NumPy или фреймворком машинного обучения PyTorch.

 

Александр Кондуфоров и его команда AltexSoft также используют matplotlib. Помимо многочисленных библиотек машинного обучения Python, таких как pandas, а также Plotly, который поддерживает как R, так и Python, команда выбирает библиотеки dplyr, ggplot2, tidyr и Shiny R. «Эти инструменты можно использовать бесплатно, но вы должны хотя бы немного знать программирование, чтобы ими пользоваться, а иногда на это требуется дополнительное время».

Блокнот Jupyter: возможности совместной работы

Ноутбук Jupyter это бесплатный веб – приложение для интерактивных вычислений. С его помощью пользователи могут создавать и обмениваться документами с живым кодом, разрабатывать и выполнять код, а также представлять и обсуждать результаты задач. Документом можно поделиться через Dropbox, электронную почту, GitHub и Jupyter Notebook Viewer, и он может содержать графику и повествовательный текст.

 

Ноутбук богат функциональными возможностями и предлагает различные сценарии использования.

Его можно интегрировать с многочисленными инструментами, такими как Apache Spark, pandas и TensorFlow. Он поддерживает более 40 языков, включая R, Scala, Python и Julia. Помимо этих возможностей, Jupyter Notebook поддерживает контейнерные платформы – Docker и Kubernetes.

 

Илья Полосухин из NEAR.AI делится, что использует Jupyter Notebook в основном для специального специального анализа: «Приложение позволяет быстро выполнять анализ любых данных или моделей с возможностью подключения к ядру на удаленном сервере. Вы также можете поделиться полученной записной книжкой с коллегами.

Tableau: мощные возможности исследования данных и интерактивная визуализация

Tableau – это инструмент визуализации данных, используемый в науке о данных и бизнес-аналитике. Ряд специфических особенностей делает это программное обеспечение эффективным для решения задач в различных отраслях и средах обработки данных.

 

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

| Аналитика бизнеса
Как работает перетаскиваемое меню Табло
Tableau поддерживает аналитику в реальном времени и облачную интеграцию (например, с AWS, Salesforce или SAP), позволяет комбинировать различные наборы данных и централизованное управление данными. Простота использования и набор функций – вот почему специалисты по данным выбирают этот инструмент. «Tableau имеет множество встроенных функций и не требует программирования. Вы можете выполнять большую часть предварительной обработки, анализа и визуализации данных в пользовательском интерфейсе, что экономит много усилий. Однако лицензию нужно покупать, потому что это не бесплатный продукт », – говорит Александр Кондуфоров.

Фреймворки для общего машинного обучения

NumPy: пакет расширения для научных вычислений с Python

Ранее упомянутый NumPy – это пакет расширения для выполнения численных вычислений с помощью Python, который заменил NumArray и Numeric. Он поддерживает многомерные массивы (таблицы) и матрицы. Данные ML представлены в виде массивов. А матрица – это двумерный массив чисел. NumPy содержит функции трансляции как инструменты для интеграции кода C / C ++ и Fortran. Его функциональные возможности также включают преобразование Фурье, линейную алгебру и возможности случайных чисел.

 

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

scikit-learn: простой в использовании фреймворк машинного обучения для многих отраслей

scikit-learn – это библиотека машинного обучения Python с открытым исходным кодом, построенная на основе SciPy (научный Python), NumPy и matplotlib.

 

Изначально запущенный в 2007 году Дэвидом Курнапо как проект Google Summer of Code, scikit-learn в настоящее время поддерживается волонтерами. На сегодняшний день в нем приняли участие 1092 человека.

 

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

scikit-learn предоставляет пользователям ряд хорошо зарекомендовавших себя алгоритмов контролируемого и неконтролируемого обучения. Практикующий по науке о данных Джейсон Браунли из Machine Learning Mastery отмечает, что библиотека фокусируется на моделировании данных, а не на их загрузке, манипулировании и суммировании. Он предлагает использовать NumPy и pandas для этих трех функций.

 

Денис Ярац использует NumPy, pandas и scikit-learn для общего машинного обучения: «Мне нравится их простота и прозрачность. Также помогает то, что эти инструменты получили широкое распространение и прошли испытания в течение многих лет многими людьми.

 

«Команда специалистов по обработке данных AltexSoft в основном использует библиотеки Python, такие как scikit-learn и xgboost, для задач классификации и регрессии», – отмечает Александр.

 

Андрий Бабий предпочитает использовать scikit учиться с библиотеками R языка и пакетов. « Я использую эту комбинацию, потому что она с открытым исходным кодом, имеет очень широкие функции и дополняет друг друга», – объясняет специалист по данным.

NLTK: платформа обработки данных на человеческом языке на основе Python

NLTK – это платформа для разработки программ Python для работы с человеческим языком.

 

Александр Кондуфоров предпочитает этот инструмент для задач НЛП. «NLTK – это в значительной степени стандартная библиотека Python для обработки текста, которая имеет множество полезных функций. Например, различные типы текста, обработка предложений и слов, часть тегов речи, анализ структуры предложения, распознавание именованных сущностей, классификация текста, анализ тональности и многие другие. Все эти библиотеки бесплатны и предоставляют достаточный функционал для решения большинства наших задач », – отмечает эксперт.

Фреймворки машинного обучения для моделирования нейронных сетей

TensorFlow: гибкая структура для масштабного машинного обучения

TensorFlow – это библиотека программного обеспечения с открытым исходным кодом для машинного обучения и глубоких исследований нейронных сетей, разработанная и выпущенная группой Google Brain в рамках ИИ-организации Google в 2015 году.

 

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

| Аналитика бизнеса
Визуализация потока данных между операциями в TensorFlow

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

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

 

TensorFlow богат инструментами разработки, особенно для Android. Ведущий инженер Samsung в Украине Виталий Булыгин предлагает: «Если вам нужно что-то реализовать на Android, используйте TensorFlow ».

 

Кертис Бойд, генеральный директор Objection Co, поставщика автоматизированной стратегии удаления плохих отзывов для бизнеса, говорит, что его команда выбрала машинное обучение с помощью TensorFlow, потому что он имеет открытый исходный код и очень прост в интеграции.

TensorBoard: хороший инструмент для визуализации обучения модели

TensorBoard – это набор инструментов для графического представления различных аспектов и этапов машинного обучения в TensorFlow.

 

TensorBoard считывает файлы событий TensorFlow, содержащие сводные данные (наблюдения за конкретными операциями модели), создаваемые во время работы TensorFlow.

 

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

| Аналитика бизнеса
Графическое представление модели в TensorBoard

С помощью визуализатора графиков пользователи могут исследовать различные уровни абстракции модели, увеличивая и уменьшая масштаб любой части схемы. Еще одно важное преимущество визуализации TensorBoard заключается в том, что узлы одного типа и одинаковой структуры окрашиваются в одинаковые цвета. Пользователи также могут смотреть на раскраску по устройствам (ЦП, ГП или их комбинация), выделять конкретный узел с помощью функции «трассировки входов» и визуализировать одну или несколько диаграмм за раз.

 

Такой подход к визуализации делает TensorBoard популярным инструментом для оценки производительности моделей, особенно для моделей сложных структур, таких как глубокие нейронные сети.

 

Грант Рибер отмечает, что TensorBoard упрощает мониторинг обучения модели. Грант и его команда также используют этот инструмент для пользовательских визуализаций.

Илья Полосухин также выбирает TensorBoard. « TensorBoard показывает метрики во время разработки модели и позволяет принять решение относительно модели. Например, очень удобно отслеживать, как модель работает, настраивая ее гиперпараметры и выбирая ту, которая работает лучше всего », – резюмирует Иллиа.

 

Помимо отображения показателей производительности, TensorBoard может показывать пользователям много другой информации, такой как гистограммы, аудио, текст и изображения, распределения, вложения и скаляры.

PyTorch: простой в использовании инструмент для исследования

PyTorch – это платформа машинного обучения с открытым исходным кодом для глубоких нейронных сетей, которая поддерживает и ускоряет графические процессоры. Разработанная командой Facebook вместе с инженерами из Twitter, SalesForce, NRIA, ENS, ParisTech, Nvidia, Digital Reasoning и INRIA, библиотека была впервые выпущена в октябре 2016 года. PyTorch построен на платформе Torch, но в отличие от предшественника, написанного на Lua, он поддерживает обычно используемый Python.

 

PyTorch был разработан с целью обеспечить максимально быстрое и гибкое моделирование. Стоит отметить, что рабочий процесс в PyTorch похож на рабочий процесс в NumPy, библиотеке научных вычислений на основе Python.

Динамический вычислительный граф – одна из особенностей, делающих эту библиотеку популярной. В большинстве фреймворков, таких как TensorFlow, Theano, CNTK и Caffe, модели строятся статическим образом. Специалист по обработке данных должен изменить всю структуру нейронной сети перестроить ее с нуля чтобы изменить ее поведение. PyTorch делает это проще и быстрее. Фреймворк позволяет произвольно изменять поведение сети без задержек и накладных расходов.

 

Возможность динамического построения моделей (во время выполнения) является одним из движущих факторов использования PyTorch, соглашается Денис Яратс из Facebook AI Research. « Я использую PyTorch – он просто лучший. В прошлом я пробовал множество фреймворков DL, включая TensorFlow, Torch, Keras и Theano. Ни один из них не является таким простым и мощным, как PyTorch. Работая над исследованиями в области глубокого обучения, я ценю возможность быстро изменять и отлаживать свои модели ».

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

Keras: легкая, простая в использовании библиотека для быстрого прототипирования

Keras – это библиотека глубокого обучения Python, которая может работать поверх Theano, TensorFlow или CNTK. Член команды Google Brain Франсуа Шоле разработал его, чтобы дать специалистам по обработке данных возможность быстро проводить эксперименты с машинным обучением.

 

Библиотека может работать на GPU и CPU и поддерживать как рекуррентные, так и сверточные сети, а также их комбинации.

 

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

 

По мнению специалистов по данным, скорость моделирования – одна из сильных сторон этой библиотеки. Виталий Булыгин из Samsung отмечает, что Keras с TensorFlow позволяет очень быстро реализовать нейронную сеть. Он предлагает придерживаться Keras, если его набора инструментов достаточно для конкретной задачи. Если нет, лучше провести исследование с помощью PyTorch.

Caffe2: библиотека глубокого обучения с поддержкой мобильного развертывания

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

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

 

В библиотеке есть собственные API-интерфейсы Python и C ++, которые работают поочередно, что позволяет разработчикам создавать прототипы на ходу и оптимизировать позже.

 

Развернутые модели могут быстро работать на мобильных устройствах благодаря интеграции с IDE Xcode, Visual Studio и Android Studio. Эта структура также позволяет быстро увеличивать или уменьшать масштаб без необходимости рефакторинга дизайна.

 

Быстрое создание прототипов, исследования и разработки – преимущества использования Caffe2. «Я использую его, потому что он имеет понятную инфраструктуру кода и его легко расширить для исследования новых методов», – резюмирует старший преподаватель ХНУРЭ Андрей Бабий.

Инструменты больших данных

Apache Spark: инструмент для распределенных вычислений

Использование Apache Spark для обработки больших данных похоже на вождение Ferrari: это быстрее, удобнее и позволяет исследовать больше за такое же время по сравнению с обычным автомобилем.

 

Apache Spark – это распределенная платформа кластерных вычислений с открытым исходным кодом, которая обычно оснащена механизмом обработки данных в памяти. Функциональные возможности этого движка включают ETL (извлечение, преобразование и загрузка), машинное обучение, аналитику данных, пак

етную обработку и потоковую обработку данных.

 

Возможность потоковой обработки Apache Spark является одной из причин, по которой исследователь из Facebook AI Денис Ярат использует ее: «Этот инструмент использует концепцию потока / обработки потока данных для распределенных вычислений и позволяет масштабировать решения на большие кластеры.

 

Хотя движок написан в основном на Scala, он поставляется с API высокого уровня для разработчиков для Java, Python, Clojure и R.

 

Разнообразие вариантов работы (локально, в кластерах, облаке или локально) и возможность доступа к данным из любых источников данных – другие полезные особенности Apache Spark.

MemSQL: база данных, предназначенная для приложений реального времени

MemSQL – это распределенная платформа баз данных SQL в памяти для аналитики в реальном времени. Он принимает и анализирует потоковые данные и выполняет запросы петабайтного масштаба, чтобы обеспечить работу приложений реального времени, таких как программы обмена мгновенными сообщениями, онлайн-игры или решения для коллективного хранения. MemSQL поддерживает запросы к реляционным данным SQL, Geospatial или JSON.

 

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

 

« MemSQL позволяет не заботиться о размере данных и работать как обычная база данных SQL», – подчеркивает Илья Полосухин из NEAR.AI.

Почитать еще

| Аналитика бизнеса
Инструменты интеграции данных

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

| Аналитика бизнеса
TIBCO Spotfire 11.0

Spotfire 11.0 представляет Spotfire Mods — легкий облачный фреймворк для создания новых интерактивных типов визуализаций, позволяющий создавать

Несколько видео о наших продуктах

| Аналитика бизнеса
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
| Аналитика бизнеса
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
| Аналитика бизнеса
Проиграть видео
Как аналитика данных помогает менеджерам компании
2021-03-16T15:37:02+02:00