Processus gaussiens: comment utiliser GPML pour une sortie multidimensionnelle


13

Existe-t-il un moyen d'effectuer une régression de processus gaussienne sur une sortie multidimensionnelle (éventuellement corrélée) à l'aide de GPML ?

Dans le script de démonstration, je ne pouvais trouver qu'un exemple 1D.

Une question similaire sur le CV qui aborde le cas de l'entrée multidimensionnelle.


J'ai parcouru leur livre pour voir si je pouvais trouver quoi que ce soit. Dans le 9ème chapitre de ce livre (section 9.1), ils ont mentionné ce cas de sorties multiples. Ils ont mentionné deux façons de résoudre ce problème, un - en utilisant un processus de bruit corrélé et deux - cokrigeage (corrélé avant).

Je ne sais toujours pas comment je peux incorporer l'une de ces idées dans le cadre GPML.


Existe-t-il également d'autres bibliothèques / frameworks GP qui prennent en charge la sortie multidimensionnelle?


"Predicting Structured Data" parle de l'utilisation des SVM dans le cas d'une classe (estimation de la densité du noyau) sur Joint Kernels entre l'entrée et la sortie. Étant donné qu'il s'agit de deux machines du noyau, cette approche devrait fonctionner. J'ai trouvé un article mentionnant quelque chose de similaire. datamin.ubbcluj.ro/tr/2011/sogp.pdf mes tentatives d'ajustement d'algorithmes d'apprentissage structurés ont été assez épouvantables, donc je ne sais pas comment cela se passe.
Jessica Collins

Réponses:


7

Je crois que les processus gaussiens jumeaux sont exactement ce que vous recherchez. Je ne peux pas mieux décrire le modèle que l'abstrait du papier lui-même, donc je vais juste le copier-coller:

Nous décrivons les processus gaussiens jumeaux (TGP) 1, une méthode générique de prédiction structurée qui utilise des processus gaussiens (GP) a priori [2] à la fois sur les covariables et les réponses, toutes deux multivariées, et estime les sorties en minimisant la divergence de Kullback-Leibler entre deux GP modélisés comme des distributions normales sur des ensembles d'indices finis de formation et tester des exemples, en insistant sur le fait que des intrants similaires devraient produire des percepts similaires et cela devrait se maintenir, en moyenne, entre leurs distributions marginales. TGP capture non seulement les interdépendances entre les covariables, comme dans un GP typique, mais aussi celles entre les réponses, de sorte que les corrélations entre les entrées et les sorties sont prises en compte. TGP est illustré, avec des résultats prometteurs, pour la reconstruction de poses humaines 3d à partir de séquences vidéo monoculaires et multicaméra dans le benchmark HumanEva récemment introduit, où nous obtenons une erreur de 5 cm en moyenne par marqueur 3D pour les modèles formés conjointement, en utilisant des données provenant de plusieurs personnes et de plusieurs activités. La méthode est rapide et automatique: elle ne nécessite aucune fabrication à la main de la pose initiale, des paramètres d'étalonnage de la caméra ou la disponibilité d'un modèle corporel 3D associé à des sujets humains utilisés pour la formation ou les tests.

Les auteurs ont généreusement fourni du code et des exemples de jeux de données pour commencer.


Bienvenue sur le site, @caoy. Pourriez-vous fournir un peu d'informations sur le contenu de ce lien? De cette façon, les lecteurs pourraient savoir si cela vaut la peine de poursuivre pour eux, et cela signifierait qu'il y a encore quelque chose de valeur ici en cas de futur linkrot.
gung - Réintégrer Monica

@gung, thx, j'espère que l'abstrait fera le travail.
Yanshuai Cao

@caoy ... Pouvez-vous expliquer la moyenne de la distribution prédictive et la variance des sorties dans les processus gaussiens jumeaux?
Sandipan Karmakar

3

Réponse courte La régression pour la sortie multidimensionnelle est un peu délicate et dans mon niveau actuel de connaissances, elle n'est pas directement intégrée dans la boîte à outils GPML.

Réponse longue Vous pouvez décomposer votre problème de régression de sortie multidimensionnelle en 3 parties différentes.

  1. Les sorties ne sont pas liées les unes aux autres - Il suffit de régresser les sorties individuellement comme le script de démonstration pour le cas 1d.
  2. Les sorties sont liées mais ne connaissent pas la relation entre elles - Vous voudriez essentiellement apprendre les relations internes entre les sorties. Comme le livre le mentionne, le coKriging est une bonne façon de commencer. Il existe des logiciels autres que GPML qui peuvent directement vous permettre d'effectuer un cokrigeage, par exemple. ooDace
  3. Les sorties sont liées et vous connaissez la relation entre elles - Effectuez un cokrigeage régulier, mais vous pouvez appliquer des contraintes strictes entre les sorties soit en appliquant les contraintes dans l'optimiseur (tout en minimisant la probabilité marginale logarithmique) comme l'a dit Hall & Huang 2001 ou appliquer les relations dans la fonction antérieure comme indiqué par Constantinescu & Anitescu 2013 .

J'espère que ça aide :)


2

Ceci est un module de scikit-learn qui a fonctionné étonnamment bien pour moi:

http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gp_regression.html

# Instanciate a Gaussian Process model
gp = GaussianProcess(corr='cubic', theta0=1e-2, thetaL=1e-4, thetaU=1e-1,
                     random_start=100)

# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)

# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, MSE = gp.predict(x, eval_MSE=True)
sigma = np.sqrt(MSE)

1

Je cherchais des processus gaussiens à sorties multiples et j'ai trouvé de nombreuses façons d'agir avec, comme la méthode de convolution, la méthode de modélisation à effets mixtes et le dernier celui-ci Twin Gaussian Processes (TGP).

J'ai un doute sur le concept des processus gaussiens jumeaux (TGP). Quelqu'un peut-il m'aider avec ça?

y^p(y|y)(μ,σ2)σ2yy^y

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.