Я хотел бы жить в мире, системы которого построены на строгих, надежных, проверяемых знаниях, а не на алхимии. […] Простые эксперименты и простые теоремы - это строительные блоки, которые помогают понять сложные большие явления.

Этот призыв к лучшему пониманию глубокого обучения лежал в основе презентации Али Рахими Премии проверки временем на NIPS в декабре 2017 года. Сравнивая глубокое обучение с алхимией, Али не преследовал цели. закрыть все поле, но открыть беседу. Эта цель определенно достигнута, и люди все еще спорят, следует ли рассматривать нашу нынешнюю практику глубокого обучения как алхимию, инженерию или науку.

Семь месяцев спустя сообщество машинного обучения снова собралось, на этот раз в Стокгольме на Международной конференции по машинному обучению (ICML). С более чем 5000 участников и опубликованными 629 статьями это было одно из самых важных событий в области фундаментальных исследований в области машинного обучения. И теория глубокого обучения стала одной из главных тем конференции.

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

  • Невыпуклая оптимизация: как мы можем понять сильно невыпуклую функцию потерь, связанную с глубокими нейронными сетями? Почему стохастический градиентный спуск вообще сходится?
  • Чрезмерная параметризация и обобщение. В классической статистической теории обобщение зависит от количества параметров, но не в глубоком обучении. Почему? Можем ли мы найти еще один хороший способ обобщения?
  • Роль глубины. Как глубина помогает нейронной сети сходиться? Какая связь между глубиной и обобщением?
  • Генеративные модели: почему генеративные состязательные сети (GAN) так хорошо работают? Какие теоретические свойства мы могли бы использовать, чтобы стабилизировать их или избежать коллапса моды?

В этой серии статей мы попытаемся развить интуицию в этих четырех областях на основе самых последних работ, уделяя особое внимание ICML 2018.

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

Невыпуклая оптимизация

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

- провокационным тоном заявил Али Рахими в своем выступлении на NIPS. Стохастический градиентный спуск (SGD) действительно является краеугольным камнем глубокого обучения. Предполагается, что он должен найти решение крайне невыпуклой проблемы оптимизации, и понимание того, когда это работает или нет и почему, является одним из самых фундаментальных вопросов, на которые нам придется ответить в общей теории глубокого обучения. Более конкретно, исследование невыпуклой оптимизации для глубоких нейронных сетей можно разделить на два вопроса:

  • Как выглядит функция потерь?
  • Почему сходится SGD?

Как выглядит функция потерь?

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

И это нормально. В 2D-мире нередко встречаются проблемы, в которых около глобального минимума ваша функция будет строго выпуклой (что означает, что два собственных значения матрицы Гесса в этой точке будут строго положительный). Но в мире с миллиардами параметров, как в случае с глубоким обучением, каковы шансы, что ни одно из направлений вокруг глобального минимума не является плоским? Или, что то же самое, гессиан не содержит ни одного нулевого (или почти нулевого) собственного значения?

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

Тогда интуитивно кажется вероятным, что глобальный минимум будет не точкой, а связным многообразием. Это означает, что если вы достигли глобального минимума, вы сможете ходить по плоской дорожке, где все точки также являются минимумами. Это было экспериментально доказано на больших сетях командой Гейдельбергского университета в их статье По существу нет барьеров в энергетическом ландшафте нейронных сетей [1]. Они аргументируют даже более общее утверждение, а именно, что любые два глобальных минимума могут быть соединены плоским путем.

Уже было известно, что это касается CNN на MNIST или RNN на PTB [2], но эта работа распространила эти знания на гораздо более крупные сети (некоторые DenseNets и ResNets), обученные на более сложных наборах данных (CIFAR10 и CIFAR100). Чтобы найти этот путь, они использовали эвристику, пришедшую из молекулярной статистической механики, под названием AutoNEB. Идея состоит в том, чтобы создать начальный путь (например, линейный) между двумя вашими минимумами и разместить на этом пути точки поворота. Затем вы итеративно изменяете положения шарниров таким образом, чтобы минимизировать потерю каждого шарнира и убедиться, что расстояния между шарнирами остаются примерно одинаковыми (путем моделирования пространства между шарнирами с помощью пружин).

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

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

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

В более общем плане, думая о функции потерь нейронной сети, вы всегда должны иметь в виду, что количество возможных направлений в данной точке огромно. Другим следствием этого является тот факт, что седловых точек должно быть гораздо больше, чем локальных минимумов: в данной (критической) точке среди миллиардов возможных направлений очень вероятно найти то, что идет вниз (если вы не в глобальный минимум). Эта интуиция была строго формализована и эмпирически подтверждена в статье, опубликованной на NIPS 2014: Идентификация и решение проблемы седловой точки в невыпуклой оптимизации большой размерности [6]

Почему SGD сходится (или нет)?

Второй важный вопрос оптимизации глубоких нейронных сетей связан со свойствами конвергенции SGD. Хотя этот алгоритм долгое время считался более быстрой, но приблизительной версией градиентного спуска, теперь у нас есть доказательства того, что SGD действительно сходится к лучшим, более общим минимумам [3]. Но можем ли мы формализовать это и количественно объяснить способность SGD выходить из локальных минимумов или седловых точек?

