Как работает случайная кухонная раковина?


18

В прошлом году на NIPS 2017 Али Рахими и Бен Рехт выиграли тест на награду за свою работу «Случайные функции для крупномасштабных машин с ядром», где они представили случайные функции, которые впоследствии были кодифицированы как алгоритм случайных кухонных раковин. В рамках публикации своего документа они показали, что их модель может быть реализована в 5 строках Matlab.

% Approximates Gaussian Process regression
%     with Gaussian kernel of variance gamma^2
% lambda: regularization parameter
% dataset: X is dxN, y is 1xN
% test: xtest is dx1
% D: dimensionality of random feature

% training
w = randn(D,d);
b = 2 * pi * rand(D, 1);
Z = cos(gamma * w * X + b * ones(1,N));

alpha = (lambda * eye(D) +Z * Z') \ (Z * y);

% testing
ztest = alpha' * cos(gamma * w * xtest + b);

Как вышеприведенный алгоритм чему-то учит, мне неясно. Как работает случайная кухонная раковина? Как это приближает гауссовские процессы и опорные векторные машины?

редактировать

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

Рахими, Али и Бенджамин Рехт. «Равномерное приближение функций со случайными основаниями». Связь, управление и вычисления, 2008 г. 46-я ежегодная конференция Allerton. IEEE, 2008.

Рахими, Али и Бенджамин Рехт. «Взвешенные суммы случайных кухонных раковин: замена минимизации на рандомизацию в обучении». Достижения в нейронных системах обработки информации. 2009.

Я думаю, что фрагмент кода, представленный выше, является специализацией Алгоритма 1 в последней статье.


Ни слово «раковина», ни код, который вы цитируете, не появляются в связанной статье. Вы пропустили ссылку?
Кодиолог

2
Вы совершенно правы, спасибо. Без контекста разговора 2017 года вопрос кажется немного разрозненным! Я думаю, что идея была разработана в первой статье, но термин «случайные кухонные мойки» был введен позже. Фрагмент кода был распространен на постерной сессии 2007 года для газеты. Я расшифровал это из выступления Рахими на NIPS 2017.
MachineEpsilon

Ответы:


15

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

Ядерные методы хороши во многих ситуациях, но они обычно полагаются на манипуляции с матрицами, например, на решение линейных систем уравнений и нахождение матричных определителей. Если матрица равна то наивные вычисления обычно стоят что ограничивает возможности их применения к задачам с несколькими тысячами наблюдений. Наиболее популярным способом обхода этого узкого места, как правило, являются методы низкого ранга (хотя существуют и другие подходы, такие как методы на основе Кронекера, H-матрицы и машины байесовских комитетов и многие другие).N×NО(N3)

Случайные особенности Фурье (Rehimi & Recht 2007) рассматривали возможность создания аппроксимаций ядра ранга для инвариантных к сдвигу ядер путем выборки только случайного подмножества компонентов Фурье ядер. Поскольку пространство Фурье инвариантно относительно сдвига, это свойство было сохранено, но теперь явное конечномерное воспроизводящее гильбертово пространство ядра было образовано объединением этих компонентов Фурье. Некогда бесконечномерный RKHS аппроксимируется вырожденным приближенным ядром.

Примечания к фрагменту кода: в 5 строках есть несколько деталей. Наиболее важным является то, что функция Гаусса также является функцией Гаусса в пространстве Фурье, просто дисперсия инвертируется. Вот почему они выбирают из рандн, а затем умножают на дисперсию. Затем они производят альфу, которая является лишь подпроцедурой для поиска ztest. По сути, нормальное предсказание ядра выглядит так:

ZTеsTзнак равноК(ИксTеsT,Икс)(К(Икс,Икс)+λя)-1Y,

ZTеsTзнак равноΦ(ИксTеsT)TΦ(Икс)(Φ(Икс)TΦ(Икс)+λя)-1Y,

Где - оцененный вектор случайных признаков Фурье.Φ()

Дополнительный комментарий: Вы должны использовать это? Ответ не ясен да. Это полностью зависит от того, что вы моделируете. Использование пространства Фурье не обязательно подходит для нестационарных неизменных инвариантных ядер. Ребята никогда не утверждали, что это сработает в этой обстановке, но если вы только начинаете в этой области, иногда нюансы не очевидны.


5
Мне потребовалось секунду, чтобы понять, что вычисление альфы здесь решает проблему регрессии гребня в X и Y с помощью лямбда-регулятора. Если вы приехали из врачей общей практики, то, глядя на свои формулы, это несколько очевидно, если смотреть с точки зрения SVM, это немного сбивает с толку. Ваше «нормальное предсказание ядра» - это GP с добавленным шумом, иначе регрессия ядра.
Андреас Мюллер

1
@ AndreasMueller да извините, это правильно! Изначально я очень из сообщества GP, поэтому иногда забываю об этом! Рад , что вы получили то , что я имел в виду , хотя :)
j__

1
@j__, если у вас есть время, у меня есть вопрос о RFF здесь: stats.stackexchange.com/questions/440633 . Похоже, ответ на мой вопрос лучше понять RKHS и теорему о представителе.
GWG
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.