Optimisation mathématique sur une fonction bruyante

10

Soit une fonction assez agréable (par exemple, continue, différenciable, pas trop de maxima locaux, peut-être concave, etc.). Je veux trouver un maximum de : une valeur qui rend aussi grand que possible. f x R d f ( x )f:RdRfxRdf(x)

Si j'avais une procédure pour évaluer précisément sur n'importe quelle entrée de mon choix, je pourrais utiliser des techniques standard d' optimisation mathématique : escalade, descente en pente (enfin, montée en gradient), etc. Cependant, dans mon application, je n'ai pas de moyen d'évaluer exactement . Au lieu de cela, j'ai un moyen d'estimer la valeur de .ff ( x )f(x)f(x)

En particulier, étant donné tout et tout , j'ai un oracle qui produira une estimation de , et dont l'erreur attendue est d'environ . Le temps d'exécution de cette invocation Oracle est proportionnel à . (Il est mis en œuvre par une sorte de simulation; la précision de la simulation augmente avec la racine carrée du nombre d'essais, et je peux choisir le nombre d'essais à exécuter, donc je peux choisir la précision souhaitée.) Cela me donne donc une moyen d'obtenir une estimation de la précision que je souhaite, mais plus je veux que l'estimation soit précise, plus cela me prendra de temps.ε f ( x ) ε 1 / ε 2xεf(x)ε1/ε2

Compte tenu de cet oracle bruyant pour , existe-t-il des techniques pour calculer un maximum de aussi efficacement que possible? (Ou, plus précisément, trouver des maxima approximatifs.) Existe-t-il des variantes d'escalade, de descente en pente, etc. qui fonctionnent dans ce modèle?fff

Bien sûr, je pouvais fixer une très petite valeur de et appliquer l'escalade ou la descente en pente avec cet oracle, en gardant le même tout au long. Cependant, cela peut être inutilement inefficace: nous pourrions ne pas avoir besoin d'une estimation aussi précise près du début, tandis que la précision près de la fin lorsque vous vous concentrez sur la solution est plus importante. Existe-t-il un moyen de profiter de ma capacité à contrôler la précision de mon estimation de manière dynamique, pour rendre le processus d'optimisation plus efficace? Ce type de problème a-t-il déjà été étudié?εεε

DW
la source
2
On dirait un problème d'optimisation très tarifaire pour justifier son propre domaine d'étude. Qu'en est-il du recuit simulé? Pouvez-vous adapter les idées à partir de là - les probabilités de transition et le programme de température? Il y a un lien là-bas - au fur et à mesure que vous descendez la température, et dans votre cas, vous voulez que baisse. ϵ
randomsurfer_123
cybersynchronicité, a rencontré exactement ce cas récemment dans un programme GA. d'accord avec rs ci-dessus que le recuit simulé où la précision de l'évaluation de la fonction correspond à peu près à la diminution de la température devrait fonctionner. une autre idée est de simplement faire un nombre fixe d'échantillons à chaque point et de prendre la moyenne comme estimation. une théorie plus avancée pourrait seulement vous dire que vous ne pouvez pas obtenir quelque chose pour rien et qu'il n'y a pas de raccourci vers des évaluations qui améliorent l'optimisation.
vzn

Réponses:

4

f(x,p)f(x+Δx,p+Δp)pΔxΔp

  • Certaines techniques utilisées dans l'optimisation stochastique et l' optimisation robuste pourraient être applicables.
  • fx0ΔxΔp
  • fx(x~,p~)f(x~,p~)
  • ΔpΔx1/ϵ2
  • Le compromis entre le bruit et l'exécution est ce qui distingue ce problème des problèmes mieux étudiés. Les problèmes où le bruit est tout simplement inévitable sont plus courants et mieux étudiés.
Thomas Klimpel
la source
f(x,p)f(x+Δx,Δp)pp=0f). L'optimisation stochastique et l'optimisation robuste ressemblent plus ou moins au genre de choses que je cherchais, donc c'est très utile. Je vous remercie.
DW
p=0f(x,0)f(x+Δx,Δp)ΔxΔp