¿Por qué confiamos en la aleatoriedad de la búsqueda aleatoria en la optimización de hiperparámetros?

Realmente no hay nada en lo que “confiar” en la búsqueda aleatoria. La aleatoriedad (o más bien, la distribución utilizada para muestrear hiperparámetros, como el uniforme para rangos de metaparámetros de valor continuo) es simplemente el mecanismo utilizado para (con suerte) explorar mejor el gran espacio de búsqueda de configuraciones de metaparámetros. El objetivo de la búsqueda aleatoria es evitar realizar una búsqueda exhaustiva normalmente costosa como la búsqueda de cuadrícula y, sin embargo, encontrar combinaciones potencialmente razonables / buenas de hiperparámetros cuando ciertamente hay más que, 2 (como para algunas máquinas de vectores de soporte basadas en el núcleo ) y cuando hay quizás un previo humano pobre sobre qué hiperparámetros / rangos funcionan mejor (utilizo “previo humano” para referirnos a nuestras creencias preexistentes sobre lo que podría funcionar o lo que ha funcionado escrito en la literatura actual).

Me gusta pensar más en la búsqueda aleatoria desde una perspectiva de búsqueda / optimización estocástica: la razón por la que introducimos ruido (o alguna forma de estocasticidad) en el proceso es potencialmente “rebotar” en mínimos locales pobres. Si bien esto se usa más comúnmente para explicar la intuición en la optimización general (como el descenso de gradiente estocástico para actualizar parámetros o aprender modelos basados ​​en la temperatura), podemos pensar en los humanos que miran a través del espacio de metaparámetros como simplemente un problema de optimización de nivel superior . Como la mayoría estaría de acuerdo en que estos espacios dimensionales (razonablemente altos) conducen a una forma no convexa de optimización, los humanos, armados incluso con algunas heurísticas de investigaciones anteriores, podemos quedar atrapados en los óptimos locales (al igual que las redes neuronales que muchos intentan entrenar). ) Explorar al azar el espacio de búsqueda podría darnos una mejor cobertura del espacio general y, lo que es más importante, podría ayudarnos a encontrar mejores óptimas locales.

Ahora tenga en cuenta que ciertamente puede hacer que la búsqueda aleatoria sea “más inteligente”. Para comenzar, puede ejecutar una o dos rondas de búsqueda aleatoria, luego “acercar” los puntos “interesantes” en el espacio de error y continuar buscando en esas regiones de grano más fino. Otra forma podría ser cambiar las distribuciones utilizadas para muestrear los rangos de hiperparámetros (esto podría verse como una codificación de anteriores débiles; por ejemplo, es típico muestrear la tasa de aprendizaje en búsqueda aleatoria usando la distribución uniforme logarítmica). O, simplemente deje que la máquina lo haga por usted … a. Bayesian Optimization 😉 [Todo lo que necesitamos ahora es una máquina diferente para escribir el papel para nosotros …]

Nota: metaparámetro = hiperparámetro = parámetro libre (escribí una respuesta diferente hace mucho tiempo sobre Quora explicando que estos, en la literatura de ML, a menudo se usan de manera intercambiable).

No es que la búsqueda aleatoria sea una estrategia de búsqueda terriblemente eficiente, sino que tiene un estado mínimo. Los rangos del esquema de búsqueda, la función aleatoria, etc. se pueden cambiar sobre la marcha. También es trivial combinar los resultados de múltiples búsquedas de manera efectiva y detener / reanudar la búsqueda sin perder el trabajo o la estructura. Compare con la búsqueda de cuadrícula o cosas como PSO que deben completarse para dar resultados significativos y son algo más difíciles de paralelizar. La búsqueda aleatoria es solo una estrategia muy sólida y práctica. Después de haber explorado el espacio de búsqueda lo suficiente, es práctico realizar una búsqueda más sistemática en la vecindad de los mejores resultados.

No lo hacemos, pero tratamos de usar buenos pseudormandos con una semilla aleatoria (es decir, tiempo unix)