К старту курса о машинном и глубоком обучении мы перевели статью о регрессии гауссовского процесса (далее GPR) — удивительно мощном классе алгоритмов машинного обучения, который, в отличие от многих современных моделей машинного обучения, в составлении прогнозов опирается на небольшое количество параметров. Поскольку GPR является (почти) непараметрической, она, даже при небольшом количестве данных, может эффективно применяться в решении широкого спектра задач обучения с учителем. С помощью передовых фреймворков автоматического дифференцирования, таких как PyTorch и TensorFlow, изучить и применить GPR для решения множества сложных задач в области обучения с учителем, стало проще, чем когда-либо. В статье вы найдёте не только математические выкладки, но и ссылки на соответствующие учебники. Сверху вниз: (a) прогнозируемое среднее (синяя линия) и доверительный интервал (голубая область) для модели GPR, обученной на показанных зелёным цветом тренировочных точках данных; (б) прогнозируемые средние для модели GPR, обученной на тестовой функции Экли; (в) прогнозируемые средние для модели GPR, обученной на синусоидальных тренировочных данных. В данной статье мы обсудим регрессию гауссовского процесса (GPR) с основных принципов, оперируя математическими понятиями и понятиями машинного обучения, оптимизации и байесовского вывода.  Начнём с гауссовских процессов, работая с ними в целях формализации процесса прогнозирования с помощью моделей GPR, а затем обсудим два важнейших ингредиента этих моделей: ковариационные функции и оптимизацию гиперпараметров. Наконец, на основе наших математических выкладок обсудим некоторые интуитивные способы воспринимать GPR. Если вы хотите увидеть эту публикацию в виде академической статьи, пожалуйста, пройдите по этой ссылке. Давайте начнём! Прежде чем говорить о GPR, давайте выясним, что такое гауссовский процесс. Гауссовский процесс относится к классу случайных/стохастических процессов, определяющих наблюдаемые значения случайных величин, которые эволюционируют в пространстве и/или времени. Строго говоря, гауссовский процесс — это набор случайных величин, таких, что любое подмножество переменных также совместно гауссовское. Чтобы представить набор случайных величин d как совместно гауссов, мы можем описать их таким образом: Здесь d — количество случайных величин в подмножестве, μ — вектор средних значений, а Σ — ковариационная матрица между этими случайными величинами. Записанный как гауссова плотность, набор наблюдаемых значений для случайных переменных x = (xi, ..., xj) предстаёт перед нами совместно гауссовым: . Вот один из способов воспринимать гауссовский процесс: он определяет распределение по функциям: учитывая, что гауссовский процесс полностью задан средним значением и ковариационной функцией, возможно сэмплировать функцию в точке x из гауссовского процесса таким образом: , где f (·) — функция, которую мы сэмплируем из гауссовского процесса, m (·) — функция среднего, а k (·,·) — ковариационная функция в подклассе ядерных функций. Подход известен как представление пространства функций гауссовского процесса . Представление набора данных в виде гауссовского процесса по-разному применяется в машинном обучении , обработке сигналов [3] и вероятностном выводе. Теперь, когда мы познакомились с понятием гауссовского процесса, мы готовы заговорить о том, как эта вероятностная структура случайного процесса может использоваться для регрессии. Одно из применений гауссовских процессов — выполнение регрессии с помощью обучения с учителем, отсюда и название — регрессия гауссовского процесса. Эта регрессия может быть представлена как байесовская линейная регрессия с ядром, где параметризация ядра определяется выбором функции ковариации/ядра, а также используемыми для прогнозирования данными.. Этот подход известен как представление весового пространства GPR. Регрессия гауссовского процесса также может быть представлена в вышеупомянутом представлении пространства функций, где обучающийся изучает распределение по функциям через изучение  функций среднего и ковариации наблюдаемых значений гауссовского процесса в точке x, обозначенных f(x). ; . Наблюдаемые значения гауссовского процесса, заданные f(x), соответствуют случайной переменной. При заданных функциях f(x) может быть сэмплирована из гауссовского процесса таким образом: . Это формализация выборки случайной величины f(x), которая зависит от местоположения x (в пространственных приложениях; в приложениях временных рядов f(x) может зависеть от времени t). Оценки среднего значения f(x) получаются как линейная комбинация наблюдаемых целевых значений y. Используемые для получения этих средних оценок весовые коэффициенты независимы от целевых значений, что относит модели GPR к классу линейных сглаживателей.  Дан тренировочный набор данных из N наблюдений: и состоящий из N’ точек тестовый набор данных: . GPR прогнозирует апостериорное гауссовское распределение для целей по тестовыми точками X∗ путём вычисления параметров этого гауссовского распределения с учётом наблюдаемых тренировочных данных. Мы можем представить это прогнозирование как буквальное прогнозирование гауссовского распределения в каждой тестовой точке. Сначала рассмотрим случай прогнозирования *без шума*, а затем используем его для обобщения на случай, когда в наблюдаемых целевых значениях y моделируется шум. Для понимания выкладок ниже, пожалуйста, обратите внимание на следующие определения: m(·) представляет собой среднее значение функции. K (·,·) — это функция ядра/ковариации. X — это матрица обучающих признаков (N, d). X∗ — это матрица тестовых точек данных (N’, d). y — это вектор тренировочных целей (N, 1). f — это (N, 1) вектор наблюдаемых значений гауссовского процесса на обучающих признаках X. f — это вектор наблюдаемых значений гауссовского процесса на тестовых точках X. Cov(·) — ковариационный оператор. σ² — положительный гиперпараметр, обозначающий ковариационный шум гауссовского процесса. Теперь мы готовы получить прогнозы GPR! До погружения в него давайте вспомним нашу цель: спрогнозировать гауссовы распределения целей f∗ в тестовых точках X∗. В случае без шума мы имеем равенство между наблюдаемыми тренировочными целями y и наблюдаемыми значениями функций гауссовского процесса f. Другими словами, мы наблюдаем сэмплированные функции гауссовского процесса непосредственно в точках X. С учётом определённых выше наборов данных тренировки и тестирования совместное распределение функций гауссовского процесса по наборам данных (f и f∗, соответственно) задаётся: , где матрица ковариации в правой части является блочной матрицей матриц сходства ядер. Хотя совместное распределение даёт некоторое представление о том, как f∗ соотносится с f, на данный момент не сделано никаких выводов относительно прогнозов f∗.  Вместо этого совместного распределения нас интересует апостериорное распределение прогнозируемых наблюдаемых значений гауссовского процесса f∗ в тестовых точках X∗. Именно здесь вступает в игру понятие байесовского вывода: мы будем обусловливать наши предыдущие распределения по тестовым точкам на наших тренировочных данных, чтобы улучшить наши оценки гауссовского среднего и параметров дисперсии для наших тестовых точек. Это апостериорное распределение может быть вычислено путем обусловливания прогнозирования наблюдаемых значений гауссовского процесса в тестовых точках f∗ на наблюдаемых целях тренировочного набора данных f. В дополнение к условию f мы также обусловливаем тренировочные входы X и тестовые входы X∗. . Это означает, что среднее значение и ковариация прогнозов тестовых точек X* задаются таким образом: ; . О чём говорят эти выкладки? Прогнозируемое среднее оценивается как линейная комбинация наблюдаемых значений гауссовского процесса на тренировочном наборе f. Коэффициенты этой линейной комбинации определяются расстоянием в пространстве ядра между тестовыми точками X∗ и точками тренировочного набора X. Интуитивно это означает, что тренировочные выборки, расположенные ближе в пространстве ядра к X∗, имеют в прогнозируемом среднем более веское слово. Эти коэффициенты также масштабируются по обратному подобию ядра между входными данными в обучающем наборе X. Прогнозируемая ковариация оценивается как разница расстояний ядра между тестовыми точками X∗ минус квадратичная форма обратного расстояния ядра тренировочных входов X до и после умножения на расстояние ядра между тренировочными и тестовыми входами. В некоторых приложениях функция среднего необязательно должна быть нулевой, и может быть записана как обобщённая m(-). В этом случае при ненулевой функции среднего прогнозируемые оценки среднего и ковариации в тестовых точках становятся такими: ; . Во многих приложениях регрессии гауссовского процесса принято моделировать обучающие цели y (игрек) как зашумленные наблюдаемые гауссовского процесса f, где шум параметризован нулевым средним гауссовским значением с положительной ковариацией шума, заданной σ². , где σ² — гиперпараметр, который можно оптимизировать (см. раздел об оптимизации гиперпараметров ниже). Используя приведённые выше уравнения прогнозирования вместе с нашим определением зашумленных значений цели y, мы можем выразить совместное распределение по наблюдаемым тренировочным целям y и спрогнозированным наблюдаемым гауссовского процесса f∗ в тестовых точках X∗: . Используя те же интуитивные выкладки и процесс обусловливания, что и выше, мы можем выразить условное распределение прогнозируемых наблюдаемых гауссовского процесса f∗, обусловленных наблюдаемыми тренировочными целями y (игрек) как: . Деконструировать нужно много, но формулы для прогнозируемого среднего ??? и ковариации — в основном такие же, как и раньше, просто с диагональным шумом, добавленным к выражению подобия обратного обучающего ядра. ; . Одно из практических соображений добавления ковариационного шума — он может гарантировать, что матрица в скобках остаётся положительной полуопределённой во время оптимизации гиперпараметров GPR, что, в свою очередь, позволяет этой матрице в скобках быть инвертируемой. Приведённые выше выводы описывают точную аналитическую структуру процесса прогнозирования GPR. Тем не менее некоторые элементы этих уравнений, такие как матрицы ядра/ковариации и ковариационный шум, всё ещё не разъяснены. В следующих разделах мы обсудим эти важные элементы GPR. Ковариационные функции являются важным компонентом моделей GPR, поскольку эти функции взвешивают вклад обучающих точек в прогнозируемые тестовые цели в соответствии с расстоянием ядра между наблюдаемыми тренировочными точками X и тестовыми точками X∗. Напомним: один из способов представления прогнозирования GPR — это механизм линейного сглаживания: спрогнозированное среднее в тестовых точках X∗ фактически может быть выражено так: . Таким образом, прогнозируемые средние представляют собой линейную комбинацию наблюдаемых целевых значений y, с выходно-независимыми весами, определяемыми расстоянием ядра между тестовыми точками и обучающей точкой, средний вклад которой учитывается. Ниже приведены некоторые примеры ковариационных функций, которые часто используются в литературе по GPR: Квадратичная экспоненциальная (SE) / радиальная базисная функция ядра (RBF) с автоматическим определением релевантности (ARD) [4]. ARD позволяет изучать отдельные шкалы длин для каждого входного измерения и поэтому подходит для многомерных входных пространств с переменными масштабами и выходной чувствительностью в каждом измерении. Эта ковариационная функция задаётся, как показано ниже (здесь Θ — диагональная матрица длин): . 2. Рациональное квадратичное ядро (RQ) с ARD: Ядро RQ можно представить как бесконечную смесь ядер SE, где веса смеси контролируются положительным гиперпараметром α. 3. Ядро Матерна с ARD: при определённых условиях это ядро допускает идеальную интерполяцию. Обратите внимание, что ν — гиперпараметр, определяющий степень допустимого разрыва в интерполяции, K — функция Бесселя 2-го порядка, а Γ(·) — гамма-функция. . Хотя модели GPR считаются непараметрическими, их гиперпараметры, такие как шкалы длин, значительно влияют на прогностические возможности этих моделей и, следовательно, должны быть оптимизированы для максимизации прогностических возможностей вне выборки. К счастью, как и во многих других моделях обучения с учителем, эти гиперпараметры могут быть оптимизированы с помощью градиентных методов. Целью оптимизации гиперпараметров модели GPR является предельное правдоподобие. Однако, поскольку оно имеет экспоненциальные члены, обычно эта оптимизация выполняется путём максимизации предельной логарифмической вероятности, чтобы получить аналитическое обновление градиента. Поскольку функция предельного логарифмического правдоподобия является строго монотонным преобразованием функции предельного правдоподобия, набор гиперпараметров, максимизирующих предельное логарифмическое правдоподобие, также максимизирует и предельное правдоподобие. Предельное логарифмическое правдоподобие, параметризованное набором гиперпараметров θ, задаётся (при моделировании шума в наблюдаемых целях) таким образом: . Как уже упоминалось, для оптимизации гиперпараметров модели GPR производные предельного логарифмического правдоподобия вычисляются относительно θ: . Эти производные затем используются для обновления гиперпараметров модели GPR с использованием методов градиентного подъёма, таких как Adam [5]. Это приводит к градиентным обновлениям формулы: ; . После оптимизации гиперпараметров GPR в тренировочном наборе наблюдаемых значений (X, y) модель GPR готова к выполнению апостериорного вывода в тестовом наборе данных X∗. До сих пор мы обсуждали: (а) как модели GPR делают прогнозы; (б) функции ковариации для GPR и решающую роль, которую эти функции играют в определении сходства/расстояния между точками; (в) как мы можем оптимизировать гиперпараметры моделей GPR для улучшения их производительности вне выборки. Теперь, чтобы закрепить интуитивное понимание, давайте обсудим другие интерпретации GPR. Как и у других методов и алгоритмов машинного обучения, у регрессии гауссовского процесса существует множество интерпретаций. Вот некоторые из них, которые связаны с тем, что обсуждалось выше. GPR — это алгоритм, который: Вычисляет совместное многомерное гауссовское апостериорное распределение тестового набора с учётом тренировочного набора. Подход формализуется как выборка функции из гауссовского процесса. Интерполирует точки в пространстве d-мерного ввода (признака) в пространство m-мерного вывода (цели). При определённых условиях эти (тестовые) спрогнозированные интерполированные точки являются линейными комбинациями существующих (тренировочных) точек! Учитывая прошлое и настоящее, прогнозирует среднее и стандартное отклонение в будущем.  Выполняет регрессию в многомерном пространстве признаков, параметризованном ковариационными функциями (положительными полуопределёнными ядрами). Давайте обсудим каждый из них, не пренебрегая интуицией и применяя приведённые выше математические выводы. Возможно, именно здесь возникает «гауссовская» регрессия в гауссовском процессе. Этот метод машинного обучения моделирует данные как полученные из гауссовского процесса. Напомним, что гауссовский процесс представляет собой набор N случайных величин, которые рассматриваются как совместно гауссовы. Где здесь подходит слово «апостериорный»? Ну, как и другие модели машинного обучения с учителем, GPR полагается на наличие как тренировочных, так и тестовых данных. Модель подгоняется к обучающим данным, и прогнозы в виде постериорного распределения (в данном случае гауссовского постериорного распределения) определяются как условное распределение прогнозов тестового набора, обусловленное наблюдениями из тренировочного набора). Интерполяция/кригинг [2] была одним из первых применений регрессии гауссовского процесса [2]. Интерполяция представляет собой простой случай применения GPR, поскольку мы можем интерполировать средние значения и ковариацию новых точек при помощи существующих точек. GPR также можно применять в качестве непараметрического метода интерполяции! Такое применение в области пространственной статистики также известно как кригинг и позволяет интерполировать как одномерные, так и многомерные выходы из одномерных и многомерных входов. Здесь интерполяция выполняется с применением той же идеи, что и выше, при вычислении спрогнозированных средних: интерполированные точки оцениваются путём взятия комбинаций ближайших обучающих точек и взвешивания их по расстоянию до ядра (“сходству”). Точки, которые находятся “ближе” к рассматриваемой точке, вносят больший вклад в прогнозирование новой точки, чем те, что находятся дальше от неё. Благодаря способности cхватывать временное поведение таким образом, чтобы автоматически измерить и взвесить, насколько «близки» во времени два момента GPR, это обычный инструмент прогнозирования временного ряда. Напомним, что поскольку мы прогнозируем постериорное гауссовское распределение и поскольку оно полностью определяется его параметрами среднего и дисперсии, то всё, что необходимо для прогнозирования на основе GPR, — это спрогнозировать среднее и дисперсию во времени. Прогнозирование этих величин на самом деле может быть довольно полезным — из него вы можете извлечь доверительные интервалы (среднее значение + квадратный корень из дисперсии), а также прогнозируемое среднее/ожидаемое значение интересующих вас величин с течением времени. Последняя захватывающая интерпретация GPR фактически является байесовской регрессией с пространством признаков, состоящим из, возможно, бесконечномерного набора базисных функций! Это определение — следствие теоремы Мерсера. Ниже приводим часть этой теоремы: Функции φ(x) и ее сопряженная φ*(x') являются собственными функциями ядра (в нашем случае ковариационной) функции k(x, x'). Эти собственные функции особенны тем, что интегрирование их по мере, такой как плотность вероятности p(x), или мера Лебега, приводит к самой собственной функции, масштабированной числом, которое называют собственным значением, обозначаемым здесь λ. Мы можем рассматривать это выражение как обобщённое представление ряда Фурье нашего ядра.  Обратите внимание: это означает, что у нас может быть бесконечное количество базисных функций, которые мы можем использовать для преобразования наших входных данных в признаки. Это в принципе похоже на трюк с ядром. Сочетание этого результата с результатом линейной функции сглаживания выше мы можем переписать наше выражение для скрытых прогнозов как взвешенную сумму комбинаций собственных значений и собственных функций: . . . Что релевантно приведённому выше результату? Мы показали, что линейные комбинации выходных данных, используемые для формирования прогноза, определяются собственными функциями и собственными значениями ковариационной функции, применяемой в точках тренировочных и тестовых данных. Помимо выбора функции ковариации и ковариационного шума прогнозирование здесь полностью определяется самими данными! Этот факт иллюстрирует причину, по которой регрессия гауссовского процесса считается непараметрической. Даже если анализ собственных функций на самом деле не очень-то приятен, здесь есть важный вывод: GPR преобразует нашу стандартную байесовскую регрессию в бесконечномерное пространство признаков с помощью функции ковариации! В зависимости от выбора ковариационной функции подход даёт неограниченную выразительную мощь модели. Этот факт — один из тех, что делают модели GPR такими мощными, универсальными для широкого спектра задач машинного обучения с учителем. Ниже приведены лишь несколько очень полезных для начала ресурсов. Этот список, безусловно, не исчерпывающий: Гауссовские процессы для машинного обучения (на английском языке): математически строгий учебник по гауссовским процессам. В этой книге много внимания уделяется вероятностной и геометрической теории, лежащей в основе GPR: ядрам, ковариационным функциям, мерам, оценкам и воспроизведению гильбертовых пространств ядра (RKHSS). Рецепты о ядрах: (на английском языке) отличное руководство для старта в вашем треке обучения GPR, когда вы спрашиваете себя: «Какую функцию ковариации GPR я должен использовать и когда?» Это руководство сочетает в себе интуитивность с математической строгостью. Автоматическое определение релевантности (ARD) (на английском языке): как мы писали в разделе функции ковариации, ARD особенно полезен для задач GPR с переменными масштабами объектов и выходной чувствительностью по входным измерениям. [1] Carl Edward Rasmussen and Christopher K. I. Williams. 2005. Gaussian Processes for Machine Learning (Adaptive Computation and Machine Learning). The MIT Press. [2] Oliver, Margaret A., and Richard Webster. “Kriging: a method of interpolation for geographical information systems.” International Journal of Geographical Information System 4.3 (1990): 313–332. [3] Oppenheim, Alan V, and George C. Verghese. Signals, Systems & Inference. Harlow: Pearson, 2017. Print.  Husmeier D. (1999) Automatic Relevance Determination (ARD). In: Neural Networks for Conditional Probability Estimation. Perspectives in Neural Computing. Springer, London.  [5] Kingma, Diederik P., and Jimmy Ba. “Adam: A method for stochastic optimization.” arXiv preprint arXiv:1412.6980 (2014). Математику можно назвать языком моделирования мира, именно её выразительная мощь позволяет нам не только наблюдать, но и прогнозировать происходящее. И если вам интересна не только красота математики, но и её практическое приложение для решения проблем, вы можете обратить внимание на наш курс о машинном и глубоком обучении, партнёр которого, компания NVIDIA, лидер в области вычислений для ИИ. Узнайте, как прокачаться и в других специальностях или освоить их с нуля:   Профессия Data Scientist   Профессия Data Analyst   Курс по Data Engineering ПРОФЕССИИ   Профессия Fullstack-разработчик на Python   Профессия Java-разработчик   Профессия QA-инженер на JAVA   Профессия Frontend-разработчик   Профессия Этичный хакер   Профессия C++ разработчик   Профессия Разработчик игр на Unity   Профессия Веб-разработчик   Профессия iOS-разработчик с нуля   Профессия Android-разработчик с нуля КУРСЫ   Курс по Machine Learning   Курс "Machine Learning и Deep Learning"   Курс "Математика для Data Science"   Курс "Математика и Machine Learning для Data Science"   Курс "Python для веб-разработки"   Курс "Алгоритмы и структуры данных"   Курс по аналитике данных   Курс по DevOps Редактор-переводчик