¿Qué es Optuna? Hiperparámetros, enfoque y características

En el aprendizaje automático, los hiperparámetros son los parámetros fijos que se han asignado antes del entrenamiento, no idénticos a otros parámetros de un modelo.

En los algoritmos de aprendizaje profundo, la tasa de aprendizaje, el tamaño del lote y varias iteraciones de entrenamiento se tratan como hiperparámetros. Han consistido en múltiples redes y canales neuronales, y no solo valores numéricos, sino también la implementación de Momentum SGD o Adam mientras el entrenamiento también se conoce como hiperparámetros.

Los hiperparámetros se componen de partes del algoritmo de entrenamiento y caracterizarían la arquitectura de un modelo. Consiste en una canalización mejorada que puede afectar enormemente la eficiencia del modelo.

Abordando la necesidad de este atributo y en términos de analizar algoritmos y modelos tan específicos que necesitan un ajuste preciso, Optuna tiene características que facilitan este problema al regular la configuración de hiperparámetros.

Al tratar con enormes aplicaciones o proyectos de aprendizaje automático, la búsqueda de hiperparámetros es una de las funciones más pesadas. Las ramificaciones de los algoritmos de aprendizaje profundo se están expandiendo junto con su fama, y ​​la estructura de autorregulación del ajuste de hiperparámetros tiene una mayor demanda que antes.

Este artículo analiza qué es Optuna y su uso en el software de optimización de hiperparámetros de próxima generación en el aprendizaje automático.

¿Qué es Optuna?

Optuna es un marco de software de optimización de hiperparámetros automatizado que se inventó a sabiendas para las tareas basadas en el aprendizaje automático. Hace hincapié en una API de usuario de enfoque autoritativo definido por ejecución.

Debido a la API definida por ejecución, el script de código escrito con Optuna conserva una modularidad extrema, y ​​los usuarios de Optuna podrían componer activamente «espacios de búsqueda» para los hiperparámetros.

El software está disponible en el repositorio de GitHub bajo licencia MIT que incluye código Python para estudio de instalación y prueba; este proyecto de GitHub se ha desarrollado para entretener a un grupo de desarrolladores proporcionando algoritmos de última generación, y la API definida por ejecución es adecuada para varias aplicaciones del mundo real.

Optuna es un marco de software para el procedimiento de optimización automatizado de hiperparámetros. Por el hecho conocido, inspecciona e identifica valores óptimos de hiperparámetro a través del método de prueba y error para un rendimiento eficiente y una alta eficiencia.

Optuna surge como un software de optimización de hiperparámetros bajo un nuevo criterio de diseño que se basa en tres ideas fundamentales:

  • API define-by-run que permite a los usuarios construir y manipular espacios de búsqueda de forma dinámica,
  • implementación eficiente que se enfoca en la funcionalidad óptima de estrategias de muestreo así como algoritmos de poda, y
  • de fácil configuración que se enfoca en la versatilidad, es decir, permite optimizar funciones en ambientes livianos así como experimentos a gran escala en ambientes basados ​​en computación distribuida y paralela.

Los criterios sobre los que está diseñado Optuna lo hacen fácil de implementar, flexible y escalable. Debido a la propiedad de escalabilidad de Optuna, la optimización de experimentos a gran escala se puede realizar de manera paralela y distribuida. Optuna es framework agnóstico, es decir, se puede integrar fácilmente con cualquiera de los frameworks de machine learning y deep learning como: PyTorch, Tensorflow, Keras, Scikit-Learn, XGBoost, etc.

¿Qué es un hiperparámetro?

Un hiperparámetro es un parámetro para controlar cómo se comporta un algoritmo de aprendizaje automático. En el aprendizaje profundo, la tasa de aprendizaje, el tamaño del lote y la cantidad de iteraciones de capacitación son hiperparámetros. Los hiperparámetros también incluyen el número de capas y canales de la red neuronal. No son, sin embargo, sólo valores numéricos. Cosas como usar Momentum SGD o Adam en el entrenamiento también se consideran hiperparámetros.

Es casi imposible hacer que un algoritmo de aprendizaje automático haga el trabajo sin ajustar los hiperparámetros. La cantidad de hiperparámetros tiende a ser alta, especialmente en el aprendizaje profundo, y se cree que el rendimiento depende en gran medida de cómo los ajustemos. La mayoría de los investigadores e ingenieros que usan tecnología de aprendizaje profundo ajustan manualmente estos hiperparámetros y dedican una cantidad significativa de su tiempo a hacerlo.

