Статья посвящена последним тенденциям в технологиях машинного обучения. Последнее обновление: июнь 2020 г.
Корпорации стремятся расширить свой опыт в области машинного обучения. Технологии в этом сегменте развиваются гораздо быстрее, что облегчает их внедрение. Похоже, что этот нишевый домен медленно, но неуклонно движется к зрелой экосистеме. Я хотел получить реальное представление о том, как сообщество разработчиков реагирует на этот развивающийся мир? Эта статья является попыткой ответить на этот вопрос.
Как я анализирую тенденции?
В этой статье я намереваюсь сравнить фреймворки ML больше с точки зрения тенденций, а не функций. Я собирал данные из нескольких источников, включая Github, Stackoverflow и Google. Данные отражают точку зрения сообщества разработчиков на то, как оно внедряет различные технологии и платформы.
В рамках анализа тенденций я отвечу на следующие вопросы
- Какие платформы машинного обучения наиболее популярны?
- Какие языки программирования наиболее популярны в машинном обучении?
- Какие фреймворки пользуются хорошей поддержкой сообщества в машинном обучении?
Я выбрал более 20 наиболее активных в настоящее время фреймворков в этой категории. Я приложил все усилия, чтобы выявить наиболее активных игроков. Если вы действительно считаете, что в списке отсутствуют какие-то обязательные фреймворки, сообщите мне об этом.
Технологические тенденции
Какие самые популярные фреймворки в ML?
Я использовал Планировщик ключевых слов Google, чтобы оценить, сколько поисковых запросов было выполнено для каждой из этих платформ. На приведенной ниже диаграмме показано, сколько раз руководство по конкретной платформе (или технологии) выполнялось в Соединенных Штатах в мае 2020 года.
Только 7 из 25 смогли достичь диапазона от 100 до 1000 и выше. Поскольку Google дает диапазон, а не абсолютное число, поэтому явный победитель не может быть определен на основе этого, но дает четкое представление о том, кто лидирует на рынке. TensorFlow, Keras и PyTorch лидируют в чартах, обеспечивая от 1000 до 10 000 поисковых запросов в месяц. Люди заинтересованы в изучении этих фреймворков гораздо больше (в 10 раз), чем их непосредственные последователи, включая Scikit-learn, WEKA и KNIME.
Итак, мы получили статистику о том, какие фреймворки людям интересно изучать, хм! Ноозначает ли это, что эти платформы также принимаются? Если люди внедряют технологию, они должны обсуждать ее на открытых форумах. Исходя из этого предположения, я попытался получить статистику из Stackoverflow. На следующей диаграмме показано, сколько вопросов было добавлено в период с май–июнь 2020 года по отношению к платформам.
Данные Stackoverflow подтверждают наши выводы, основанные на поиске Google. TensorFlow, Keras и PyTorch также возглавляют этот список. TensorFlow лидирует по популярности: за последний месяц было добавлено около 1600 вопросов. Далее следует Keras с примерно 1000 вопросов и PyTorch с примерно 600 вопросами.
Большой интерес сообщества разработчиков к TensorFlow, Keras и PyTorch делает их самыми популярными фреймворками машинного обучения в этом месяце.
Какие языки программирования наиболее популярны в машинном обучении?
Я изучил статистику на Github, чтобы получить более конкретную картину с точки зрения языков программирования. Быстрый поиск на Github (июнь 2020 г.) по термину «машинное обучение» дает 245 593 репозитория. Среди языков лидирует Python с более чем 57 000 репозиториев. MATLAB следует за Python с грубым подсчетом ~ 20 000, а R следует за ним с подсчетом ~16 000.
Принятие корпоративных фаворитов, таких как Java и C#, намного ниже, и я не думаю, что их распространение значительно расширится в ближайшем будущем.
Стоит упомянуть еще одну запись: Jupyter Notebook. Github рассматривает его как язык программирования, но скорее как IDE (интегрированная среда разработки). Как мы видим на диаграмме, многие проекты созданы на основе этого с наибольшим количеством репозиториев 77000. Большее количество Jupyter Notebook указывает на растущий спрос на инструменты разработки в этом мире.
Какие фреймворки пользуются хорошей поддержкой сообщества в машинном обучении?
Если для конкретной платформы разработано большее количество поддерживающих API, это указывает на сильную систему поддержки для нее. Это отражает принятие фреймворка разработчиками, которые пытаются расширить функции, настроить и создать новые предложения. Я получил количество репозиториев для конкретных фреймворков на Github, чтобы получить эту перспективу.
Как мы видим на диаграмме ниже, TensorFlow имеет самую большую экосистему на Github с количеством поддерживаемых проектов около 86000. PyTorch и Keras следуют за подсчетом с ~ 45 000 и ~ 37 000 соответственно.
С точки зрения stackoverflow система поддержки выглядит почти одинаково, за некоторыми исключениями. TensorFlow возглавляет диаграмму Stackoverflow с более чем 58 000 вопросов. Керас является непосредственным подписчиком с 28000+. Scikit-learn занимает третье место (а не PyTorch) с ~ 20 000 вопросов в этой области.
Дорожная карта
Внедрение машинного обучения на более широком рынке требует фреймворков более высокого уровня и передовых инструментов разработки. Ожидается, что в ближайшем будущем появится больше таких технологий.
Сюрприз этого месяца — PyTorch! По сравнению с прошлым месяцем количество поисковых запросов в Google значительно увеличилось.
TensorFlow возглавил чарты среди всех источников — Google, Github и Stackoverflow. Это делает его первым выбором для разработчиков. Keras – это второй фреймворк, на который обращают внимание как в Google, так и в Stackoverflow.
Сюрприз этого месяца — PyTorch! По сравнению с прошлым месяцем количество поисковых запросов в Google значительно увеличилось. В этой категории он присоединился к уровням популярности, аналогичным TensorFlow и Keras. В stackoverflow его инкрементальный рост превзошел Scikit-Learn. А на Github количество поддерживающих репо увеличилось более чем на 2400 в июне месяце, что почти эквивалентно ~2600 TensorFlow. Его принятие растет довольно быстро. Будет интересно посмотреть, как история разворачивается на его фронте.