Найти в Дзене
Машинное обучение

Байесовские методы машинного обучения

Оглавление

Глубокие нейронные сети (DNN) являются чрезвычайно успешными во многих сферах применения - от распознавания изображений и игры в шахмат до вождения автомобилей и постановки медицинских диагнозов. Однако, несмотря на этот успех, хорошее теоретическое понимание того, почему они так хорошо обобщают (учатся), все еще отсутствует.

В этом посте мы суммируем результаты трех статей, которые предлагают кандидатуру теории обобщения в DNN [1,2,3] (сноски в конце статьи). Для занятых или знающих читателей рисунки 1–7, их подписи и заключения будут достаточными, чтобы понять основную аргументацию.

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

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

Стоит отметить, что многие теории предполагают, что SGD является основным источником индуктивного смещения (например, он выполняет некоторую скрытую регуляризацию, см. [1] в сносках). Наши эксперименты являются веским доказательством против этого утверждения, но показывают, что настройка гиперпараметров стохастических оптимизаторов может иметь незначительное влияние на пост-обученные DNN.

Представляем выразительность и индуктивное смещение

В обучении с учителем проблема состоит в том, чтобы подогнать функцию к некоторым данным обучения S. Одной из простейших задач обучения с учителем является 1D регрессия (то есть подгонка линии к некоторым точкам данных) . Однако, как видно из рисунка 1, существует множество возможных функций f, соответствующих обучающим данным (любая функция, проходящая через черные точки). Однако есть только одна «истинная» функция f *, которая фактически сгенерировала эти черные точки. В случае рисунка 1 f * была (слегка) возмущенной синусоидальной функцией.

Тогда, учитывая некоторую систему обучения и некоторые данные, мы можем решить, какая функция f, скорее всего, будет f *? Чем ближе мы к f *, тем лучше будет обобщенная сеть. Это то же самое утверждение, что и «хорошее обобщение - это точное предсказание данных».

На рисунке 1 мы используем полиномиальную регрессию, чтобы найти кандидата на f *. Полифит 5-го порядка соответствует функции, которая довольно близка к f * (пунктирная оранжевая линия), потому что есть 6 параметров и 5 точек данных (что почти идеально ограничивает задачу), тогда как полифит 50-го порядка (с 51 параметром) может выбирать между гораздо больший набор функций. Такие алгоритмы, которые могут подогнать множество функций к S, называются очень выразительными.

Итак, один из способов управления тем, как выглядит f, - это управление выразительностью модели - количеством функций, которые можно использовать на тренировочной выборке S. Если мы знаем, что f * намного проще, чем полином 50-го порядка, мы можем просто уменьшите порядок алгоритма polyfit, удалив количество неверных функций, которые используются в алгоритме обучения. Это связано с смещением данных и дисперсии, который, как мы будем утверждать, не имеет места в нашем DNN.

Это потому, что DNN очень выразительны. У них намного больше параметров, чем у точек данных, и они способны подгонять множество различных функций к S. На рисунке 1 мы видим DNN с> 10000 параметрами, выполняющими ту же задачу, что и алгоритмы polyfit. Синяя линия показывает результат - простая функция, которая хоть и не является синусоидальной кривой, но не так плоха, как polynomial fitter (который имел всего 50 параметров). Чтобы убедиться, что эта конкретная DNN не слишком мала для множества различных функций, мы также обучили ее на обучающем наборе, состоящем из черных и красных точек. У него не было проблем с приспособлением функции к обоим. Это говорит о том, что он очень выразителен, но все же достаточно хорошо обобщает (выбирает f, близкое к f *).

Рисунок 1: DNN очень выразительны, но при этом подходят для простых функций; когда полиномиальные подгоночные устройства сделаны очень выразительными, они не подходят для простых функций. Это потому, что они не имеют индуктивного смещения  в сторону простых функций. Однако DNN, похоже, подходят для простых функций (синяя линия), хотя они могут соответствовать более сложным функциям (красная линия). С 1].
Рисунок 1: DNN очень выразительны, но при этом подходят для простых функций; когда полиномиальные подгоночные устройства сделаны очень выразительными, они не подходят для простых функций. Это потому, что они не имеют индуктивного смещения в сторону простых функций. Однако DNN, похоже, подходят для простых функций (синяя линия), хотя они могут соответствовать более сложным функциям (красная линия). С 1].