Estrategia Optuna para Optimización

Optuna en general utiliza la siguiente estrategia para encontrar la mejor combinación de hiperparámetros.

Estrategia de prueba

Utiliza un algoritmo de prueba para seleccionar la mejor combinación de parámetros de una lista de todas las combinaciones posibles. Se concentra en áreas donde los hiperparámetros están dando buenos resultados e ignora otros, lo que resulta en un ahorro de tiempo.

Optuna permite construir y manipular espacios de búsqueda de hiperparámetros de forma dinámica. Para muestrear configuraciones desde el espacio de búsqueda, Optuna proporciona dos tipos de fotografías:

  • Muestreo relacional: este tipo de métodos tienen en cuenta información sobre la consecuencia entre los parámetros.
  • Muestreo independiente.

El Estimador de Parzen estructurado en árbol (TPE) es el muestreador predeterminado en Optuna. Utiliza el historial de configuraciones de hiperparámetros evaluados previamente para muestrear las siguientes.

Estrategia de poda

Utiliza una estrategia de poda que verifica constantemente el rendimiento del algoritmo durante el entrenamiento y poda (termina) el entrenamiento para una combinación de hiperparámetros en particular si no está dando buenos resultados. Esto también resulta en un ahorro de tiempo.

Un mecanismo de poda se refiere a la terminación de pruebas poco prometedoras durante la optimización de hiperparámetros. Supervisa periódicamente las curvas de aprendizaje de cada prueba. A continuación, determina los conjuntos de hiperparámetros que no conducirán a un buen resultado y que no deben tenerse en cuenta.

El mecanismo de poda implementado en Optuna se basa en una variante asíncrona del algoritmo de reducción a la mitad sucesiva (SHA). Entendamos la idea general detrás del SHA:

  • Asignar la cantidad mínima de recursos a cada configuración de hiperparámetros disponibles. Los recursos, por ejemplo, es el número de épocas, el número de ejemplos de entrenamiento, la duración del entrenamiento, etc.
  • Evaluar las métricas de rendimiento de todas las configuraciones dentro de los recursos asignados.
  • Manter las configuraciones superiores 1/ η (η – un factor de reducción) con las mejores presiones y descartar el resto.
  • Aumentar la cantidad mínima de recursos por configuración por el factor η y repita hasta que la cantidad de recursos por configuración alcance el máximo.

Pasos para utilizar Optuna

A continuación, enumeramos los pasos que se seguirán con mayor frecuencia para usar optuna.

  • Crear un objetivo función
    • Esta función lógica tendrá para crear un modelo, entrenarlo y evaluarlo en el conjunto de datos de validación. Después de la evaluación, debe devolver un valor único que generalmente es el resultado de la métrica de evaluación (precisión, MSE, etc.) y debe minimizarse/maximizarse.
    • Esta función toma como entrada un solo parámetro que es una instancia de la clase Trial . Este objeto tiene detalles sobre una combinación de hiperparámetros con los que se ejecutará el algoritmo ML.
  • Crear objeto de estudio.
  • Llamar al método de optimización () en Estudio requerirá la función objetivo creada en el primer paso para encontrar la mejor combinación de hiperparámetros. Ejecutará la función objetivo más de una vez dando diferentes instancias de prueba, cada una con diferentes combinaciones de hiperparámetros.

Optuna se basa en el concepto de Estudio y Ensayo.

  • La prueba es una combinación de hiperparámetros que se probará con un algoritmo.
  • El estudio es el proceso de probar diferentes combinaciones de hiperparámetros para encontrar la combinación que da los mejores resultados. El estudio generalmente consta de muchos ensayos.

Características

Veamos la descripción de las características clave de Optuna que definen su funcionamiento:

API definida por ejecución

Define-by-run, en el marco de aprendizaje profundo, permite al usuario ejecutar dinámicamente redes profundas, similar a esta definición, en Optuna, define-by-run implica un marco que permite a los usuarios construir el espacio de búsqueda activamente en el particular de la optimización marco de referencia.

