Comment fonctionne un évier de cuisine aléatoire?

18

L'année dernière, au NIPS 2017, Ali Rahimi et Ben Recht ont remporté le prix du test du temps pour leur article "Random Features for Large-Scale Kernel Machines" où ils ont introduit des fonctionnalités aléatoires, codifiées plus tard comme l'algorithme des éviers de cuisine aléatoires. Dans le cadre de la publicité de leur article, ils ont montré que leur modèle pouvait être implémenté en 5 lignes de 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);

Comment l'algorithme ci-dessus apprend quelque chose n'est pas clair pour moi. Comment fonctionne un évier de cuisine aléatoire? Comment rapproche-t-il les processus gaussiens et prend-il en charge les machines vectorielles?

Éditer

En revoyant l'exposé de Rahimi, le terme éviers de cuisine aléatoires n'est pas introduit dans l'article pour lequel ils ont remporté le prix, mais plutôt à la fin de la trilogie d'articles commençant par "Fonctions aléatoires pour les machines à noyau à grande échelle". Les autres articles sont:

Rahimi, Ali et Benjamin Recht. "Approximation uniforme des fonctions avec des bases aléatoires." Communication, Control, and Computing, 2008 46th Annual Allerton Conference on. IEEE, 2008.

Rahimi, Ali et Benjamin Recht. "Sommes pondérées des éviers de cuisine aléatoires: remplacer la minimisation par la randomisation dans l'apprentissage." Progrès dans les systèmes de traitement de l'information neuronale. 2009.

Je pense que l'extrait de code présenté ci-dessus est une spécialisation de l'algorithme 1 dans le dernier article.

MachineEpsilon
la source
Ni le mot «puits» ni le code que vous citez n'apparaissent dans le papier lié. Vous manquez une référence?
Kodiologist
2
Vous avez tout à fait raison, merci. Sans le contexte de la conférence de 2017, la question semble un peu décousue! L'idée a été développée dans le premier article, je pense, mais le terme éviers de cuisine aléatoires n'a été introduit que plus tard. L'extrait de code a apparemment été distribué lors de la session d'affiches de 2007 pour le journal. Je l'ai transcrit de la conférence de Rahimi au NIPS 2017.
MachineEpsilon

Réponses:

15

Les éviers de cuisine aléatoires (ou les fonctionnalités de Fourier aléatoires) et d'autres méthodes connexes ne tentent pas d'effectuer l'inférence, mais essaient plutôt de réduire le goulot d'étranglement des méthodes d'inférence basées sur le noyau.

Les méthodes du noyau sont excellentes dans de nombreux contextes, mais elles reposent généralement sur la manipulation de matrices, par exemple la résolution de systèmes d'équations linéaires et la recherche de déterminants matriciels. Si la matrice est alors naïvement ces calculs coûtent généralement ce qui limite les applications qu'ils peuvent être appliquées à des problèmes avec seulement quelques milliers d'observations. Le moyen le plus populaire de contourner ce goulot d'étranglement a tendance à être les méthodes de bas rang (bien qu'il existe d'autres approches telles que les méthodes basées sur Kronecker, les matrices H et les machines des comités bayésiens pour n'en nommer que quelques-unes).n×nO(n3)

Les caractéristiques de Fourier aléatoires (Rehimi & Recht 2007) ont envisagé de créer des approximations de bas rang des noyaux invariants par décalage en n'échantillonnant qu'un sous-ensemble aléatoire des composantes de Fourier des noyaux. Comme l'espace de Fourier est invariant par décalage, cette propriété a été préservée mais maintenant un espace Hilbert de noyau de reproduction de dimension finie explicite a été formé par l'union de ces composants de Fourier. Le RKHS de dimension une fois infinie est approximé par le noyau approximatif dégénéré.

Notes sur l'extrait de code: il y a quelques détails balayés dans les 5 lignes. Le plus important est que la fonction gaussienne est également une fonction gaussienne dans l'espace de Fourier, seule la variance est inversée. C'est pourquoi ils échantillonnent à partir de randn puis multiplient par variance. Ensuite, ils produisent alpha qui n'est qu'une sous-procédure pour trouver ztest. Essentiellement, la prédiction normale du noyau ressemble,

ztest=K(Xtest,X)(K(X,X)+λje)-1y.

ztest=Φ(Xtest)TΦ(X)(Φ(X)TΦ(X)+λje)-1y.

Φ()

Commentaire secondaire: devriez-vous l'utiliser? La réponse n'est pas un oui clair. Cela dépend complètement de ce que vous modélisez. L'utilisation de l'espace de Fourier n'est pas nécessairement appropriée pour les noyaux invariants non stationnaires non décalés. Les gars n'ont jamais prétendu que cela fonctionnerait dans ce cadre, mais si vous débutez dans ce domaine, parfois les nuances ne sont pas évidentes.

j__
la source
5
Il m'a fallu une seconde pour réaliser que le calcul de l'alpha ici résout le problème de régression des crêtes en X et y avec le régularisateur lambda. Si vous venez de médecins généralistes, puis en regardant vos formules, cela est quelque peu évident, venant d'un angle SVM, c'est un peu déroutant. Votre "prédiction normale du noyau" est un GP avec du bruit ajouté, aussi appelé régression de la crête du noyau.
Andreas Mueller
1
@AndreasMueller oui désolé c'est correct! Je suis originaire de la communauté GP à l'origine, alors parfois j'oublie ça! Heureux que vous
compreniez
1
@j__, si vous avez le temps, j'ai une question sur les RFF ici: stats.stackexchange.com/questions/440633 . Il semble que la réponse à ma question soit de mieux comprendre RKHS et le théorème du représentant.
gwg