При подборе черных точек DNN могла бы соответствовать любой функции (например, красной линии), но она выбирала очень простую функцию. Когда мы заставляем его проходить через черную и красную точки, он может делать это успешно, что подразумевает как высокую выразительность, так и предпочтение простейших возможных функций. Для получения дополнительной информации о количественной оценке простоты функций см. [2,3].

Этот пример и существенные доказательства в [2, 3] предполагают, что DNN имеет индуктивное смещение в сторону «простых» функций.

Индуктивное смещение - это механизм, который заставляет алгоритмы выбирать определенные функции в качестве кандидатов на f *. Если индуктивное смещение выбирает функции f, близкие к f *, то индуктивное смещение хорошее. В алгоритме полифита недостаточно индуктивного смещения - поэтому нет обобщения!

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

Вводя дальнейшие обозначения

Прежде чем мы продолжим, мы должны разработать надлежащий формализм. В условиях контролируемого обучения у нас есть некоторое распределение данных D, состоящее из входных данных (в пространстве X) и меток (в пространстве Y), а также некоторая функция

f*: X → Y,

определена для любого x∈ D. f * - это «истинная» функция, которая определяет, как входы должны отображаться на их метки.

Ниже приведен пример (MNIST), где D содержит 28x28 полутоновых изображений рукописных цифр 0–9 с их метками. Обратите внимание, что, хотя есть некоторая двусмысленность относительно того, когда конкретное изображение 28x28 может быть засчитано в D, черный квадрат, безусловно, нет. f * представляет собой «истинную» маркировку изображений - это функция от значений пикселей в изображениях 28x28 до меток.

Мы уже обсуждали задачу DNN - поиска функции f, которая (достаточно) близка к f *. В условиях контролируемого обучения это достигается путем предоставления некоторого подмножества S⊂ D («обучающие данные») и попытки минимизировать функцию потерь на S, которая измеряет разницу между f и f * на S. Обычно мы проверяем эту функцию f на тестовом множестве E⊂ D, чтобы увидеть, насколько он близок к f *.

Если индуктивное смещение DNN хорошее, то f будет близка к f * на E.

Нами было показано, что двухуровневые полностью подключенные сети способны подгонять любую функцию к 10000 изображениям в MNIST (т.е. маркировать изображения любым способом), и, несмотря на это, они в подавляющем большинстве находят функции, которые хорошо обобщаются.

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

Так в чем же источник индуктивного смещения DNN?

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

Сначала нам нужно определить несколько величин для некоторой нейронной сети N и набора данных D:

Pᵦ (f) - это вероятность того, что N выражает f в наборе данных D при случайной выборке параметров сети (обычно из i.i.d. гауссиан)

Pᵦ (f) может быть связано с объемом в пространстве параметров Vᵦ (f): если параметры сети случайным образом выбираются из гауссова распределения, то Vᵦ (f) - это объем с гауссовой мерой, равный Pᵦ (f). Мы используем нижний индекс «B», чтобы обозначить, что это наш байесовский приор, который представляет собой тип индуктивного смещения.

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

Мы можем представить себе выполнение байесовского вывода, взяв Pᵦ (f) в качестве априорной:

Pᵦ ( f | S)=P(S | f ) Pᵦ(f) / Pᵦ(S),

где P (S | f) = 1, если f согласуется с S, иначе 0. Pᵦ (S) - вероятность случайной инициализации функции, согласованной с S. Это уравнение, возможно, лучше понять со ссылкой на рисунок 3: в нем говорится что вероятность того, что функция f наилучшим образом описывает обучающие данные S, равна объему f, деленному на общее количество функций, согласующихся с S.

Очень неформально это означает, что если `` больше '' параметров дают функцию f, а f точно моделирует данные в обучающем наборе S, то мы должны назначить ему более высокую апостериорную вероятность Pᵦ (f | S), чем другую функцию, точную на S, но с «меньше» параметров. Эта апостериорная вероятность является нашей вероятностной оценкой того, насколько вероятно, что f на самом деле является f * - которая, глядя на приведенное выше уравнение, сильно зависит от нашего априорного Pᵦ (f).