En la API definida por ejecución, los usuarios no necesitan definir todo antes sobre un enfoque de optimización que se puede entender fácilmente con el código real. Optuna codifica la optimización de hiperparámetros en el contexto de un método de maximizar o minimizar funciones objetivas que consideran un grupo de hiperparámetros como entrada y responden como resultado de la puntuación de validación.

Una función objetivo formula el espacio de búsqueda de la arquitectura de la red neuronal en términos del número de capas y el número de unidades ocultas sin depender de variables estáticas definidas externamente.

Optuna describe cada proceso como;

  • Estudio: optimización basada en una función objetivo, y
  • Ensayo: una sola evaluación o ejecución de la función objetivo.

Mecanismo eficiente de muestreo y poda

Normalmente, la rentabilidad del marco de optimización de hiperparámetros se mide a través de la experiencia del enfoque de búsqueda para encontrar los parámetros que se evaluarán y el enfoque de cálculo de eficiencia para calcular los parámetros evaluados a partir de las curvas de aprendizaje e identificar los parámetros que se eliminarán.

La eliminación de senderos desfavorables se expresa como poda o parada anticipada automatizada.

  • El método de muestreo es de dos tipos; el método de muestreo relacional que maneja las interrelaciones entre parámetros y el muestreo independiente que muestrea cada parámetro individualmente donde Optuna es eficiente para ambos métodos de muestreo. Además, Optuna tiene una función que permite a los usuarios implementar su propio método de muestreo personalizado.
  • El algoritmo de poda es crucial para garantizar el factor de «coste» de la rentabilidad, se opera en dos partes: Monitorización regular de los valores objetivos medios y Aplaza los experimentos que no cumplen con las posibilidades predefinidas.
    • En Optuna, el ‘informe API’ es responsable de monitorizar la funcionalidad, y el ‘debería podar API’ está sujeto a fin de eliminar las pruebas desfavorables.
    • Mientras se implementan algoritmos de poda reales en Optuna, las entradas que se proporcionan al algoritmo son la prueba sujeta a poda, la cantidad de pasos, la reducción de componentes, el menor soporte de recursos utilizados para la poda y la tasa de detención mínima anterior requerida.

Sistema escalable y versátil que es fácil de configurar

El criterio final para el software de optimización de próxima generación es un sistema escalable para controlar numerosas tareas, desde la conducción de experimentos pesados ​​que necesitan muchos trabajadores para un nivel de prueba hasta experimentos livianos a través de interfaces interactivas como Jupyter Notebook.

  • El objeto de seguimiento comparte el historial de la evaluación de funciones objetivas a través de la base de datos.
  • Optuna también ofrece a los usuarios modificar el almacenamiento de back-end para cumplir con los requisitos de acuerdo con la función, por ejemplo, los usuarios pueden realizar experimentos en una computadora portátil Jupyter en un dispositivo local sin consumir el tiempo para obtener un sistema de gran ocupación implementado por alguna organización.
  • También ofrece un panel web para la visualización y evaluación de estudios en tiempo real.
  • Optuna implementa una estructura automatizada basada en datos integrada en la memoria para el almacenamiento de back-end cuando no se proporciona ninguna especificación.

¿Por qué PFN implementó Optuna?

¿Por qué se desarrolló Optuna a pesar de que ya existían marcos de trabajo de optimización automática de hiperparámetros como Hyperopt, Spearmint y SMAC?

Cuando se probaron las alternativas existentes, descubrieron que no funcionaban o eran inestables en algunos de nuestros entornos, y que los algoritmos se quedaron atrás con respecto a los avances recientes en la optimización de hiperparámetros. Querían una manera de especificar qué hiperparámetros deben ajustarse dentro del código de Python, en lugar de tener que escribir un código separado para el optimizador.

Conclusión

Optuna respalda significativamente el enfoque de nuevo diseño para el marco de optimización de próxima generación que se adoptará para diseñar marcos en el futuro. Como software de código abierto, Optune se desarrollará como software para la posteridad después de interactuar con la sociedad de código abierto.

Hemos aprendido las principales características clave de Optuna como la API definida por ejecución que permite a los usuarios construir espacios de búsqueda, una combinación de búsqueda eficiente y algoritmo de poda para mejorar la rentabilidad de la optimización y durar la estructura escalable y versátil que permite usuarios a usar marcos para muchas aplicaciones.