SGD изменяет функцию потерь

Статья Альтернативный взгляд: когда SGD избегает локальных минимумов? [4] показали, что выполнение SGD эквивалентно выполнению обычного градиентного спуска по свернутой (таким образом сглаженной) функции потерь. С этой точки зрения и при определенных предположениях (которые, как показали авторы, часто верны на практике), они доказывают, что SGD удастся избежать локальных минимумов и сойтись в небольшую область вокруг глобального минимума.

SGD управляется стохастическими дифференциальными уравнениями

Другой подход к SGD, который действительно изменил мое видение этого алгоритма, - это непрерывный SGD. Идея была представлена ​​Йошуа Бенжио во время его выступления О стохастическом градиентном спуске, плоскостности и обобщении на семинаре ICML по невыпуклой оптимизации. SGD перемещает не точку функции потерь, а облако точек или, другими словами, распределение.

Размер этого облака точек (т. Е. Дисперсия связанного распределения) пропорционален коэффициенту learning_rate / batch_size. Доказательство этого приводится в удивительной статье Пратика Чаудхари и Стефано Соатто Стохастический градиентный спуск выполняет вариационный вывод, сходится к предельным циклам для глубоких сетей [5], который они представили на семинаре по геометрии в машинном обучении. Эта формула довольно интуитивно понятна: малый размер пакета означает очень шумный градиент (потому что вычисляется на очень небольшом подмножестве набора данных), а высокая скорость обучения означает зашумленные шаги.

Следствием рассмотрения SGD как распределения, движущегося во времени, является то, что уравнения, управляющие спуском, теперь являются стохастическими уравнениями в частных производных. Точнее, при определенных предположениях [5] показал, что определяющее уравнение на самом деле является уравнением Фоккера-Планка.

В статистической физике этот тип уравнений описывает эволюцию частиц, подверженных действию силы сопротивления (которая смещает распределение, т.е. перемещает его среднее значение) и случайных сил (которые размывают распределение, то есть увеличивают его дисперсию). В SGD сила сопротивления моделируется истинным градиентом, в то время как случайные силы соответствуют шуму, присущему алгоритму. Как вы можете видеть на слайде выше, коэффициент диффузии пропорционален температурному члену T = 1 / β = learning_rate / (2 * batch_size), что еще раз показывает важность этого отношения!

Используя эту схему, Чаудхари и Соатто доказали, что наше распределение будет монотонно сходиться к некоторому устойчивому распределению (в смысле KL-дивергенции):

В приведенной выше теореме есть несколько интересных моментов, которые стоит прокомментировать:

  • Функционал, который минимизируется с помощью SGD, может быть переписан как сумма двух членов (уравнение 11): математического ожидания потенциала Φ и энтропии распределения. Температура 1 / β контролирует компромисс между этими двумя терминами.
  • Потенциал Φ зависит только от данных и архитектуры сети (а не от процесса оптимизации). Если он равен функции потерь, SGD будет сходиться к глобальному минимуму. Однако документ показывает, что это бывает редко, и знание того, как далеко Φ от функции потерь, скажет вам, насколько вероятно, что ваш SGD сойдется.
  • Энтропия окончательного распределения зависит от отношения learning_rate / batch_size (температура). Интуитивно энтропия связана с размером распределения, и наличие высокой температуры часто сводится к наличию распределения с высокой дисперсией, что обычно означает плоский минимум. Поскольку считается, что плоские минимумы лучше обобщают, это согласуется с эмпирическим выводом о том, что высокая обучаемость и малый размер пакета часто приводят к лучшим минимумам.

Таким образом, рассмотрение SGD как распределения, меняющегося во времени, показало нам, что learning_rate / batch_size более значимо, чем каждый гиперпараметр, разделенный на сходимость и обобщение. Более того, он позволил представить потенциал сети, связанный с конвергенцией, и это могло дать хорошую метрику для поиска архитектуры.

Заключение

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

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

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

использованная литература

[1] Феликс Дракслер, Камбис Вещгини, Манфред Зальмхофер, Фред Хампрехт. Практически нет барьеров в энергетическом ландшафте нейронных сетей, ICML 2018.

[2] К. Дэниэл Фриман, Джоан Бруна. Топология и геометрия полуисправленной оптимизации сети, a rXiv: 1611.01540, 2016.

[3] Нитиш Шириш Кескар, Деэватса Мудигере, Хорхе Носедал, Михаил Смелянский, Пинг Так Питер Танг. О крупномасштабном обучении для глубокого обучения: пробел в обобщении и четкие минимумы, ICLR 2017.

[4] Роберт Клейнберг, Юаньчжи Ли, Ян Юань. Альтернативный взгляд: когда SGD избегает локальных минимумов?, ICML 2018

[5] Пратик Чаудхари, Стефано Соатто. Стохастический градиентный спуск выполняет вариационный вывод, сходится к предельным циклам для глубокой сети, ICLR 2018

[6] Янн Дофин, Разван Паскану, Чаглар Гульчехре, Кёнхён Чо, Сурья Гангули, Йошуа Бенджио. Выявление и решение проблемы седловой точки в многомерной невыпуклой оптимизации, NIPS 2014