Тогда, если Pᵦ (f) смещено в сторону функций с хорошим обобщением, Pᵦ (f | S) будет тоже. Чтобы подчеркнуть нашу предыдущую мысль, Pᵦ (f) - это наше индуктивное смещение, которое в контексте байесовского вывода называется априорным. Нижний индекс «B» означает «Байесовский».

Рисунок 3: Визуализация Pᵦ (f | S). Оси x и y представляют параметры в DNN. В [1,2,3] утверждается, что из функций, согласующихся с обучающими данными, «простые» функции имеют большие объемы в пространстве параметров, а «сложные» функции имеют небольшие объемы. Для реальных наборов данных объемы варьируются на много порядков. [Технически мы используем гауссову меру в пространстве параметров]
Рисунок 3: Визуализация Pᵦ (f | S). Оси x и y представляют параметры в DNN. В [1,2,3] утверждается, что из функций, согласующихся с обучающими данными, «простые» функции имеют большие объемы в пространстве параметров, а «сложные» функции имеют небольшие объемы. Для реальных наборов данных объемы варьируются на много порядков. [Технически мы используем гауссову меру в пространстве параметров]

Однако даже если это так, это не гарантирует хорошего обобщения, то DNN обучаются стохастическим оптимизатором, таким как SGD. Хотя может показаться вероятным, что SGD с большей вероятностью обнаружит функции с более высоким Pᵦ (f | S), это не является очевидным. Взгляните на рисунок 4: если картина потерь ведет себя как-то так, как показано на карикатуре, то с большей вероятностью будут обнаружены функции с более высокими «объемами», а поскольку они хорошо обобщаются, DNN будет хорошо обобщать в ожидании.Аргументы и эмпирические данные в [1] предполагают, что это правда (с некоторыми условиями).

Рисунок 4: Наглядное изложение основного аргумента. Утверждается, что функции с лучшим обобщением имеют больший Vᵦ (f | S) - больший объем в пространстве параметров - и это соответствует функциям, которые хорошо обобщаются. Есть надежда, что в случаях, когда бассейны Vᵦ (f | S) изменяются на много порядков, Vₒₚₜ (f | S) будет хорошо коррелировать с Vᵦ (f | S), как показано выше. Обратите внимание, что величины написаны в основном тексте с буквой P (а не V), поскольку мы можем интерпретировать их как вероятности или как объемы. С 1].
Рисунок 4: Наглядное изложение основного аргумента. Утверждается, что функции с лучшим обобщением имеют больший Vᵦ (f | S) - больший объем в пространстве параметров - и это соответствует функциям, которые хорошо обобщаются. Есть надежда, что в случаях, когда бассейны Vᵦ (f | S) изменяются на много порядков, Vₒₚₜ (f | S) будет хорошо коррелировать с Vᵦ (f | S), как показано выше. Обратите внимание, что величины написаны в основном тексте с буквой P (а не V), поскольку мы можем интерпретировать их как вероятности или как объемы. С 1].

Формализация вопроса

Мы должны сравнить следующие параметры: Рассмотрим DNN N, обучающий набор S и тестовый набор E:

Pₒₚₜ (f | S) - это вероятность того, что стохастический оптимизатор, такой как SGD, найдет функцию f на E после обучения со 100% точностью на S.

Pᵦ (f | S) - это вероятность того, что N выражает f на E при случайной выборке сетевых параметров из i.i.d. Гауссианы до N имеют 100% точность на S. [Это определение эквивалентно тому, что дано в предыдущем разделе].

Если Pₒₚₜ (f | S) ≈ Pᵦ (f | S), то причина того, что DNN хорошо обобщаются, заключается в том, что существует больший объем параметров (объем с гауссовой мерой), которые соответствуют функциям, которые хорошо обобщаются. Тогда SGD с большей вероятностью найдет функции с «большим количеством» связанных параметров. Опять же, читатель может пожелать вернуться к рисункам 3 и 4, чтобы увидеть карикатуры на аргументы.

Полное и формальное рассмотрение см. В [1]. Надеюсь, что этого раздела достаточно, чтобы понять ключевые моменты.

Как вычислить Pₒₚₜ (f | S) и Pᵦ (f | S)

