Articulo de referencia

estrategia de evolución natural

Las estrategias de evolución natural ( ENE ) son una familia de algoritmos de optimización numérica para problemas de caja negra . Similares en espíritu a las estrategias evolut...

Las estrategias de evolución natural ( ENE ) son una familia de algoritmos de optimización numérica para problemas de caja negra . Similares en espíritu a las estrategias evolutivas , actualizan iterativamente los parámetros (continuos) de una distribución de búsqueda siguiendo el gradiente natural hacia una mayor aptitud esperada.

Método

El procedimiento general es el siguiente: se utiliza la distribución de búsqueda parametrizada para generar un conjunto de puntos de búsqueda, y la función de aptitud se evalúa en cada uno de ellos. Los parámetros de la distribución (que incluyen parámetros de estrategia ) permiten que el algoritmo capture de forma adaptativa la estructura (local) de la función de aptitud. Por ejemplo, en el caso de una distribución gaussiana , esto comprende la media y la matriz de covarianza . A partir de las muestras, NES estima un gradiente de búsqueda sobre los parámetros hacia una mayor aptitud esperada. A continuación, NES realiza un paso de ascenso de gradiente a lo largo del gradiente natural , un método de segundo orden que, a diferencia del gradiente simple, renormaliza la actualización con respecto a la incertidumbre. Este paso es crucial, ya que evita oscilaciones, convergencia prematura y efectos no deseados derivados de una parametrización dada. Todo el proceso se repite hasta que se cumple un criterio de parada.

Todos los miembros de la familia NES operan según los mismos principios. Se diferencian en el tipo de distribución de probabilidad y el método de aproximación del gradiente utilizado. Los distintos espacios de búsqueda requieren distintas distribuciones; por ejemplo, en baja dimensionalidad puede ser muy beneficioso modelar la matriz de covarianza completa. En alta dimensionalidad, en cambio, una alternativa más escalable es limitar la covarianza solo a la diagonal . Además, los espacios de búsqueda altamente multimodales pueden beneficiarse de distribuciones con colas más pesadas (como la de Cauchy , en contraposición a la gaussiana). Una última distinción surge entre las distribuciones en las que podemos calcular analíticamente el gradiente natural y las distribuciones más generales en las que necesitamos estimarlo a partir de muestras.

Gradientes de búsqueda

Dejarθ{\displaystyle \theta }denotan los parámetros de la distribución de búsquedaπ(incógnita|θ){\displaystyle \pi (x\,|\,\theta )}yF(incógnita){\displaystyle f(x)}la función de aptitud evaluada enincógnita{\displaystyle x}NES persigue entonces el objetivo de maximizar la aptitud esperada bajo la distribución de búsqueda.

J(θ)=miθ[F(incógnita)]=F(incógnita)π(incógnita|θ)dincógnita{\displaystyle J(\theta )=\operatorname {E} _{\theta }[f(x)]=\int f(x)\;\pi (x\,|\,\theta )\;dx}

mediante ascenso de gradiente . El gradiente se puede reescribir como

θJ(θ)=θF(incógnita)π(incógnita|θ)dincógnita{\displaystyle \nabla _{\theta }J(\theta )=\nabla _{\theta }\int f(x)\;\pi (x\,|\,\theta )\;dx}
=F(incógnita)θπ(incógnita|θ)dincógnita{\displaystyle =\int f(x)\;\nabla _{\theta }\pi (x\,|\,\theta )\;dx}
=F(incógnita)θπ(incógnita|θ)π(incógnita|θ)π(incógnita|θ)dincógnita{\displaystyle =\int f(x)\;\nabla _{\theta }\pi (x\,|\,\theta )\;{\frac {\pi (x\,|\,\theta )}{\pi (x\,|\,\theta )}}\;dx}
=[F(incógnita)θregistroπ(incógnita|θ)]π(incógnita|θ)dincógnita{\displaystyle =\int {\Big [}f(x)\;\nabla _{\theta }\log \pi (x\,|\,\theta ){\Big ]}\;\pi (x\,|\,\theta )\;dx}
=miθ[F(incógnita)θregistroπ(incógnita|θ)]{\displaystyle =\operatorname {E} _{\theta }\left[f(x)\;\nabla _{\theta }\log \pi (x\,|\,\theta )\right]}

es decir, el valor esperado deF(incógnita){\displaystyle f(x)}veces las derivadas logarítmicas enincógnita{\displaystyle x}En la práctica, es posible utilizar la aproximación de Monte Carlo basada en un número finito deλ{\displaystyle \lambda }muestras

θJ(θ)1λk=1λF(incógnitak)θregistroπ(incógnitak|θ){\displaystyle \nabla _{\theta }J(\theta )\approx {\frac {1}{\lambda }}\sum _{k=1}^{\lambda }f(x_{k})\;\nabla _{\theta }\log \pi (x_{k}\,|\,\theta )}.

Finalmente, los parámetros de la distribución de búsqueda se pueden actualizar iterativamente.

θθ+ηθJ(θ){\displaystyle \theta \leftarrow \theta +\eta \nabla _{\theta }J(\theta )}

ascenso por pendiente natural

En lugar de utilizar el gradiente estocástico simple para las actualizaciones, NES sigue el gradiente natural , que ha demostrado tener numerosas ventajas sobre el gradiente simple ( vainilla ), por ejemplo:

  • La dirección del gradiente es independiente de la parametrización de la distribución de búsqueda.
  • Las magnitudes de las actualizaciones se ajustan automáticamente en función de la incertidumbre, lo que a su vez acelera la convergencia en mesetas y crestas.

La actualización de NES es, por lo tanto,

θθ+ηF1θJ(θ){\displaystyle \theta \leftarrow \theta +\eta \mathbf {F} ^{-1}\nabla _{\theta }J(\theta )},

dóndeF{\displaystyle \mathbf {F} }es la matriz de información de Fisher . La matriz de Fisher a veces se puede calcular con exactitud, de lo contrario se estima a partir de muestras, reutilizando las derivadas logarítmicas.θregistroπ(incógnita|θ){\displaystyle \nabla _{\theta }\log \pi (x|\theta )}.

Moldeado físico

NES utiliza la conformación de aptitud basada en rangos para hacer que el algoritmo sea más robusto e invariante ante transformaciones monótonamente crecientes de la función de aptitud. Para ello, la aptitud de la población se transforma en un conjunto de valores de utilidad .1λ{\displaystyle u_{1}\geq \dots \geq u_{\lambda }}. Dejarincógnitai{\displaystyle x_{i}}denotemos el i -ésimo mejor individuo. Reemplazando la aptitud por la utilidad, la estimación del gradiente se convierte en

θJ(θ)=k=1λkθregistroπ(incógnitak|θ){\displaystyle \nabla _{\theta }J(\theta )=\sum _ {k=1}^{\lambda }u_{k}\;\nabla _{\theta }\log \pi (x_{k}\,|\,\theta )}.

La elección de la función de utilidad es un parámetro libre del algoritmo.

Pseudocódigo

aporte :F,θinorteit{\displaystyle f,\;\;\theta _{init}} 1 repetición 2 pork=1λ{\displaystyle k=1\ldots \lambda }hacer // λ es el tamaño de la población 3. Extraer una muestraincógnitakπ(|θ){\displaystyle x_{k}\sim \pi (\cdot |\theta )} 4 evaluar la aptitudF(incógnitak){\displaystyle f(x_{k})} 5. Calcular las derivadas logarítmicas.θregistroπ(incógnitak|θ){\displaystyle \nabla _{\theta }\log \pi (x_{k}|\theta )} 6 fin 7. Asignar los servicios públicosk{\displaystyle u_{k}}// basado en el rango 8 estimar la pendienteθJ1λk=1λkθregistroπ(incógnitak|θ){\displaystyle \nabla _{\theta }J\leftarrow {\frac {1}{\lambda }}\sum _{k=1}^{\lambda }u_{k}\cdot \nabla _{\theta }\log \pi (x_{k}|\theta )} 9 estimaciónF1λk=1λθregistroπ(incógnitak|θ)θregistroπ(incógnitak|θ){\displaystyle \mathbf {F} \leftarrow {\frac {1}{\lambda }}\sum _{k=1}^{\lambda }\nabla _{\theta }\log \pi (x_{k}|\theta )\nabla _{\theta }\log \pi (x_{k}|\theta )^{\top }}// o calcularlo exactamente 10 parámetros de actualizaciónθθ+ηF1θJ{\displaystyle \theta \leftarrow \theta +\eta \cdot \mathbf {F} ^{-1}\nabla _ {\theta }J}// η es la tasa de aprendizaje 11 hasta que se cumpla el criterio de parada

Véase también

Bibliografía

  • D. Wierstra, T. Schaul, J. Peters y J. Schmidhuber (2008). Estrategias de evolución natural . Congreso IEEE sobre Computación Evolutiva (CEC).
  • Y. Sun, D. Wierstra, T. Schaul y J. Schmidhuber (2009). Búsqueda estocástica mediante el gradiente natural . Conferencia Internacional sobre Aprendizaje Automático (ICML).
  • T. Glasmachers, T. Schaul, Y. Sun, D. Wierstra y J. Schmidhuber (2010). Estrategias de evolución natural exponencial . Conferencia de Computación Genética y Evolutiva (GECCO).
  • T. Schaul, T. Glasmachers y J. Schmidhuber (2011). Altas dimensiones y colas pesadas para estrategias de evolución natural . Conferencia de Computación Genética y Evolutiva (GECCO).
  • T. Schaul (2012). Las estrategias de evolución natural convergen en funciones esféricas . Conferencia de Computación Genética y Evolutiva (GECCO).
  • Colección de implementaciones de NES en diferentes lenguajes