Estoy buscando un papel que podría ayudar a dar una guía sobre cómo elegir el hyperparameters profundo de la arquitectura, como los apilados de auto-codificadores o profunda creen redes. Hay un montón de hyperparameters y estoy muy confundida sobre cómo elegir ellos. También mediante la validación cruzada no es una opción ya que la formación realmente tiene un montón de tiempo!
Respuestas
¿Demasiados anuncios?Básicamente, existen cuatro métodos:
- Búsqueda Manual: Usando el conocimiento que tienen sobre el problema supongo parámetros y observar el resultado. Basado en que el resultado de ajustar los parámetros. Repita este proceso hasta encontrar los parámetros que funcionan bien, o de ejecutar fuera de tiempo.
- La cuadrícula de la Búsqueda: Usando el conocimiento que tienen sobre el problema de identificar los rangos para los hyperparameters. A continuación, seleccione varios puntos de los rangos, generalmente distribuidos de manera uniforme. Entrenar la red con cada combinación de parámetros y seleccione la combinación que funciona mejor. Alternativamente, usted puede repetir la búsqueda en una más estrecha de dominio centrado en torno a los parámetros que se comportan mejor.
- Al azar de la Búsqueda: Como cuadrícula de búsqueda utiliza el conocimiento del problema para identificar los rangos para los hyperparameters. Sin embargo, en lugar de recoger los valores de los rangos de una manera metódica, en lugar de seleccionarlos al azar. Repita este proceso hasta encontrar los parámetros que funcionan bien, o utilizar lo que aprende para limitar su búsqueda. En el papel al Azar de Búsqueda para Hyper-Optimización de Parámetros de Dr. Bengio propone que este sea el método de línea de base contra la cual todos los otros métodos de comparación y muestra que tiende a funcionar mejor que los otros métodos.
- Bayesiano de Optimización: el trabajo Más reciente ha sido centrarse en la mejora de estos otros enfoques mediante el uso de la información obtenida a partir de cualquier experimento para decidir cómo ajustar el hyper los parámetros para el siguiente experimento. Un ejemplo de este trabajo sería Práctico Bayesiano de Optimización de Algoritmos de Aprendizaje automático por Adams et al.
Una amplia variedad de métodos que existen. Pueden ser en gran parte con particiones en aleatorio/dirigido por los métodos de búsqueda (como la rejilla de búsqueda o búsqueda al azar) y los métodos directos. Ser conscientes, sin embargo, que todos ellos requieren de pruebas de una cantidad considerable de hyperparameter opciones a menos de que tengas suerte (cientos, al menos, depende del número de parámetros).
En la clase de métodos directos, varios distintos enfoques pueden ser identificados:
- derivado libres de métodos, por ejemplo el Nelder-Mead simple o DIRECTA
- métodos evolutivos, tales como el CMA-ES y enjambres de partículas
- enfoques basados en modelos, por ejemplo, EGO y secuencial de Kriging
Usted puede desear mirar en Optunity, un paquete de Python, que ofrece una variedad de solvers de hyperparameter tuning (todo lo que se menciona a excepción del EGO y de Kriging, por ahora). Optunity estará disponible para MATLAB y R pronto. Descargo de responsabilidad: yo soy el principal promotor de este paquete.
Basado en mi experiencia personal, métodos evolutivos son muy potentes para estos tipos de problemas.
No busque más! Yoshua Bengio publicado uno de mis favoritos de los documentos, uno que recomiendo a todos los nuevos de la máquina de aprendizaje de los ingenieros cuando se inicia el entrenamiento de las redes neuronales: recomendaciones Prácticas para el gradiente basado en la formación de profundas de las arquitecturas. Para obtener su punto de vista sobre hyperparameter giro: incluyendo la tasa de aprendizaje, ritmo de aprendizaje de programación, la detención temprana, minibatch tamaño, el número de capas ocultas, etc., consulte la Sección 3.