Гауссовская регрессия процесса

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

  1. Многомерные гауссианы

2. Регрессия гауссовского процесса (эта статья)

3. Байесовская оптимизация с использованием регрессии гауссовского процесса

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

Весь код, который я использовал для создания графиков в этой серии блогов, можно найти в этом репозитории.

Резюме

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

1. Произвольно оцените несколько точек в области оптимизации.

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

3. Рассчитайте неопределенности/дисперсии/стандартные отклонения, связанные с вашей регрессионной функцией в области оптимизации.

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

5. Оцените этот момент и добавьте оценку к набору всех оцененных баллов.

6. Вернитесь к шагу 2 и повторите.

Эти шаги можно резюмировать на следующем изображении:

На шагах 2 и 3 мы видим, что требуется метод статистической регрессии. В этой серии блогов мы решили использовать регрессию гауссовского процесса в качестве метода статистической регрессии. В этом нет ничего необычного: гауссовские процессы чрезвычайно хороши для регрессии нелинейных функций, используя в качестве входных данных всего несколько точек данных. Но что это такое? Мы собираемся пойти в обход, чтобы объяснить это, но имейте в виду, что все, что нам нужно в конце обхода, — это способ регрессии нелинейных функций, который также дает нам отклонения по области.

Стохастические процессы: обзор

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

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

Поскольку это немного абстрактно, представьте, что у вас есть n случайных величин. Вы заказываете их с 1 по n. У вас также есть домен, который вы сегментируете на n точек. Если вы выберете 1 значение из каждой случайной переменной и нанесете их на соответствующую точку в области, результатом будет стохастический процесс. Если выбранные вами случайные величины исходят из многомерного гауссова, у вас будет гауссовский процесс. Это несколько наивное определение гауссовского процесса. Позже я углублюсь в полное определение, а пока давайте лучше познакомимся со стохастическими процессами и рассмотрим хорошо известный пример стохастического процесса: процесс Винера.

Винерский процесс

Винеровский процесс классно описывает броуновское движение. Броуновское движение — это движение, которое совершает малая частица, взвешенная в жидкости. Такие частицы беспорядочно перемещаются по жидкости, и можно показать, что расстояние, которое они проходят (Δd) между временными шагами t и t+Δt, равно распределяется по закону ∆d ~ N(0, ∆t) . Это означает, что если бы мы проверяли частицу через фиксированные промежутки времени Δt и отмечали ее положение, ее можно было бы описать следующим образом:

Следовательно, W(t) — случайный процесс. Его также можно сформулировать как гауссовский процесс. Однако более очевидный гауссовский процесс может быть получен путем построения графика зависимости Δd от времени.

Мы можем рассматривать каждый Δd как выборку из N(0, Δt) или мы можем рассматривать все Δd как выборку одновременно из многомерного гауссова. Если мы скажем, что n = T/ Δt, то многомерный гауссиан будет иметь n-мерную ковариационную матрицу Δt*I и n-мерный нулевой вектор в качестве среднего.

Изображение броуновского движения и Δd в зависимости от времени можно увидеть ниже.

Процессы — это функции

На приведенных выше графиках винеровского процесса каждый «путь» можно рассматривать как функцию f(t) = d. В приведенном выше случае «пути» — это функции, которые отображают конечное множество точек домена на набор значений расстояния. Однако каждый раз, когда мы «запускаем» процесс, мы получаем другой «путь». Таким образом, мы можем рассматривать процесс как распределение по функциям. Это распределение будет иметь свое среднее значение и ковариацию.

Тот факт, что «путь» гауссовского процесса можно рассматривать как функцию, позволит нам позже регрессировать функции. Более того, ковариация процесса даст нам дисперсию, необходимую для байесовской оптимизации. Пришло время взглянуть на полное определение.

Полное определение

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

Гауссовы процессы — это распределения по функциям f(x). Распределение определяется функцией среднего значения m(x) и положительно определенной ковариационной функцией k(x, x') с x в качестве значения домена и (x, x') все возможные пары во входном домене:

Для любого конечного подмножества X = {x1, x2, ... xn} домена определения x предельное распределение представляет собой многомерное гауссово распределение:

со средним вектором mu=m(X) и ковариационной матрицей K(X, X’).

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

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

Ковариационные функции

В следующих примерах мы будем использовать гауссовские процессы со средней функцией f(x)=0. При рассмотрении конечной области это означает, что наш средний вектор является нулевым вектором.

Теперь, когда мы это отсортировали, давайте рассмотрим две функции ковариации:

и

Результатом первой функции будет ковариационная матрица, которая представляет собой масштабированную матрицу идентичности. Вторая функция называется квадратом экспоненты. Для области [-3, 3], разделенной на 51 сегмент, функция даст следующую матрицу:

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

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

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

Гауссовская регрессия процесса

Мы только что узнали, что вывести «пути» из гауссовского процесса так же просто, как сделать выборку из многомерного гауссова. Мы также узнали, что некоторые гауссовские процессы дают чрезвычайно гладкие «пути» при дискретизации. Что, если бы мы знали значение неизвестной функции в 4 местах, но больше нигде, и хотели бы регрессировать эту функцию. Что ж, 4 значения функции — это не очень много, поэтому нам придется сделать некоторые другие предположения. Предположим, что функция нелинейная и гладкая. Нам все равно не хватило бы, чтобы продолжать. Итак, давайте сделаем скачок: предположим, что функция может быть хорошо описана гауссовым процессом с квадратом экспоненциальной ковариационной функции и нулевым средним значением. Теперь регрессия становится легкой. Давайте посмотрим, почему.

Чего мы хотели бы добиться, так это «пути» гауссовского процесса с правильными характеристиками (гладкостью и т. д.), которая проходит через наши известные точки. Поскольку «путь» достигается путем выборки из многомерного гауссиана, мы могли бы просто обусловить предполагаемый гаусс на значениях известных точек. Но какой из потенциальных «путей» мы должны принять в качестве регрессионной функции? Ответ — новое условное среднее. В моем предыдущем посте я глубоко погрузился в условные многомерные гауссианы. Для простоты я сейчас приведу формулы для матрицы условной ковариации и условного среднего.

Обратите внимание, что в приведенном выше y1 вектор известных точек. Если вы запутались на этом этапе, было бы неплохо вернуться и просмотреть предыдущий пост.

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

На графике выше я включил стандартные отклонения в график. Откуда они взялись? Это просто диагональные компоненты условной ковариационной матрицы. Это имеет смысл. Значение регрессионной функции в каждой точке домена выбирается из случайной величины. Следовательно, дисперсия j-й случайной величины будет просто j-й j-й записью в ковариационной матрице. Чтобы получить стандартное отклонение, мы просто извлекаем корень из этого значения. Это дает нам стандартное отклонение для каждой точки в области.

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

Источники

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

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

Эпилог: ковариационные функции

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

Эпилог: Исторические заметки

Регрессия гауссовского процесса была изобретена студентом в его магистерской диссертации. Его звали Дэни Г. Крайдж. Первоначально этот метод использовался в его диссертации по геостатистике для оценки содержания золота в рифовом комплексе Витватерсранд в Южной Африке. Это действительно говорит о том, насколько эффективными могут быть эти методы в среде с низким объемом данных. Бурение рудного керна – дорогостоящий и сложный процесс. Этот метод регрессии не только дал большую точность, но и позволил Кригу оценить, где будет лучше всего бурить дальше, чтобы получить больше информации. Сегодня регрессия гауссовского процесса также называется кригингом.