Maximiser la fonction bruyante inconnue


10

Je souhaite maximiser une fonction , où θ R p .f(θ)θRp

Le problème est que je ne connais pas la forme analytique de la fonction ou de ses dérivés. La seule chose que je peux faire est d'évaluer la fonction point sage, en branchant une valeur et obtenir une estimation de NOISY f ( θ * ) à ce moment - là. Si je veux, je peux diminuer la variabilité de ces estimations, mais je dois payer des coûts de calcul croissants. θf^(θ)

Voici ce que j'ai essayé jusqu'à présent:

  • Descente la plus raide stochastique avec des différences finies: elle peut fonctionner mais elle nécessite beaucoup de réglages (ex. Séquence de gain, facteur d'échelle) et elle est souvent très instable.

  • Recuit simulé: cela fonctionne et il est fiable, mais il nécessite de nombreuses évaluations de fonctions, donc je l'ai trouvé assez lent.

Je demande donc des suggestions / idées sur une méthode d'optimisation alternative possible qui peut fonctionner dans ces conditions. Je garde le problème aussi général que possible afin d'encourager les suggestions de domaines de recherche différents du mien. Je dois ajouter que je serais très intéressé par une méthode qui pourrait me donner une estimation de la Hesse à la convergence. En effet, je peux l'utiliser pour estimer l'incertitude des paramètres . Sinon, je devrai utiliser des différences finies autour du maximum pour obtenir une estimation.θ


Si vous ne pouvez rien dire de plus spécifique sur le bruit associé à la sortie de votre fonction, je ne suis pas sûr que quelque chose de plus sophistiqué que le recuit simulé (vous devrez même régler cela, dans une certaine mesure), vous sera utile.
Aron Ahmadia

θ

f^(θ)N(f(θ),σ)

On dirait que je suis corrigé par le professeur Neumaier :)
Aron Ahmadia

Ici, les physiciens ont utilisé le CMA-ES pour la mise en forme optique de la phase (optimisation de la phase d'une impulsion laser via un pulseshaper), ce qui est assez bruyant.
tillsten

Réponses:


7

Notre package Matlab SnobFit a été créé précisément à cet effet. Aucune hypothèse sur la distribution du bruit n'est nécessaire. De plus, les valeurs des fonctions peuvent être fournies via des fichiers texte, vous pouvez donc les appliquer aux fonctions implémentées dans n'importe quel système capable d'écrire un fichier texte. Voir
http://www.mat.univie.ac.at/~neum/software/snobfit/

SnobFit a été développé pour une application où la fonction à optimiser n'existait même pas, et les valeurs de fonction (une mesure de la qualité de fabrication) ont été obtenues par un équipement spécialisé et coûteux créant des échantillons de produits et les mesurant à la main, résultant en environ 50 fonctions évaluations par jour.


Merci beaucoup pour votre réponse. J'ai commencé à lire votre article concernant le package SnobFit, et je le trouve vraiment intéressant. De plus, en lisant l'introduction de votre article, j'ai réalisé que le problème que je traite (dans un contexte statistique) est assez fréquent en mathématiques industrielles. Il existe une vaste littérature dont je n'étais pas du tout au courant. En fait, l'approche sur laquelle je travaillais est quelque peu similaire à l'approximation quadratique de Powell (2002).
Jugurtha

Le snobfit fonctionne-t-il bien avec 128 degrés de liberté? Juste pour savoir qu'il vaut la peine d'essayer pour mon cas.
tillsten

@tillsten: Aucune méthode pour les problèmes bruyants ne fonctionne bien avec 128 ddl à moins que vous ne puissiez dépenser un grand nombre de valeurs de fonction. Vous pouvez essayer notre VXQR1, cependant, qui n'est pas pour les problèmes bruyants, mais gère parfois bien les problèmes bruyants.
Arnold Neumaier

La limite pour Snobfit est d'environ 20 variables. si vous en avez plus, vous devez sélectionner par bon sens des groupes de 20 variables que vous optimisez partiellement à leur tour. Ou vous pouvez laisser glisser certaines variables simultanément afin que la dimension soit réduite.
Arnold Neumaier

7

Vous pouvez essayer plusieurs techniques d' optimisation bayésienne . Les plus simples sont basées sur le processus gaussien:

  • Harold J. Kushner. Une nouvelle méthode pour localiser le maximum d'une courbe multipeak arbitraire en présence de bruit. Journal of Basic Engineering, pages 86: 97-106, mars 1964.
  • J. Mockus. L'approche bayésienne de l'optimisation globale. Notes de cours en sciences du contrôle et de l'information, 38: 473–481, 1982.
  • Niranjan Srinivas, Andreas Krause, Sham Kakade et Matthias Seeger. Optimisation du processus gaussien dans le cadre du bandit: Aucun regret et conception expérimentale. Dans Proc. Conférence internationale sur l'apprentissage automatique (ICML), 2010.
  • Andreas Krause, Ajit Singh et Carlos Guestrin. Placements de capteurs quasi-optimaux dans les processus gaussiens: théorie, algorithmes efficaces et études empiriques. J. Mach. Apprendre. Res., 9: 235-284, juin 2008.

Ils opèrent en formant une fonction postérieure sur des fonctions plausibles donnant des observations jusqu'à présent, et suggérant le point suivant pour apprendre rapidement la fonction ainsi que pour trouver les maxima globaux (voir mon article de blog ).

Un autre avantage est que vous pouvez estimer la Hesse aux maxima. Cependant, vous devez spécifier un modèle de bruit.


4

L'algorithme SPSA de James Spall (abréviation de Stochastic Perturbation Simulated Annealing, si je me souviens bien) a été conçu exactement pour ce type de problème. Il a quelques papiers où il l'utilise pour des problèmes comme celui que vous décrivez.


J'ai essayé l'approche de Spall basée sur une version stochastique de la descente la plus abrupte et de Raphson Newton. J'ai essayé le recuit simulé, mais pas la version suggérée par Spall, je devrais l'essayer. Je ne suis pas vraiment enthousiasmé par le recuit simulé, car je ne peux pas obtenir une estimation de la Hesse à la convergence (alors que, par exemple, avec Raphson Newton stochastique, je peux obtenir une approximation de la Hesse "gratuitement").
Jugurtha
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.