63 votos

Optimización práctica de hiperparámetros: Búsqueda aleatoria frente a búsqueda en cuadrícula

Actualmente estoy revisando el de Bengio y el de Bergstra Búsqueda aleatoria para la optimización de hiperparámetros [1] donde los autores afirman que la búsqueda aleatoria es más eficiente que la búsqueda en cuadrícula para lograr un rendimiento aproximadamente igual.

Mi pregunta es: ¿Está la gente aquí de acuerdo con esta afirmación? En mi trabajo he estado utilizando la búsqueda en cuadrícula sobre todo por la falta de herramientas disponibles para realizar búsquedas aleatorias fácilmente.

¿Cuál es la experiencia de las personas que utilizan la búsqueda en cuadrícula frente a la búsqueda aleatoria?

62voto

ssn Puntos 472

La búsqueda aleatoria tiene una probabilidad del 95% de encontrar una combinación de parámetros dentro del 5% óptimo con sólo 60 iteraciones. Además, en comparación con otros métodos, no se atasca en los óptimos locales.

Consulte esta gran entrada del blog de Dato de Alice Zheng, concretamente la sección Algoritmos de ajuste de hiperparámetros .

Me encantan las películas en las que gana el desvalido, y me encanta el aprendizaje automático donde las soluciones simples se muestran sorprendentemente eficaces. Este es el argumento de "Random search for hyperparameter optimización de hiperparámetros" de Bergstra y Bengio. [...] La búsqueda aleatoria no se había tomado muy en serio antes. Esto se debe a que no busca sobre todos los puntos de la cuadrícula, por lo que no puede superar el óptimo encontrado por la de la cuadrícula. Pero entonces llegaron Bergstra y Bengio. Demostraron que, en sorprendentemente muchos casos, la búsqueda aleatoria se desempeña tan bien como la búsqueda en la cuadrícula. En definitiva, probar 60 puntos aleatorios muestreados de la cuadrícula parece ser lo suficientemente bueno.

En retrospectiva, hay una explicación probabilística simple para el resultado: para cualquier distribución sobre un espacio muestral con un máximo, el máximo de 60 observaciones aleatorias se encuentra dentro del 5% superior del verdadero máximo, con un 95% de probabilidad. Puede parecer complicado, pero no lo es. Imaginemos el intervalo del 5% alrededor del máximo real. Ahora imagina que muestreamos puntos de su espacio y vemos si alguno de ellos aterriza dentro de ese máximo. Cada sorteo al azar tiene un 5% de posibilidades de aterrizar en ese intervalo, si extraemos n puntos de forma independiente, entonces la probabilidad de que todos ellos no lleguen al intervalo deseado es $\left(1−0.05\right)^{n}$ . Así que la probabilidad de que al menos uno de ellos de ellos consiga llegar al intervalo es 1 menos esa cantidad. Nosotros queremos al menos un 0,95 de probabilidad de éxito. Para calcular el número de sorteos que necesitamos, basta con resolver n en la ecuación:

$$1−\left(1−0.05\right)^{n}>0.95$$

Obtenemos $n\geqslant60$ . ¡Ta-da!

La moraleja es: si la región casi óptima de hiperparámetros ocupa al menos el 5% de la superficie de la cuadrícula, entonces la búsqueda aleatoria al azar con 60 pruebas encontrará esa región con alta probabilidad.

Puedes mejorar esa posibilidad con un mayor número de pruebas.

En definitiva, si tiene demasiados parámetros que ajustar, la búsqueda en la red puede resultar inviable. Es entonces cuando pruebo la búsqueda aleatoria.

15voto

Dipstick Puntos 4869

Vuelve a mirar el gráfico del documento (Figura 1). Digamos que tiene dos parámetros, con la búsqueda en cuadrícula 3x3 comprueba sólo tres valores diferentes de cada uno de los parámetros (tres filas y tres columnas en el gráfico de la izquierda), mientras que con la búsqueda aleatoria comprueba nueve (!) valores diferentes de cada uno de los parámetros (nueve filas y nueve columnas distintas).

Grid vs random search

Evidentemente, la búsqueda aleatoria, por azar, puede no ser representativa para todo el rango de los parámetros, pero a medida que el tamaño de la muestra crece, las posibilidades de que esto ocurra son cada vez menores.

8voto

user777 Puntos 10934

Si puedes escribir una función para buscar en la cuadrícula, probablemente sea aún más fácil escribir una función para hacer una búsqueda aleatoria porque no tienes que preespecificar y almacenar la cuadrícula por adelantado.

Dejando esto de lado, métodos como LIPO, la optimización por enjambre de partículas y la optimización bayesiana hacen elecciones inteligentes sobre qué hiperparámetros son probablemente mejores, así que si necesitas mantener el número de modelos ajustados a un mínimo absoluto (digamos, porque es caro ajustar un modelo), estas herramientas son opciones prometedoras. También son optimizadores globales, por lo que tienen una alta probabilidad de localizar el máximo global. Algunas de las funciones de adquisición de los métodos BO tienen límites de arrepentimiento demostrables, lo que los hace aún más atractivos.

Puede encontrar más información en estas preguntas:

¿Cuáles son algunas de las desventajas de la optimización bayesiana de hiperparámetros?

Optimización cuando la función de costes es lenta de evaluar

3voto

Metaxal Puntos 173

Por defecto, la búsqueda aleatoria y la búsqueda en cuadrícula son algoritmos terribles, a menos que se cumpla una de las siguientes condiciones.

  • Su problema no tiene una estructura global, por ejemplo, si el problema es multimodal y el número de óptimos locales es enorme
  • Su problema es ruidoso, es decir, la evaluación de la misma solución dos veces conduce a diferentes valores de la función objetivo
  • El presupuesto de llamadas a la función objetivo es muy pequeño en comparación con el número de variables, por ejemplo, inferior a 1x o 10x.
  • El número de variables es muy pequeño, por ejemplo, inferior a 5 (en la práctica).
  • algunas otras condiciones.

La mayoría de la gente afirma que la búsqueda aleatoria es mejor que la búsqueda en cuadrícula. Sin embargo, hay que tener en cuenta que cuando el número total de evaluaciones de la función está predefinido, la búsqueda en cuadrícula dará lugar a una buena cobertura del espacio de búsqueda que no es peor que la búsqueda aleatoria con el mismo presupuesto y la diferencia entre ambas es insignificante, si es que existe. Si se empiezan a añadir algunas suposiciones, por ejemplo, que el problema sea separable o casi separable, entonces se encontrarán argumentos para apoyar la búsqueda en cuadrícula. En general, ambos son comparativamente terribles, salvo en muy pocos casos. Por lo tanto, no hay necesidad de distinguir entre ellos a menos que se consideren algunas suposiciones adicionales sobre el problema.

0voto

ran8 Puntos 149

Encontrar un punto dentro del 95% de los máximos en una topografía 2D con un solo máximo requiere 100%/25 =25%, 6,25%, 1,5625%, o 16 observaciones. Siempre que las cuatro primeras observaciones determinen correctamente en qué cuadrante se encuentra el máximo (extremo). La topografía 1D requiere 100/2= 50, 25, 12,5, 6,25, 3,125 o 5*2. Supongo que la gente que busca múltiples máximos locales lejanos utiliza la búsqueda de una gran cuadrícula inicial y luego la regresión o algún otro método de predicción. Una cuadrícula de 60 observaciones debería tener una observación dentro de 100/60=1,66% de los extremos. Optimización global Wikipedia Sigo pensando que siempre hay un método mejor que el azar.

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