J'essaye de l'optimisation bayésienne, suivant Snoek, Larochelle et Adams [ http://arxiv.org/pdf/1206.2944.pdf] , en utilisant GPML [ http://www.gaussianprocess.org/gpml/code/matlab / doc /] . J'ai implémenté la fonction d'acquisition Expected Improvement décrite à la page 3, et je suppose que j'ai raison de décider où interroger mon objectif en suivant. qui maximise:
Mais je n'arrive pas à trouver de conseils sur quel ensemble de candidats est à considérer. En théorie, j'aimerais trouver le meilleursur l'ensemble du domaine, et l'article est rédigé de telle manière qu'il semble suggérer que cela est possible ("[EI] a également une forme fermée sous le processus gaussien"). Mais en pratique, je dois calculer les moyennes et les variances prédictives postérieures à tout Je pourrais considérer avant de pouvoir calculer et bien que ces postérieurs aient une forme fermée, j'ai encore besoin de les calculer en utilisant l'algèbre matricielle, donc je ne vois pas de moyen de contourner la cueillette d'un tas de 's.
La question: quelle est une méthode pratique pour choisir le grand (moyen? Petit?) Ensemble de candidatssur laquelle je maximise l'IE (ou toute autre fonction d'acquisition)? (Est-ce quelque part dans le journal et je l'ai juste raté?)
En ce moment, je prends juste mon set actuel , en l'échantillonnant avec remplacement 2000 fois, puis en ajoutant du bruit gaussien à chaque point. Semble bien, je suppose.
la source
Réponses:
La norme est d'utiliser n'importe quel optimiseur global que vous aimez. Le problème est que la surface EI est hautement multimodale et déconnectée; l'optimisation de cette fonction d'acquisition est un problème non trivial en soi.
Un choix courant que j'ai vu dans divers articles est l' algorithme DIRECT ; j'ai parfois vu CMA-ES qui est une méthode de pointe en optimisation non linéaire. D'après mon expérience pour d'autres formes d'optimisation, MCS ( Multi-Level Coordinate Search ) a tendance à fonctionner relativement bien. Vous pouvez trouver un examen des optimiseurs mondiaux sans dérivés ici :
Soit dit en passant, l'IE est analytique, donc si vous le souhaitez, vous pouvez également calculer son gradient pour guider l'optimisation, mais ce n'est pas nécessaire. Une technique efficace consiste à exécuter d'abord un optimiseur global pour trouver des solutions prometteuses, puis à exécuter un optimiseur local pour l'affiner (par exemple, une méthode quasi-Newton telle que BFGS, c'est-à-dire fminunc dans MATLAB; ou fmincon si vous avez des contraintes).
Enfin, si la vitesse d'optimisation de la fonction d'acquisition est un facteur (qui n'est pas le scénario BO "traditionnel"), j'ai trouvé des résultats décents en commençant par un plan Latin Hypercube ou un plan de séquence Sobol quasi aléatoire, puis affiné avec quelques étapes d'un optimiseur local à partir des meilleurs points; voir aussi le commentaire @ user777. Puisque ce n'est pas le scénario BO standard, je n'ai pas de référence spécifique qui utilise réellement cette méthode.
Exemples d'articles faisant référence à DIRECT ou CMA-ES:
Vous pouvez simplement google "Optimisation bayésienne" + l'algorithme d'optimisation globale souhaité, et vous trouverez un tas d'articles. De plus, dans presque tous les autres articles sur BO, vous trouverez une phrase telle que :
la source