Взгляд на основные тенденции в машинном обучении

Разбираемся, как за последние 5 лет изменились технологии и подходы к работе в машинном обучении на примере исследования Andrej Karpathy.

Руководитель отдела машинного обучения в Tesla, Andrej Karpathy, решил выяснить, как развиваются тенденции ML в последние годы. Для этого он воспользовался базой данных документов о машинном обучении за последние пять лет (около 28 тысяч) и проанализировал их. Своими выводами Андрей поделился на Medium.

Особенности архива документов

Рассмотрим для начала распределение общего числа загруженных документов по всем категориям (cs.AI, cs.LG, cs.CV, cs.CL, cs.NE, stat.ML) в течение времени. Мы получим следующее:

Видно, что в марте 2017 было загружено почти 2000 документов. Пики, которые появляются на графике, вероятно, обусловлены датами конференций, связанных с машинным обучением (NIPS/ICML, например).

Общее число бумаг послужит знаменателем. Мы можем посмотреть, какая часть документов содержит интересные нам ключевые слова.

Основы глубокого обучения

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

Для марта 2017 получается следующая картина:

% of papers 	 framework 	 has been around for (months)
------------------------------------------------------------
    9.1          tensorflow       16
    7.1               caffe       37
    4.6              theano       54
    3.3               torch       37
    2.5               keras       19
    1.7          matconvnet       26
    1.2             lasagne       23
    0.5             chainer       16
    0.3               mxnet       17
    0.3                cntk       13
    0.2             pytorch       1
    0.1      deeplearning4j       14

Таким образом, 10% всех документов, загруженных в этот период содержат упоминания TensorFlow. Конечно, не в каждой статье будет упоминаться используемое окружение, но если предположить, что в документах такие упоминания встречается с некоторой фиксированной вероятностью, получится, что около 40% членов сообщества машинного обучения использует TensorFlow.

А вот картина того, как некоторые из наиболее популярных фреймворков эволюционировали с течением времени:

Можно заметить, что рост популярности Theano замедлился. Caffe быстро взлетел в 2014 году, но уступил в последние годы по популярности TensorFlow. Torch и PyTorch медленно, но верно набирают популярность.

Модели ConvNet

В этой категории можно видеть всплеск интереса к ResNets (остаточным сетям) – упоминания о них встречаются в 9% всех документов:

Алгоритмы оптимизации

Среди алгоритмов оптимизации Adam занимает внушительную долю в 23%. Фактическую долю алгоритма трудно определить, но, вероятно, она выше 23 процентов: не во всех документах упоминаются используемые алгоритмы оптимизации. Автор исследования полагает, что не упомянутая активность алгоритма составляет приблизительно 5% дополнительно.

Исследователи

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

Несколько замечаний: фамилия Bengio упоминается в 35% всех документов, но есть два человека с этой фамилией (Samy и Yoshua). А вот Джефф Хинтон – один, и он упоминается в целых 30% работ.

Популярные и непопулярные ключевые слова в машинном обучении

Наконец, рассмотрим самые «горячие» и самые непопулярные слова, встречающиеся в исследованиях машинного обучения.

Топ популярных

Для определения популярности слова автор использовал отношение максимального количества использования этого слова в прошлом году к количеству его упоминаний до 2016 года. Таким образом, получается список наиболее горячих слов:

8.17394726486 resnet
6.76767676768 tensorflow
5.21818181818 gans
5.0098386462 residual networks
4.34787878788 adam
2.95181818182 batch normalization
2.61663993305 fcn
2.47812783318 vgg16
2.03636363636 style transfer
1.99958217686 gated
1.99057177616 deep reinforcement
1.98428686543 lstm
1.93700787402 nmt
1.90606060606 inception
1.8962962963 siamese
1.88976377953 character level
1.87533998187 region proposal
1.81670721817 distillation
1.81400378481 tree search
1.78578069795 torch
1.77685950413 policy gradient
1.77370153867 encoder decoder
1.74685427385 gru
1.72430399325 word2vec
1.71884293052 relu activation
1.71459655485 visual question
1.70471560525 image generation

Видно, что хотя до 2016 года упоминания ResNet составляли всего 1,044 процента от всех документов, в марте 2017 его доля составила 8,53 процента. Отсюда такая высокая позиция (8.53 / 1.044 ~ = 8.17). Топ показывает, что основные новинки пользуются популярностью у исследователей.

Топ непопулярных

Давайте взглянем на обратный топ. Что в прошлом году использовалось меньше всего:

0.0462375339982 fractal
0.112222705524 learning bayesian
0.123531424661 ibp
0.138351983723 texture analysis
0.152810895084 bayesian network
0.170535340862 differential evolution
0.227932960894 wavelet transform
0.24482875551 dirichlet process

Автор отмечает, что не совсем понятно в каком контексте используется «фрактал» – по всей видимости, имеется в виду байесовская оценка решения.

Больше материалов по machine learning:

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

matyushkin
07 апреля 2020

ТОП-15 книг по Python: от новичка до профессионала

Книги по Python (и связанным с ним специальным темам) на русском языке. Рас...
admin
14 июля 2017

Пишем свою нейросеть: пошаговое руководство

Отличный гайд про нейросеть от теории к практике. Вы узнаете из каких элеме...