Рассмотрим набор данных MNIST - рукописные цифры от 0 до 9 с их метками. Затем для наших экспериментов мы преобразовываем его в двоичную форму, поэтому четные числа классифицируются как 0, а нечетные числа как 1.

Пусть обучающий набор S состоит из 10000 случайно выбранных изображений, а тестовый набор E состоит из 100 случайно выбранных изображений.

Затем рассмотрите возможность обучения DNN N на S до 100% точности. Запишите классификацию (функцию) на E. Это эквивалентно выборке из Pₒₚₜ (f | S). Сделайте это несколько раз (скажем, около 10⁵), чтобы получить хорошее приближение к Pₒₚₜ (f | S).

Для вычисления Pᵦ (f | S) нужен другой подход. Было бы неплохо произвольно выбирать параметры до тех пор, пока N не станет на 100% точным на S, записать классификацию и повторить (аналогично тому, как мы вычисляем Pₒₚₜ (f | S)), но, к сожалению, это займет недопустимое количество времени. Мы также не можем вычислить аналитически объемы Pᵦ (f). Вместо этого мы точно аппроксимируем этот процесс приближением гауссовских процессов. См. [1] для подробного объяснения этого.

Наши результаты

Наши результаты можно разбить на несколько очень простых экспериментов. Наш основной тип эксперимента проверяет, действительно ли Pₒₚₜ (f | S) ≈ Pᵦ (f | S). Мы обнаружили, что это верно для широкого диапазона наборов данных (MNIST, Fashion-MNIST, набор данных обзора фильмов IMDb и набор данных об ионосфере), архитектур (полностью подключенных, сверточных, LSTM), оптимизаторов (SGD, Adam, Adadelts и т. Д.), схемы обучения (включая перетренированность) и гиперпараметры оптимизатора (например, размер пакета, скорость обучения).

Мы показываем основной результат на рисунке 5 - для полностью подключенной сети на MNIST. Основной результат показан на рис. 5а: каждая точка данных представляет определенную функцию на тестовом наборе размером 100 после обучения на обучающем наборе S размера 10000 либо с помощью SGD, либо с помощью байесовского вывода. Он показывает, что Pₒₚₜ (f | S) ≈ Pᵦ (f | S). 5b показывает, что Pᵦ (f | S) изменяется на многие порядки и является максимальным для функций с хорошим обобщением. 5c показывает, что простые функции лучше обобщают. 5d показывает Pᵦ (f | S) из 5a по-другому, а 5e, f показывают тот же тип эксперимента, что и в 5a, но с другими гиперпараметрами (другой оптимизатор и функция потерь соответственно).

Рисунок 5: Наш главный результат. (a) сравнивает Pᵦ (f | S) с Pₒₚₜ (f | S). (b) показывает, как Pᵦ (f | S) изменяется на много порядков - существует явное индуктивное смещение в сторону простых функций из Pᵦ (f | S). (c) показывает, что более простые функции лучше обобщаются. (d) показывает Pᵦ (f | S) из (a). (e) и (f) используют разные гиперпараметры для (a), чтобы показать, что этот эффект не зависит от гиперпараметров. С 1].
Рисунок 5: Наш главный результат. (a) сравнивает Pᵦ (f | S) с Pₒₚₜ (f | S). (b) показывает, как Pᵦ (f | S) изменяется на много порядков - существует явное индуктивное смещение в сторону простых функций из Pᵦ (f | S). (c) показывает, что более простые функции лучше обобщаются. (d) показывает Pᵦ (f | S) из (a). (e) и (f) используют разные гиперпараметры для (a), чтобы показать, что этот эффект не зависит от гиперпараметров. С 1].

Мы также показываем на рисунке 6, что изменение гиперпараметров, связанных с оптимизатором (в данном случае, размером пакета), действительно влияет на взаимосвязь между Pₒₚₜ (f | S) и Pᵦ (f | S). Мы обнаружили, что меньшие размеры пакета приводят к тому, что функции с высоким Pᵦ (f | S) имеют даже более высокое значение Pₒₚₜ (f | S), чем для пакетов большего размера.

