Как стать автором
Обновить

Копнём поглубже: сравниваем популярные алгоритмы оптимизации с менее известными

Время на прочтение7 мин
Количество просмотров11K
Всего голосов 15: ↑15 и ↓0+15
Комментарии10

Комментарии 10

Было бы здорово если бы при тестировании на реальных задачах вы осветили:

а) Как эти алгоритмы ведут себя с LSTM (например в языковых моделях)

б) Как эти алгоритмы ведут себя с большими батчами (2K ... 65K) - есть ли профит от LAMB-подобных оптимизаторов

Такие типы задач в бенчмарках делают крайне редко, к сожалению.

Мы уже провели эксперименты для следующих статей, один на MNIST, другой для мультилейбловой классификации реальных изображений. Даже для MNIST они очень затратны по времени — нужно с каждым оптимайзером обучить модельку с разными размерами батча и с разными learning rate, то есть, если у нас есть 39 оптимайзеров, 5 размеров батча и 4 learning rate, то это уже 780 экспериментов. Помимо этого, мы еще пробовали разные расписания для learning rate. Когда выйдет следующая статья, мы выложим код, который прогоняет все эксперименты для неё. Если у вас будет время и желание, можете использовать его для экспериментов, на которые вам интересно посмотреть:)

на игрушечной задаче по распознаванию цифр из датасета MNIST

В чем заключается «игрушечность»?

  1. Судя по результатам классификации, на тестовой выборке 100% точности никто не достиг. В целом, оно и не сильно требуется — часть ошибочно распознанных образцов сам человек распознает с трудом.

  2. До сих пор учёные пишут статьи, где демонстрируют работу своих нейронных сетей в том числе и на MNIST.

Также в идеале было бы неплохо представить тестирующий код.

В целом, статья полезная.

Судя по результатам классификации, на тестовой выборке 100% точности никто не достиг.

С учётом того, что сами датасеты содержат ошибочно размеченные данные, достижение 100% точности выглядит бессмысленной задачей:
https://habr.com/ru/news/t/549608/

Да, важную деталь я упустил. MNIST содержит 13 ошибочно размеченных ТЕСТОВЫХ образцов. 99,87 — максимально возможная точность. И ровно этой точности достиг «Branching/Merging CNN + Homogeneous Vector Capsules» в 2020 году. Лучше быть не может, как я понял.

Задача классификации цифр на MNIST существенно проще чем задачи, которые встречаются в реальной практике. Этот датасет сам по себе простой и очень распространённый. Именно из-за этого исследователи используют его в качестве бенчмарка. Мы тоже решили сначала провести эксперименты на нем, а уже потом на реальной задаче. Для подобных задач существует термин toy task. В компьютерном зрении это классификация на MNIST или, к примеру, на Fashion MNIST. Для классического ML тоже есть игрушечные датасеты.
По поводу кода — для этой части статьи мы не стали его выкладывать, так как он не сильно отличается от кода, ссылку на который я привела в тексте. Отличие в том, что я добавила туда алгоритмы из torch.optim, поигралась с сеткой для learning rate, и вывела на графики дополнительную информацию. Эту часть можно рассматривать как вступление ко следующим, мы оформили ее в отдельную статью для того, чтобы не нагружать читателей сразу большим количеством информации. Мы выложим код для экспериментов из следующих частей.

А по сколько заходов делалось на каждый алгоритм. Если по одному, то велик шанс, что так повезло и судить рано. Надо как минимум 30 заходов из разных точек делать.

Спасибо за замечание! Для данных в таблице с расстояниями (по ней же строилась таблица с группами) усредняли по 10 заходов, но все они стартовали из одной точки. Учтём.

Я бы с удовольствием погонял бы ваш код. Хочется проверить MM-алгоритм. Он вроде гарантирует монотонное улучшение результата на каждом шаге.

https://en.wikipedia.org/wiki/MM_algorithm

Я отпишусь вам, когда мы выложим код. Скорее всего, это случится, когда мы выложим вторую часть этой статьи и код для нее.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий