Центральной теоретической проблемой обучения с учителем является проблема обобщающей способности.
В самом деле, как можно гарантировать, что модель, обученная на некотором наборе данных, будет показывать хорошие результаты на данных, которых в обучении не было? Для классических моделей было доказано много содержательных результатов, которые, может быть, не давали ответы на все вопросы, но позволяли многое понять о работе моделей. Что же касается нейросетей, для них теория ещё только создаётся, и в этом разделе мы познакомим вас с рядом направлений развития этой науки.
Нейронная сеть фиксированной архитектуры реализует некоторый класс моделей . Например, разные элементы этого класса могут соответствовать различным наборам весов. Когда такой класс фиксирован, мы обычно решаем задачу минимизации некоторой функции ошибки или, как чаще говорят в теории ML, задачу минимизации эмпирического риска
среди моделей из класса , где – обучающий датасет из примеров, выбранных независимо из распределения данных , а – функция риска, например, .
Наша цель, однако, минимизировать не эмпирический, а истинный риск, то есть
где математическое ожидание берётся по распределению данных, а не по выборке (математическое ожидание риска на всех мыслимых данных, не только на выборке). К сожалению, в рамках задачи обучения с учителем доступа к истинному распределению данных у нас нет, поэтому минимизировать истинный риск напрямую не удаётся, но мы можем попробовать его оценить. Часто для этого используют риск на валидации, но в этом разделе учебника мы постараемся получить теоретические оценки.
Пусть – модель из класса , которую мы построили исходя из выборки . Интересно оценить, насколько её истинный риск отличается от эмпирического, то есть оценить разность
В случае нейронных сетей очень трудно предсказать, к какой именно модели сойдётся наш метод обучения (например, градиентный спуск) на данной выборке . Тем не менее, разницу рисков всегда можно оценить сверху супремумом по всем моделям из класса:
В этом случае риск можно оценить сверху величиной
Такие оценки называются равномерными (uniform bounds); мы рассмотрим их подробно в соответствующем параграфе.
Понятно, что подобная оценка становится бесполезной (vacuous), если в классе содержится модель, которая идеально работает на фиксированной выборке (), но на какой-либо другой (потенциально тестовой) выборке из тех же данных работает плохо ( велик). Так, известно, что модели класса VGG способны выучить ImageNet даже с перемешанными метками классов (см. статью Understanding deep learning requires rethinking generalization). Понятно, что истинный риск у такой модели будет близок к риску случайного угадывания. «Плохую» модель можно построить следующим образом. Пусть – наш исходный алгоритм обучения, например, градиентный спуск. Он принимает на вход выборку и выдаёт обученную модель. Возьмём датасет, составленный из двух частей:
-
– это самая обычная выборка, в которой объекты насэмплированы из распределения ,
-
– выборка, объекты которой сгенерированы из того же распределения, но метки перепутаны.
Рассмотрим модель . Чем больше будет по сравнению с , тем ближе будет построенная модель к случайному угадыванию. При этом, если суммарный размер двух выборок не слишком велик, то наша модель сможет запомнить их обе, в частности, . Таким образом, эмпирический риск такой модели окажется мал, а истинный – велик.
Интуитивно понятно, что чем «сложнее» класс , тем больше шансов найти в нём подобную модель. Одной из классических мер сложности класса моделей является размерность Вапника-Червоненкиса, или VC-размерность, предложенная в 1971 году в статье В. Н. Вапника и А. Я. Червоненкиса «О равномерной сходимости частот появления событий к их вероятностям». Она даёт следующую равномерную оценку:
Как и следовало ожидать, правая часть растёт со сложностью модели и падает с размером выборки.
Известно, что для полносвязных сетей VC-размерность растёт как , где – ширина сети (число нейронов в слое), а – общее число параметров; см. статью Nearly-tight VC-dimension and Pseudodimension Bounds for Piecewise Linear Neural Networks. Рассмотрим полносвязную сеть с одним скрытым слоем. Тогда общее число параметров сети пропорционально ширине, а значит, VC-размерность пропорциональна квадрату ширины. Соответствующая оценка на истинный риск принимает вид:
где – константа из равномерной оценки разницы рисков с помощью VC-размерности, а – эмпирический риск сети ширины , обученной на данной выборке .
Как правило, эмпирический риск монотонно убывает с ростом ширины, пока не достигнет нуля (в самом деле, чем больше ширина, тем сложнее класс моделей и тем больше шансов обнаружить в нём модель, запоминающую фиксированную выборку). В результате может вести себя немонотонно: у этой величины может обнаружиться минимум строго левее точки, где впервые достигает нуля:
Правее минимума предсказанный риск монотонно растёт. Но оказывается, что реальный истинный риск, напротив, убывает, выходя на асимптоту:
Возникает вопрос: если у истинного риска есть асимптота, то как ведут себя нейронные сети в пределе бесконечной ширины? Мы остановимся на этом вопросе в соответствующем параграфе.
Упомянутый выше эксперимент с перемешиванием меток классов на части обучающей выборки можно рассматривать как модификацию не данных, а алгоритма обучения. А именно, давайте представим алгоритм, который, получая на вход выборку , сделает с ней следующее:
- Каким-то образом делит её на две части: ,
- Заменяет в метки на случайные.
- Обучает модель на объединении и «испорченной» .
Такой «испорченный» алгоритм обучения приводит к модели, которая запоминает и поэтому на исходной обучающей выборке работает не так уж и плохо. Но на тестовых данных он показывает качество, сравнимое со случайным угадыванием. Работающие на практике алгоритмы, например, градиентный спуск, тоже могут обучить модель, которая «запомнила» обучающую выборку. Тем не менее, на тестовой выборке обученная модель будет давать нормальное качество (см. опять же вторую картинку в начале параграфа). Возникает вопрос: почему так? Почему среди всех конфигураций весов, для которых риск на обучающей выборке равен нулю, градиентный спуск не выбирает те, для которых истинный риск сравним со случайным угадыванием? Явление, при котором среди всех эквивалентных по эмпирическому риску решений алгоритм выбирает определённые, называется implicit bias, и будет рассмотрен в соответствующем параграфе.
Если даже известно, какие конфигурации весов «предпочитает» наш алгоритм обучения, это никак не повлияет на равномерную оценку разницы рисков. В параграфе про PAC-байесовские оценки будет рассмотрен класс оценок, которые позволяют учесть предпочтения алгоритма. А именно, пусть обученная модель случайна (это действительно так из-за случайности инициализации весов и, например, шума стохастического градиентного спуска), то есть алгоритм строит распределение на моделях – назовём его апостериорным распределением. Пусть дано другое распределение, не зависящее от выборки, назовём его априорным. Тогда роль сложности в наших оценках будет играть расстояние Кульбака-Лейблера (KL-дивергенция) между апостериорным и априорным распределениями на моделях. Если априорное распределение покрывает «предпочтительные» решения и не покрывает остальные, то KL-дивергенция мала и оценка разницы рисков невелика. Из-за внешней схожести некоторых величин, возникающих в этой теории, с объектами из байесовской статистики, такие оценки называется PAC-байесовскими (PAC-bayesian bounds, от probably approximately correct).
Выше мы негласно предполагали, что используемый алгоритм обучения успешно решает задачу минимизации эмпирического риска. Для нейронных сетей наиболее популярный алгоритм – градиентный спуск или его разновидности. Если бы функция потерь была выпуклой как функция от весов сети, то это гарантировало бы сходимость в глобальный минимум. В общем случае теория оптимизации не даёт таких гарантий. Тем не менее, для сетей реалистичного размера градиентный спуск успешно сходится в глобальный минимум, что толкает нас на предположение о том, что все локальные минимумы таких сетей глобальны. Это предположение действительно можно доказать в некоторых частных случаях; см. параграф про ландшафт функции потерь.
В качестве необходимого дополнения следует также гарантировать, что градиентный спуск (или его разновидности) не сходится в возможные седловые точки. При определённых условиях на минимизируемую функцию можно доказать, что для сходимости в седловую точку необходимо инициализировать функцию на множестве меры ноль. Более подробно вы можете почитать в работе Gradient descent only converges to minimizers или в её обобщениях Gradient Descent Only Converges to Minimizers: Non-Isolated Critical Points and Invariant Regions и On the almost sure convergence of stochastic gradient descent in non-convex problems.
Впрочем, гарантии сходимости, как правило, формулируются для фиксированной архитектуры сети и ничего не говорят о скорости сходимости. Хотелось бы также иметь гарантии на то, что какой бы широкой или глубокой сеть не была, градиентный спуск сойдётся в минимум за разумное время. А для этого необходимо понимать, что на самом первом шаге градиентного спуска градиент не будет гаснуть или «взрываться» с ростом ширины или глубины. Известен ряд эвристик для инициализации весов, помогающих с этим бороться: например, инициализации Глоро (Xavier Glorot) и Хе (Kaiming He). Подробнее про них вы можете прочитать в параграфе про тонкости обучения нейросетей.