J'ai téléchargé le code GPML Matlab le plus récent Code GPML Matlab et j'ai lu la documentation et exécuté la démonstration de régression sans aucun problème. Cependant, j'ai du mal à comprendre comment l'appliquer à un problème de régression auquel je suis confronté.
Le problème de régression est défini comme suit:
Soit un vecteur d'entrée et sa cible correspondante. L'ensemble des entrées est organisé en une matrice et leurs cibles correspondantes sont stockées dans une matrice , avec étant la valeur cible moyenne dans .
Je souhaite former un modèle GPR utilisant la fonction exponentielle au carré:
,
où est égal à si et sinon. Les hyperparamètres sont avec étant le niveau de bruit supposé dans les données d'entraînement et est l'échelle de longueur.
Pour former le modèle, je dois minimiser la probabilité marginale logarithmique négative par rapport aux hyperparamètres:
où c est une constante et la matrice est une fonction des hyperparamètres (voir équation k (xi, xj) = ...).
Sur la base de la démo donnée sur le site Web GPML, ma tentative d'implémenter cela en utilisant le code GPML Matlab est ci-dessous.
covfunc = @covSEiso;
likfunc = @likGauss;
sn = 0.1;
hyp.lik = log(sn);
hyp2.cov = [0;0];
hyp2.lik = log(0.1);
hyp2 = minimize(hyp2, @gp, -100, @infExact, [], covfunc, likfunc, X1, Y1(:, n));
exp(hyp2.lik)
nlml2 = gp(hyp2, @infExact, [], covfunc, likfunc, X1, Y1(:, n));
[m s2] = gp(hyp2, @infExact, [], covfunc, likfunc, X1, Y1(:, n), X2);
Y2r(:, n) = m;
X1 contient les entrées de formation
X2 contient les entrées de test
Y1 contient les objectifs d'entraînement
Y2r sont les estimations de l'application du modèle
n est l'indice utilisé pour régresser chaque élément du vecteur de sortie
Étant donné le problème, est-ce la bonne façon de former et d'appliquer le modèle GPR? Sinon, que dois-je changer?
covfunc = { 'covSum', { 'covSEiso' } }
je ne vois pas très bien comment cela prend en charge les données bruyantes maintenant, il semble que la boîte à outils a beaucoup changé depuis ma dernière utilisation, j'y reviendrai de plus près .Je pense que le problème peut être dû à une mauvaise spécification du modèle. Si vos cibles sont des angles enveloppés à + -180 degrés, alors le "processus de bruit" pour vos données peut être suffisamment non guassien pour que les preuves baysiennes ne soient pas un bon moyen d'optimiser les hyper-paramètres. Par exemple, réfléchissez à ce qui se passe lorsque le «bruit» fait boucler le signal. Dans ce cas, il peut être judicieux d'effectuer une sélection de modèle en minimisant l'erreur de validation croisée (il existe une implémentation du domaine public de la méthode Nelder-Mead simplex icisi vous ne disposez pas de la boîte à outils d'optimisation). L'estimation de la validation croisée des performances n'est pas aussi sensible aux erreurs de spécification du modèle qu'elle est une estimation directe des performances des tests, tandis que la probabilité marginale du modèle est la preuve à l'appui du modèle étant donné que les hypothèses du modèle sont correctes. Voir la discussion commençant à la page 123 du livre de Rasmussen et Williams.
Une autre approche serait de recoder les sorties afin qu'un modèle de bruit gaussien soit plus approprié. Une chose que vous pourriez faire est une certaine forme de réduction de la dimensionnalité non supervisée, car il existe des relations non linéaires entre vos cibles (car il n'y a qu'une manière limitée dans laquelle un corps peut se déplacer), il y aura donc une variété de dimension inférieure que votre les cibles continuent de vivre, et il serait préférable de régresser les coordonnées de cette variété plutôt que les angles eux-mêmes (il peut y avoir aussi moins de cibles de cette façon).
Une analyse de Procrustes pourrait également être une bonne idée pour normaliser les différences entre les sujets avant de former le modèle.
Vous trouverez peut-être certains des travaux effectués par Neil Lawrence sur le rétablissement de la pose humaine. Je me souviens avoir vu une démonstration de cela lors d'une conférence il y a quelques années et j'ai été très impressionné.
la source