20 votos

Optimización de hiperparámetros: Búsqueda aleatoria vs Optimización bayesiana

Entonces, sabemos que la búsqueda aleatoria funciona mejor que la búsqueda en cuadrícula, pero un enfoque más reciente es la optimización bayesiana (usando procesos gaussianos). He buscado una comparación entre los dos y no he encontrado nada. Sé que en cs231n de Stanford solo mencionan la búsqueda aleatoria, pero es posible que quisieran mantener las cosas simples.

Mi pregunta es: ¿cuál enfoque es generalmente mejor y si la respuesta es "a veces búsqueda aleatoria, a veces bayesiana" cuándo debo preferir un método sobre el otro?

4 votos

Google ahora está vendiendo sus servicios en la nube de aprendizaje profundo y promocionando una función que ajusta automáticamente sus hiperparámetros con optimización bayesiana... por supuesto, afirmando que es el mejor y también más rápido (buscando en el espacio de hiperparámetros de manera más eficiente). Hay varios documentos por ahí que evalúan BO vs RS, mostrando que BO es apenas un poco mejor. En mi opinión, por lo que he visto, la diferencia es algo que te importaría más en una competencia de Kaggle que en la vida real.

16voto

ChicksDigTrig Puntos 6

Creo que la respuesta aquí es la misma que en cualquier lugar en ciencia de datos: depende de los datos :-)

Puede suceder que un método supere a otro (aquí https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/ la gente compara la optimización bayesiana de hiperparámetros y logra un mejor resultado en el desafío Kaggle de crimen en San Francisco que con la búsqueda aleatoria), sin embargo dudo que haya una regla general para eso. Puedes ver un buen gif aquí (http://blog.revolutionanalytics.com/2016/06/bayesian-optimization-of-machine-learning-models.html) donde la gente muestra el 'camino' que toma la optimización bayesiana en el paisaje de hiperparámetros, en particular, no parece que supere a la búsqueda aleatoria en general...

Creo que la razón por la que la gente tiende a usar la optimización bayesiana de hiperparámetros es que simplemente se necesitan menos pasos de entrenamiento para lograr un resultado comparable en comparación con la búsqueda aleatoria con un número suficientemente alto de experimentos.

Resumiendo en una frase:

*Cuando el tiempo de entrenamiento es crítico, usa la optimización bayesiana de hiperparámetros y si el tiempo no es un problema, elige uno de los dos...*

Por lo general, soy demasiado perezoso para implementar la parte bayesiana con Procesos Gaussianos si puedo lograr el mismo resultado con la búsqueda aleatoria... Simplemente entreno conjuntos de Gradient Boosting en 'pocos' datos, así que para mí, el tiempo no es un problema...

10voto

itdxer Puntos 475

La optimización bayesiana es mejor, porque toma decisiones más inteligentes. Puedes consultar este artículo para aprender más: Optimización de hiperparámetros para redes neuronales. Este artículo también tiene información sobre pros y contras para ambos métodos + algunas técnicas adicionales como la búsqueda en rejilla y los estimadores parzen estructurados en árbol. Aunque fue escrito para mostrar los pros y los contras de diferentes métodos para redes neuronales, el conocimiento principal es generalizable para cualquier otro dominio de aprendizaje automático

3 votos

Solo quería señalar que en tu primera oración, la verdadera razón por la cual la optimización bayesiana es mejor no es porque las decisiones tomadas sean más inteligentes, sino que se trata de decisiones que son tomadas en absoluto.

2voto

aleph_aleph_null Puntos 155

Es importante tener en cuenta que la optimización bayesiana de hiperparámetros es un proceso secuencial, por lo que puede llevar más tiempo que otros enfoques que pueden realizar búsquedas o ser realizados en paralelo.

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