регрессия гауссовского процесса для больших наборов данных


10

Я узнал о регрессии гауссовского процесса из онлайн-видео и заметок к лекциям, и я понимаю, что если у нас есть набор данных с точками, то мы предполагаем, что данные взяты из n- мерного многомерного гауссиана. Таким образом, мой вопрос в том случае, если n равно 10 из миллионов, регрессия гауссовского процесса все еще работает? Разве матрица ядра не будет огромной, что сделает процесс совершенно неэффективным? Если да, существуют ли методы для решения этой проблемы, например, многократная выборка из набора данных? Какие есть хорошие методы для решения таких случаев? NNN


3
Почему вы хотите использовать гауссовский процесс, а не то, что предназначено для работы с большими данными?
Тим

Ответы:


7

Существует широкий спектр подходов для масштабирования GP для больших наборов данных, например:

Подходы с низким рангом: они пытаются создать приближение с низким рангом к ковариационной матрице. Наиболее известным из них является метод Нистрома, который проецирует данные на подмножество точек. На основе этого были разработаны FITC и PITC, в которых используются псевдоточки, а не наблюдаемые точки. Они включены, например, в библиотеку GPy python. Другие подходы включают случайные функции Фурье.

H-матрицы : они используют иерархическое структурирование ковариационной матрицы и применяют приближения низкого ранга к каждой подматрице структур. Это реже применяется в популярных библиотеках.

Методы Кронекера : они используют продукты Кронекера ковариационных матриц, чтобы ускорить вычислительное узкое место.

Машины Байесовского комитета : это включает в себя разбиение ваших данных на подмножества и моделирование каждого с помощью GP. Затем вы можете объединить прогнозы, используя оптимальную байесовскую комбинацию выходов. Это довольно легко реализовать самостоятельно и быстро, но вроде как ломает ваше ядро, если вы заботитесь об этом - статья Марка Дайзенрота должна быть достаточно легкой, чтобы следовать здесь .


5

Обычно вы можете обучать гауссовские процессы на подвыборках вашего набора данных (пакетирование). Bagging реализован в sk learn и может быть легко использован. Посмотрите на пример документации .

NNбaгsNпО(N3)О(NбaгsNп3)

Помимо методов пакетирования, существует несколько активных исследований о том, как сделать масштабируемые регрессии гауссовского процесса. СтатьяО(N)


5

Ты спросил:

в случае, когда 10 составляет 10 миллионов, регрессия гауссовского процесса все еще работает?

Не в стандартном смысле построения и обращения большой матрицы. У вас есть два варианта: 1) выбрать другую модель или 2) сделать приближение.

1) Некоторые модели, основанные на GP, можно масштабировать до очень больших наборов данных, таких как машина байесовского комитета, связанная в ответе выше. Однако я нахожу этот подход довольно неудовлетворительным: есть веские причины для выбора модели GP, и если мы хотим перейти к более вычислимой модели, мы можем не сохранить свойства исходной модели. Например, прогнозируемые отклонения BCM сильно зависят от разделения данных.

2) «Классический» подход к аппроксимации в GP состоит в аппроксимации матрицы ядра. Вот хороший обзор этих методов здесь: http://www.jmlr.org/papers/volume6/quinonero-candela05a/quinonero-candela05a.pdf . Фактически, мы обычно можем рассматривать эти матричные аппроксимации как модельные аппроксимации и объединять их с машиной байесовского комитета: это изменения в модели, и может быть трудно понять, когда эти изменения могут быть патологическими. Вот супер обзор: https://papers.nips.cc/paper/6477-understanding-probabilistic-sparse-gaussian-process-approximations.pdf

Способ, которым я рекомендую делать аппроксимации для больших ВО, состоит в том, чтобы избегать аппроксимации матрицы ядра или модели и приближать апостериорное распределение с помощью вариационного вывода. Многие вычисления выглядят как матричное приближение «низкого ранга», но есть одно очень желательное свойство: чем больше вычислений вы используете (тем больше «рангов»), тем ближе аппроксимация к истинному апостериорному, как измеряется KL дивергенция.

Эти статьи являются хорошей отправной точкой: http://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf https://arxiv.org/pdf/1309.6835

Я написал более длинную статью по тому же аргументу здесь: https://www.prowler.io/blog/sparse-gps-approximate-the-posterior-not-the-model

На практике вариационное приближение работает очень хорошо во многих случаях. Я широко использовал его в реальных приложениях. И совсем недавно появилась замечательная теория, подтверждающая, почему она должна работать ( https://arxiv.org/abs/1903.03571 ).

Последний плагин: вариационный вывод в GP реализуется в gpflow ( https://github.com/GPflow/GPflow )


1
Просто для записи, если кто-то сталкивается с этим и не знает, Джеймс будет одним из авторитетов в этой области вместе с Майком Осборном, Нилом Лоуренсом и так далее - круто, он отвечает на вопросы и ответы на SE
j__
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.