Optimización matemática en una función ruidosa.

10

Sea una función bastante agradable (p. Ej., Continua, diferenciable, no demasiados máximos locales, tal vez cóncavos, etc.). Quiero encontrar un máximo de f : un valor x R d que haga que f ( x ) sea lo más grande posible.f:RdRfxRdf(x)

Si tuviera un procedimiento para evaluar precisión en cualquier entrada de mi elección, podría usar técnicas de optimización matemática estándar : escalada, descenso en gradiente (bueno, ascenso en gradiente), etc. Sin embargo, en mi aplicación no tengo un manera de evaluar f ( x ) exactamente. En cambio, tengo una manera de estimar el valor de f ( x ) .ff(x)f(x)

En particular, dado cualquier cualquier ε , tengo un oráculo que generará una estimación de f ( x ) , y cuyo error esperado es aproximadamente ε . El tiempo de ejecución de esta invocación de oráculo es proporcional a 1 / ε 2 . (Se implementa mediante un tipo de simulación; la precisión de la simulación aumenta con la raíz cuadrada del número de pruebas, y puedo elegir cuántas pruebas ejecutar, para poder elegir la precisión deseada). Entonces esto me da una es una forma de obtener una estimación de la precisión que deseo, pero cuanto más precisa quiera que sea, más tiempo me llevará.xεf(x)ε1/ε2

Dado este ruidoso oráculo para , ¿hay alguna técnica para calcular un máximo de f de la manera más eficiente posible? (O, más precisamente, encontrar un máximo aproximado). ¿Existen variantes de escalada, descenso en pendiente, etc., que funcionen dentro de este modelo?ff

Por supuesto, podría fijar un valor muy pequeño de y aplicar el ascenso de pendientes o el descenso de pendientes con este oráculo, manteniendo el mismo ε en todo momento. Sin embargo, esto podría ser innecesariamente ineficiente: es posible que no necesitemos una estimación tan precisa cerca del comienzo, mientras que la precisión cerca del final cuando se está enfocando en la solución es más importante. Entonces, ¿hay alguna forma de aprovechar mi capacidad para controlar la precisión de mi estimación dinámicamente, para hacer que el proceso de optimización sea más eficiente? ¿Se ha estudiado este tipo de problema antes?εε

DW
fuente
2
Parece un problema de optimización de la tasa para garantizar su propio campo de estudio. ¿Qué pasa con el recocido simulado? ¿Puede adaptar las ideas a partir de ahí: las probabilidades de transición y el programa de temperatura? Hay una conexión allí: a medida que avanza, la temperatura baja y, en su caso, desea que baje. ϵ
randomsurfer_123
cybersynchronicity, se encontró exactamente con este caso recientemente en un programa de GA. coincidió con rs arriba que el recocido simulado donde la precisión de la evaluación de la función coincide aproximadamente con la disminución de la temperatura debería funcionar. Otra idea es hacer un número fijo de muestras en cada punto y tomar el promedio como estimación. una teoría más avanzada solo podría decirle que no puede obtener algo por nada y que no hay un atajo a las evaluaciones que mejore la optimización.
vzn

Respuestas:

4

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

  • Algunas técnicas utilizadas en la optimización estocástica y la optimización robusta pueden ser aplicables.
  • fx0ΔxΔp
  • fx(x~,p~)f(x~,p~)
  • ΔpΔx1/ϵ2
  • El ruido dado contra el tiempo de ejecución es lo que distingue este problema de los problemas mejor estudiados. Los problemas en los que el ruido es inevitable son más comunes y mejor estudiados.
Thomas Klimpel
fuente
f(x,p)f(x+Δx,Δp)pp=0f) La optimización estocástica y la optimización robusta suenan más o menos como el tipo de cosas que estaba buscando, por lo que es muy útil. Gracias.
DW
p=0f(x,0)f(x+Δx,Δp)ΔxΔp