Рисунок 6: Больше вариантов гиперпараметров - очевидно, для всех Pₒₚₜ (f | S) ≈ Pᵦ (f | S). Однако изменение гиперпараметров оптимизатора может внести небольшие изменения в Pₒₚₜ (f | S) - и, таким образом, внести небольшие изменения в обобщение. Итак, SGD может не быть основным игроком, но определенно может повлиять на игру. С 1].
Рисунок 6: Больше вариантов гиперпараметров - очевидно, для всех Pₒₚₜ (f | S) ≈ Pᵦ (f | S). Однако изменение гиперпараметров оптимизатора может внести небольшие изменения в Pₒₚₜ (f | S) - и, таким образом, внести небольшие изменения в обобщение. Итак, SGD может не быть основным игроком, но определенно может повлиять на игру. С 1].

Наконец, на рисунке 7 показано, что Pₒₚₜ (f | S) ≈ Pᵦ (f | S) для ряда архитектур и наборов данных, включая ConvNets и LSTM.

Рисунок 7: Дополнительные наборы данных и архитектуры - ConvNets в Fashion-MNIST, LSTM в наборе данных обзора фильмов IMDb и небольшой FCN в наборе данных Ionosphere. Ясно, что для всех из них Pₒₚₜ (f | S) ≈ Pᵦ (f | S), и эффект не ограничивается полностью подключенными сетями.
Рисунок 7: Дополнительные наборы данных и архитектуры - ConvNets в Fashion-MNIST, LSTM в наборе данных обзора фильмов IMDb и небольшой FCN в наборе данных Ionosphere. Ясно, что для всех из них Pₒₚₜ (f | S) ≈ Pᵦ (f | S), и эффект не ограничивается полностью подключенными сетями.

Заключение

В заключение мы представили убедительные доказательства того, что DNN являются универсальными из-за сильного индуктивного смещения из-за архитектуры. Более конкретно:

  1. Существует априорный параметр Pᵦ (f), который представляет собой вероятность того, что DNN случайным образом инициализируется функцией f. Этот априор сильно ориентирован на простые функции.
  2. Мы можем выполнить байесовский вывод с Pᵦ (f) в качестве предыдущего, чтобы получить апостериорное распределение по параметрам: Pᵦ (f | S). Это апостериорное распределение также сильно смещено в сторону простых функций (см. Рисунок 5b).
  3. Затем мы показываем, что при обучении со стохастическим оптимизатором, таким как SGD, сеть находит функции с вероятностью Pₒₚₜ (f | S) ≈ Pᵦ (f | S). См. Рисунок 5а.

Поскольку Pₒₚₜ (f | S) ≈ Pᵦ (f | S) в широком диапазоне архитектур, наборов данных и оптимизаторов, мы заключаем, что эффект оптимизатора намного слабее, чем априорные параметры Pᵦ (f). Таким образом, DNN в первую очередь обобщают из-за Pᵦ (f), а не из-за стохастических оптимизаторов - которые отлично подходят для поиска функций, согласующихся с обучающими наборами - все еще очень впечатляющее свойство!

Тем не менее, изменение гиперпараметров, связанных с оптимизаторами (например, размер пакета, скорость обучения, перетренированность), может внести небольшие изменения в приблизительное равенство между Pₒₚₜ (f | S) и Pᵦ (f | S) и может привести к небольшому увеличению обобщения.

Не стесняйтесь присылать любые комментарии или предложения по адресу christopher.mingard@queens.ox.ac.uk

Рекомендации

[1] К. Мингард, Г. Валле-Перес, Дж. Скалсе, А. Луи. SGD - это байесовский пробоотборник? Ну, почти. (2020) https://arxiv.org/abs/2006.15191

[2] К. Мингард, Дж. Скалсе, Г. Валле-Перес, Д. Мартинес-Рубио, В. Микулик, А. Луи. Нейронные сети априори склонны к функциям с низкой энтропией. (2019) https://arxiv.org/abs/1909.11522

[3] Г. Валле-Перес, К. Камарго, А. Луи. Глубокое обучение обобщает, потому что карта функция-параметр смещена в сторону простых функций. (2018) https://arxiv.org/abs/1805.08522

Все изображения в этом посте созданы автором, большинство из них также можно найти в [1].

Наука
7 млн интересуются