18. Гауссовские процессы

Эндрю Гордон Уилсон (Нью-Йоркский университет и Amazon)

Гауссовские процессы (GPs) повсеместны. Вы уже сталкивались со многими примерами GPs, даже не осознавая этого. Любая модель, линейная по своим параметрам и имеющая гауссовское распределение над параметрами, является гауссовским процессом. Этот класс охватывает дискретные модели, включая случайные блуждания и авторегрессионные процессы, а также непрерывные модели, включая модели байесовской линейной регрессии, полиномы, ряды Фурье, радиальные базисные функции и даже нейронные сети с бесконечным числом скрытых единиц. Существует шутка, что «всё является частным случаем гауссовского процесса».

Изучение гауссовских процессов важно по трём причинам: (1) они предлагают пространственно-функциональный взгляд на моделирование, что делает понимание широкого класса моделей, включая глубокие нейронные сети, гораздо более доступным; (2) они обладают исключительным спектром применений, где являются состоянием искусства, включая активное обучение, обучение гиперпараметров, автоматическое машинное обучение (Auto-ML) и пространственно-временную регрессию; (3) за последние несколько лет алгоритмические достижения сделали гауссовские процессы всё более масштабируемыми и актуальными, гармонично сочетаясь с глубоким обучением через такие фреймворки, как GPyTorch (Gardner et al., 2018). Действительно, гауссовские процессы и глубокие нейронные сети не являются конкурирующими подходами, а скорее высоко дополняют друг друга, и их комбинация может дать отличный результат. Эти алгоритмические достижения важны не только для гауссовских процессов, но и закладывают основу численных методов, которые широко полезны в глубоком обучении.

В этой главе мы вводим гауссовские процессы. Во вводной заметке мы интуитивно разбираемся, что такое гауссовские процессы и как они напрямую моделируют функции. В заметке про априорные распределения мы сосредотачиваемся на том, как задавать априорные распределения гауссовских процессов. Мы напрямую связываем традиционный подход к моделированию в пространстве весов с пространством функций, что поможет нам лучше понимать конструирование и работу моделей машинного обучения, включая глубокие нейронные сети. Затем мы вводим популярные функции ковариации, также известные как ядра, которые управляют обобщающей способностью гауссовского процесса. Гауссовский процесс с заданным ядром определяет априорное распределение над функциями. В заметке про вывод мы покажем, как использовать данные для получения апостериорного распределения с целью выполнения предсказаний. Эта заметка содержит код для выполнения предсказаний с помощью гауссовского процесса с нуля, а также введение в GPyTorch. В последующих заметках мы рассмотрим численные аспекты гауссовских процессов, которые полезны для масштабирования гауссовских процессов, но также служат мощной общей основой для глубокого обучения и продвинутых сценариев использования, таких как настройка гиперпараметров в глубоком обучении. Наши примеры будут использовать GPyTorch, который обеспечивает масштабируемость гауссовских процессов и тесно интегрирован с функциональностью глубокого обучения и PyTorch.