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

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

Методы второго и более порядков плохо работают в задачах обучения нейросетей. Потомучто.

Тащемта методы работают плохо потому что в нейросетях, как правило, очень много весов и гессиан тупо не лезет в память, не говоря уже о том чтобы его обращать. Люди трахаются с градиентным спуском (обычным и случайным) не от того, что им нравится усложнять себе жизнь и они любят мазохизм, а от того, что другие методы железо не тянет.
Это, конечно, совершенно неожиданный и новый для меня аргумент. Можно ещё до кучи добавить, что гессиан долго вычислять. Это безусловно справедливо, если конечно не утруждать себя рассмотрением конкретных деталей в конкретных случаях: не учитывать определяемую архитектурой разреженность матриц, особенностей методов решения линейных систем, где возможно оперировать частями матрицы и т.д. и т.п. Нехватка памяти тоже вопрос ныне решаемый, если затраты окупаются качественным улучшением результата.
И под «плохо работают» я имел ввиду не технические проблемы, а сетования на качество результата работы этих методов.
Это безусловно справедливо, если конечно не утруждать себя рассмотрением конкретных деталей в конкретных случаях

Вот конкретный случай: VGG-19. 1, 2. Прошу, можете рассмотреть детали.
Деталей реализации метода применительно к архитектуре, а не самой архитектуры. На всякий случай напоминаю, что в статье обсуждаются методы оптимизации. Если уж ссылаетесь на публикации, то они должны быть посвящены анализу продуктивности методов обучения, пусть даже применительно к конкретной архитектуре, а не описанию архитектуры и результатов ее тестирования. Если хотели напугать меня количеством свободных параметров — не трудитесь
Да, конечно, прошу вас, рассмотрите детали реализации метода на примере предложенной НС.
Вы, конечно, понимаете, что это материал для серьезной научной работы. Но я постараюсь учесть Ваше пожелание.

Я свечку не держал, конечно, но с таким количеством параметров на картинку 224×224 зачем нужна нейросеть? Это уже можно огрубить цвета до 12 бит и протабулировать выходные значения.

Ой, что-то туплю. 224×224 в степень идёт же.

Можете — если задачу получается решить. Детектор Виолы-Джонса нейросетью не является, тем не менее он вполне работает даже на картинках побольше.
Это, конечно, совершенно неожиданный и новый для меня аргумент.

Надеюсь, это сарказм, потому что скорость и память — это как раз самые первые аргументы против методов оптимизации высших порядков.

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

Не очень люблю апеллировать к этому, но в данном случае всё же скажу: не думаете же вы, что никто этого не пробовал?

Например, вот статья с ревью этого вопроса. Какие выводы делают авторы статьи?
1. Да, методы второго порядка показывают классные результаты по сравнению с SGD без моментума. К этому выводу у меня две претензии: во-первых, кто ж сейчас учит без моментума? Во-вторых, авторы статьи заменяют ReLU на tanh, потому что с ReLU методы оптимизации второго порядка не дружат.
2. Со скоростью всё очень плохо. На одном и том же железе в альтернативных экспериментах авторы получают такой результат:

При такой разнице по времени тренировка тяжелой сетки на ImageNet, которая сейчас на хорошем сервере занимает пару дней, с методами второго порядка дойдет до аналогичной точности за месяц. В этом просто нет смысла — с SGD за это время инженер может провести не один эксперимент, а, скажем, пять, потюнив гиперпараметры и архитектуру, а потом вывести модель в продакшен и успеть начать следующую задачу.
Надеюсь, это сарказм, потому что скорость и память — это как раз самые первые аргументы против методов оптимизации высших порядков.

Разумеется это сарказм. Еще раз, я не оспариваю повышенные требования к памяти и ресурсам при использовании методов высших порядков, это было бы глупо. Другой вопрос, что идиотизм применять эти методы для систем такого размера простой реализацией ее базовой формулы.
Не очень люблю апеллировать к этому, но в данном случае всё же скажу: не думаете же вы, что никто этого не пробовал?

Да ничего, вполне уместное замечание. Нет, я так не думаю. Я думаю, что есть разница между тем, что кто-то как-то пробовал и у него не получилось и утверждением, что что-то невозможно (нецелесообразно, неразумно) в принципе.

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

Первое замечание о методологии. Авторы применяют либо градиентный спуск, либо методы более высокого порядка на протяжении всего процесса обучения. В посте я уже упоминал, что, вообще говоря, на начальном этапе минимизации функций большого количества переменных применение методов высоких порядков обычно нецелесообразно, их лучше применять на завершающих этапах, либо при обнаружении застревания градиентных методов, вероятность которого никакой релаксацией исключено быть не может.
Второе. Авторы применяют методы оптимизации из коробки, не пытаясь учесть особенности архитектуры. Естественно, я не могу сказать сходу, есть ли для конкретной сети какие-то свойства, которые облегчат применение для нее указанных методов. Но делать общие выводы, опуская этот момент, на мой взгляд попросту некорректно. Нейросети — отнюдь не единственная в природе вещь, приводящая к задачам гигантской размерности, но почему-то в других подобных областях считают за правило приспосабливать численный метод к решаемой проблеме, а тут этим обычно не утруждаются.
Третье. Думал, стоит ли касаться этого в статье. Не коснулся. Видимо, зря. Один из используемых при сравнении метод — так называемый Hessian-free, который последнее время стали часто упоминать в публикациях по нейросетям, про него даже на Хабре писали. То есть, во-первых, уважаемые авторы не используют методы второго порядка в сравнении, поскольку этот метод есть просто применение метода сопряженных градиентов к решению определяющей направление линейной системы с аппроксимацией матрицы Гессе конечными разностями первого порядка. То есть это не что иное, как реализация (а вовсе никакой не новый неизученный метод) дискретного демпфированного метода Ньютона (или неточного метода Ньютона). Если ненароком вспомнить теорию, то выяснится, что дискретный метод Ньютона имеет без ограничения на величину приращения только линейный порядок сходимости, то есть сходится сильно хуже всамделешного метода Ньютона. А еще можно вспомнить, что положительная определенность матрицы, которая (см. пост) не гарантирована, является условием устойчивости метода сопряженных градиентов. То есть мало того, что есть вопросы к самому методу, так еще и «second-order methods» в названии, судя по всему, не вполне соответствует действительности. Это не криминал, поскольку в самом деле считать и хранить полную матрицу Гессе при таких размерностях выглядит малоперспективным. Но достаточно показательно.

Аргумент с памятью и вычислительными мощностями совершенно понятен, но на мой взгляд является слабым и выражает всего-навсего желание не вдаваться в детали, а взять готовое решение из коробки. Поэтому я его даже не оспариваю, нет такой задачи. Но делать на основании этого аргумента общие выводы о чем-либо не слишком умно. Конечно, на мой сугубо субъективный взгляд.
В нейросетях задача стоит даже не найти глобальный минимум (там сетка уже давно переобучилась) а найти решение которое будет работать на новых данных. Обычно результаты лучше когда сеть большая но достаточно регуляризованная, плюс обучение с маленьким батчом/большим LR чтобы внести достаточно шума и найти широкий минимум вместо узкого/глубокого. Оптимизаторы второго порядка тут либо плохо/не работают либо больше шанс получить результат хуже на тестовом датасете.

Но независимо от применимости к обучению сеток, спасибо за пост, интересно почитать.
Я в конце ровно про это и сказал — часто нет смысла сразу быстро идти к минимуму. То, что задача обучения не эквивалентна задаче оптимизации — совершенно справедливо, но не является темой статьи.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории