6 votos

¿Algoritmo de minimización de una combinación de parámetros discretos y continuo?

Tengo un problema de minimización en el que los parámetros son una mezcla de números enteros y escalares. Algunos de los números enteros tienen un rango pequeño, alrededor de 0-10 pero otros van en los miles. Para dar un poco de contexto, estos son todos los hiper-parámetros de los algoritmos de aprendizaje automático. En cada iteración para un conjunto dado de parámetros de una serie de CV y/o bootstrap se realizan pruebas para evaluar el mérito del conjunto de parámetros.

Actualmente estoy haciendo esto utilizando el estándar de conservas de minimización de los algoritmos (específicamente Nelder-Mead simplex) y falsificando el entero de las variables continuas haciendo dos iteraciones para cada valor, uno con el piso y el otro en el techo del valor continuo y interpolar linealmente. Es crudo e ineficaz, pero al parece, al menos, 'trabajar' en que el algoritmo converge, eventualmente.

Como se puede imaginar, la función de mérito iteraciones son caros, así que no quiero ser como derrochador ya que este proceso requiere. No sé de una forma estándar de tratar con este tipo de problema, pero no puedo imaginar que no ha sido abordado. Hay bien conocidos algoritmos e implementaciones para este tipo de problema?

3voto

Jaitropmange Puntos 306

Suena como que usted necesita un derivado método libre (ya que parece que usted no puede proporcionar un gradiente en su función objetivo). Supongo que su espacio en el parámetro no está definido, ya que son en la actualidad el uso de Nelder-Mead. No estoy seguro de lo que el software que está utilizando, pero usted debe comprobar fuera de NÓMADAS que se "distribuye libremente bajo la Licencia Pública General Menor GNU." NOMAD identificadores de funciones no lineales de los números enteros y/o variables reales. En R la crs paquete proporciona una interfaz, ver esto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X