Un enfoque científico para mejorar el rendimiento del modelo

A los fines de este documento:

El objetivo final del desarrollo del aprendizaje automático es maximizar la utilidad del modelo implementado.

Por lo general, puedes usar los mismos pasos y principios básicos de esta sección en cualquier problema de AA.

En esta sección, se realizan las siguientes suposiciones:

  • Ya tienes una canalización de entrenamiento en ejecución junto con una configuración que obtiene un resultado razonable.
  • Tienes suficientes recursos de procesamiento para realizar experimentos de ajuste significativos y ejecutar al menos varios trabajos de entrenamiento en paralelo.

La estrategia de ajuste incremental

Recomendación: Comienza con una configuración simple. Luego, realiza mejoras de forma incremental a medida que obtienes estadísticas sobre el problema. Asegúrate de que las mejoras se basen en evidencia sólida.

Suponemos que tu objetivo es encontrar una configuración que maximice el rendimiento de tu modelo. A veces, tu objetivo es maximizar la mejora del modelo antes de un plazo fijo. En otros casos, puedes seguir mejorando el modelo de forma indefinida; por ejemplo, mejorar continuamente un modelo que se usa en producción.

En principio, puedes maximizar el rendimiento mediante un algoritmo para buscar de forma automática en todo el espacio de configuraciones posibles, pero esta no es una opción práctica. El espacio de configuraciones posibles es extremadamente grande y todavía no hay algoritmos lo suficientemente sofisticados para buscar este espacio de manera eficiente sin orientación humana. La mayoría de los algoritmos de búsqueda automática dependen de un espacio de búsqueda diseñado a mano que define el conjunto de parámetros de configuración en los que se debe buscar. Estos espacios de búsqueda pueden ser bastante importantes.

La forma más eficaz de maximizar el rendimiento es comenzar con una configuración simple y agregar funciones de forma incremental y realizar mejoras mientras se generan estadísticas sobre el problema.

Te recomendamos que uses algoritmos de búsqueda automatizados en cada ronda de ajuste y que actualices los espacios de búsqueda de forma continua a medida que aumente tu comprensión. A medida que explores, naturalmente, encontrarás mejores y mejores configuraciones, por lo que tu modelo “mejor” mejorará continuamente.

El término "lanzamiento" hace referencia a una actualización de nuestra mejor configuración (que puede corresponder o no a un lanzamiento real de un modelo de producción). Para cada “lanzamiento”, debes asegurarte de que el cambio se base en evidencia sólida, no solo en probabilidades aleatorias y en una configuración de la suerte, de modo que no agregues complejidad innecesaria a la canalización de entrenamiento.

En un nivel alto, nuestra estrategia de ajuste incremental implica repetir los siguientes cuatro pasos:

  1. Elija un objetivo para la próxima ronda de experimentos. Asegúrate de que el objetivo tenga un alcance adecuado.
  2. Diseña la próxima ronda de experimentos. Diseñe y ejecute un conjunto de experimentos que avancen para lograr este objetivo.
  3. Obtenga información de los resultados experimentales. Evalúe el experimento con una lista de tareas.
  4. Determine si adoptar el cambio de candidato.

En el resto de esta sección, se detalla esta estrategia.

Elige un objetivo para la próxima ronda de experimentos

Si intentas agregar varios atributos o responder varias preguntas a la vez, es posible que no puedas desenredar los efectos separados en los resultados. Estos son algunos ejemplos de objetivos:

  • Prueba una mejora potencial en la canalización (por ejemplo, un regularizador nuevo, una opción de procesamiento previo, etcétera).
  • Comprender el impacto de un hiperparámetro de modelo (por ejemplo, la función de activación)
  • Minimizar el error de validación

Prioriza el progreso a largo plazo por sobre las mejoras en los errores de validación a corto plazo

Resumen: La mayoría de las veces, tu objetivo principal es obtener estadísticas sobre el problema de ajuste.

Te recomendamos dedicar la mayor parte de tu tiempo a obtener estadísticas sobre el problema y, en comparación, dedicar un poco de atención a maximizar el rendimiento en el conjunto de validación. En otras palabras, dedica la mayor parte de tu tiempo a la "exploración" y solo una pequeña cantidad a la "explotación". Comprender el problema es fundamental para maximizar el rendimiento final. Priorizar las estadísticas sobre las ganancias a corto plazo ayuda a lograr lo siguiente:

  • Evita lanzar cambios innecesarios que estuvieran presentes en ejecuciones con buen rendimiento solo por accidente histórico.
  • Identifica los hiperparámetros con los que es más sensible el error de validación, qué hiperparámetros interactúan más y, por lo tanto, se deben volver a ajustar juntos y qué hiperparámetros son relativamente insensibles a otros cambios y, por lo tanto, se pueden corregir en experimentos futuros.
  • Sugiere nuevas funciones potenciales para probar, como los reguladores nuevos cuando el sobreajuste es un problema.
  • Identifica funciones que no sean útiles y, por lo tanto, que se puedan quitar, lo que reduce la complejidad de los experimentos futuros.
  • Reconocer cuándo se saturaron las mejoras del ajuste de hiperparámetros.
  • Restringir nuestros espacios de búsqueda alrededor del valor óptimo para mejorar la eficiencia del ajuste

Con el tiempo, comprenderá el problema. Luego, puedes enfocarte exclusivamente en el error de validación, incluso si los experimentos no proporcionan la información máxima sobre la estructura del problema de ajuste.

Diseñe la próxima ronda de experimentos

Resumen: Identifica qué hiperparámetros son científicos, hiperparámetros y fijos para el objetivo experimental. Crea una secuencia de estudios para comparar diferentes valores de los hiperparámetros científicos mientras optimizas sobre los molestos hiperparámetros. Elige el espacio de búsqueda de hiperparámetros hiperparámetros para equilibrar los costos de los recursos con el valor científico.

Identificar hiperparámetros científicos, molestos y fijos

Para un objetivo determinado, todos los hiperparámetros se clasifican en una de las siguientes categorías:

  • Los hiperparámetros científicos son aquellos cuyo efecto en el rendimiento del modelo es lo que se intenta medir.
  • Los hiperparámetros sencillos son aquellos que se deben optimizar para comparar de manera justa diferentes valores de los hiperparámetros científicos. Los hiperparámetros molestos son similares a los parámetros molestos en las estadísticas.
  • Los hiperparámetros fijos tienen valores constantes en la ronda actual de experimentos. Los valores de los hiperparámetros fijos no deben cambiar cuando se comparan diferentes valores de los hiperparámetros científicos. Si corriges algunos hiperparámetros de un conjunto de experimentos, debes aceptar que las conclusiones derivadas de los experimentos podrían no ser válidas para otros parámetros de los hiperparámetros fijos. En otras palabras, los hiperparámetros fijos crean advertencias para las conclusiones que saquen de los experimentos.

Por ejemplo, supongamos que su objetivo es el siguiente:

Determina si un modelo con más capas ocultas tiene un error de validación menor.

En este caso, ocurre lo siguiente:

  • La tasa de aprendizaje es un hiperparámetro, ya que solo puedes comparar modelos con diferentes cantidades de capas ocultas de manera justa si la tasa de aprendizaje se ajusta por separado para cada cantidad de capas ocultas. (la tasa de aprendizaje óptima generalmente depende de la arquitectura del modelo)
  • La función de activación podría ser un hiperparámetro fijo si determinaste en experimentos anteriores que la mejor función de activación no es sensible a la profundidad del modelo. También puedes limitar tus conclusiones sobre la cantidad de capas ocultas para cubrir esta función de activación. Como alternativa, podría ser un hiperparámetro si se quiere ajustar por separado cada cantidad de capas ocultas.

Un hiperparámetro en particular puede ser un hiperparámetro científico, un hiperparámetro o un hiperparámetro; la designación del hiperparámetro cambia según el objetivo experimental. Por ejemplo, la función de activación podría ser cualquiera de las siguientes:

  • Hiperparámetro científico: ¿Es ReLU o tanh una mejor opción para nuestro problema?
  • Hiperparámetro hiperparámetros: ¿el mejor modelo de cinco capas es mejor que el mejor modelo de seis capas cuando permites varias funciones de activación posibles?
  • Hiperparámetro: Para las redes ReLU, ¿agregar la normalización por lotes en una posición particular es útil?

Cuando diseñe una nueva ronda de experimentos, haga lo siguiente:

  1. Identificar los hiperparámetros científicos para el objetivo experimental (en esta etapa, puedes considerar que todos los demás hiperparámetros son hiperparámetros molestos).
  2. Convertir algunos hiperparámetros molestos en hiperparámetros fijos

Con recursos ilimitados, dejarías todos los hiperparámetros no científicos como hiperparámetros molestos, de modo que las conclusiones que obtengas de tus experimentos no contengan advertencias sobre los valores de hiperparámetros fijos. Sin embargo, cuantos más hiperparámetros molestos intentes ajustar, mayor será el riesgo de no ajustarlos lo suficientemente bien para cada configuración de los hiperparámetros científicos y terminar arribando las conclusiones incorrectas de tus experimentos. Como se describe en una sección posterior, puedes contrarrestar este riesgo si aumentas el presupuesto de procesamiento. Sin embargo, tu presupuesto máximo de recursos suele ser menor de lo que se necesitaría para ajustar todos los hiperparámetros no científicos.

Recomendamos convertir un hiperparámetro en un hiperparámetro fijo cuando las advertencias que se implementan cuando se corrigen son menos difíciles que el costo de incluirlo como un hiperparámetro molestiado. Cuanto más interactúe el hiperparámetro molesto con los hiperparámetros científicos, más perjudicial será su valor. Por ejemplo, el mejor valor de la resistencia de la disminución de peso suele depender del tamaño del modelo, por lo que comparar diferentes tamaños de modelo suponiendo que un solo valor específico de la disminución de peso no sería muy útil.

Algunos parámetros del optimizador

Como regla general, algunos hiperparámetros del optimizador (p.ej., la tasa de aprendizaje, el momento, los parámetros del programa de la tasa de aprendizaje, los beta de Adam, etc.) son hiperparámetros molestos porque tienden a interactuar más con otros cambios. Estos hiperparámetros de optimizador rara vez son hiperparámetros científicos porque un objetivo como “¿cuál es la mejor tasa de aprendizaje para la canalización actual?” no proporciona mucha información. Después de todo, el mejor parámetro de configuración podría cambiar con el siguiente cambio de canalización de todos modos.

Es posible que, en ocasiones, corrijas algunos hiperparámetros del optimizador debido a restricciones de recursos o a evidencia particularmente sólida de que no interactúan con los parámetros científicos. Sin embargo, por lo general, debes suponer que debes ajustar los hiperparámetros del optimizador por separado para realizar comparaciones justas entre diferentes parámetros de configuración de los hiperparámetros científicos y, por lo tanto, no debes corregirlos. Además, no existe una razón para priorizar un valor de hiperparámetro de optimizador en lugar de otro; por ejemplo, los valores de hiperparámetros del optimizador no suelen afectar el costo de procesamiento de los pases o gradientes de ninguna manera.

La elección del optimizador

Por lo general, la opción del optimizador es la siguiente:

  • un hiperparámetro científico
  • un hiperparámetro fijo

Un optimizador es un hiperparámetro científico si tu objetivo experimental implica realizar comparaciones justas entre dos o más optimizadores diferentes. Por ejemplo:

Determina qué optimizador produce el error de validación más bajo en una cantidad determinada de pasos.

Como alternativa, puedes hacer que el optimizador sea un hiperparámetro fijo por varios motivos, como los siguientes:

  • Los experimentos anteriores sugieren que el mejor optimizador para el problema de ajuste no es sensible a los hiperparámetros científicos actuales.
  • Prefieres comparar valores de los hiperparámetros científicos con este optimizador, ya que sus curvas de entrenamiento son más fáciles de razonar.
  • Prefieres usar este optimizador porque usa menos memoria que las alternativas.

Hiperparámetros de regularización

Los hiperparámetros que ingresa una técnica de regularización suelen ser hiperparámetros. Sin embargo, elegir o no incluir la técnica de regularización es un hiperparámetro científico o fijo.

Por ejemplo, la regularización de retirados agrega complejidad al código. Por lo tanto, cuando decidas si quieres incluir la regularización de retirados, podrías convertir “no retira” y “abandonar” un hiperparámetro científico, pero la tasa de abandono es un hiperparámetro molesto. Si decides agregar regularización de retirados a la canalización basada en este experimento, la tasa de abandono sería un hiperparámetro molesto en experimentos futuros.

Hiperparámetros arquitectónicos

Los hiperparámetros arquitectónicos suelen ser hiperparámetros científicos o fijos, ya que los cambios en la arquitectura pueden afectar los costos de entrega y entrenamiento, la latencia y los requisitos de memoria. Por ejemplo, la cantidad de capas suele ser un hiperparámetro científico o fijo, ya que tiende a tener consecuencias dramáticas para la velocidad de entrenamiento y el uso de memoria.

Dependencias de hiperparámetros científicos

En algunos casos, los conjuntos de hiperparámetros fijos y molestos dependen de los valores de los hiperparámetros científicos. Por ejemplo, supongamos que estás tratando de determinar qué optimizador en Nesterov momentum y Adam produce en el error de validación más bajo. En este caso, ocurre lo siguiente:

  • El hiperparámetro científico es el optimizador, que toma valores {"Nesterov_momentum", "Adam"}
  • El valor optimizer="Nesterov_momentum" presenta los hiperparámetros {learning_rate, momentum}, que pueden ser hiperparámetros fijos o fijos.
  • El valor optimizer="Adam" presenta los hiperparámetros {learning_rate, beta1, beta2, epsilon}, que pueden ser hiperparámetros fijos o fijos.

Los hiperparámetros que solo están presentes para ciertos valores de los hiperparámetros científicos se denominan hiperparámetros condicionales. No supongas que dos hiperparámetros condicionales son iguales solo porque tienen el mismo nombre. En el ejemplo anterior, el hiperparámetro condicional llamado learning_rate es un hiperparámetro diferente para optimizer="Nesterov_momentum" y para optimizer="Adam". Su función es similar (aunque no idéntica) en los dos algoritmos, pero el rango de valores que funciona bien en cada uno de los optimizadores suele ser diferente en varios órdenes de magnitud.

Crear un conjunto de estudios

Después de identificar los hiperparámetros científicos y molestos, debes diseñar un estudio o una secuencia de estudios para progresar hacia el objetivo experimental. Un estudio especifica un conjunto de configuraciones de hiperparámetros que se ejecutarán para su análisis posterior. Cada configuración se denomina prueba. Por lo general, la creación de un estudio implica elegir lo siguiente:

  • Los hiperparámetros que varían entre las pruebas
  • Los valores que pueden tomar esos hiperparámetros (el espacio de búsqueda).
  • La cantidad de pruebas.
  • Algoritmo de búsqueda automática para muestrear muchas pruebas del espacio de búsqueda.

Como alternativa, puedes crear un estudio si especificas el conjunto de parámetros de configuración de los hiperparámetros de forma manual.

El objetivo de los estudios es el siguiente:

  • Ejecutar la canalización con diferentes valores de los hiperparámetros científicos
  • “Optimizar” (o “optimizar)” en los hiperparámetros hiperparámetros de modo que las comparaciones entre diferentes valores de los hiperparámetros científicos sean lo más justas posible

En el caso más simple, se debería realizar un estudio por separado para cada configuración de los parámetros científicos, en el que cada estudio se ajusta a los hiperparámetros molestos. Por ejemplo, si tu objetivo es seleccionar el mejor optimizador entre el dinamismo de Nesterov y Adam, puedes crear dos estudios:

  • Un estudio en el que optimizer="Nesterov_momentum" y los hiperparámetros molestos son {learning_rate, momentum}
  • Otro estudio en el que optimizer="Adam" y los hiperparámetros molestos son {learning_rate, beta1, beta2, epsilon}.

Para comparar los dos optimizadores, selecciona la prueba con el mejor rendimiento de cada estudio.

Puedes usar cualquier algoritmo de optimización sin gradientes, incluidos métodos como la optimización bayesiana o algoritmos evolutivos, para optimizar los hiperparámetros molestos. Sin embargo, preferimos usar la búsqueda cuasialeatoria en la fase de exploración del ajuste debido a una variedad de ventajas que tiene en esta configuración. Una vez que concluye la exploración, recomendamos utilizar software de optimización bayesiana de última generación (si está disponible).

Considera un caso más complicado en el que deseas comparar una gran cantidad de valores de hiperparámetros, pero es poco práctico hacer tantos estudios independientes. En este caso, puede hacer lo siguiente:

  • Incluye los parámetros científicos en el mismo espacio de búsqueda que los hiperparámetros hiperparámetros.
  • Usar un algoritmo de búsqueda para obtener una muestra de los valores de los hiperparámetros científicos y molestos en un solo estudio

Cuando se adopta este enfoque, los hiperparámetros condicionales pueden causar problemas. Después de todo, es difícil especificar un espacio de búsqueda, a menos que el conjunto de hiperparámetros complejos sea el mismo para todos los valores de los hiperparámetros científicos. En este caso, nuestra preferencia de usar la búsqueda cuasialeatoria en lugar de las herramientas de optimización de caja negra más sofisticadas es aún más sólida, ya que garantiza que se muestren muestras uniformes de diferentes valores de los hiperparámetros científicos. Sin importar el algoritmo de búsqueda, asegúrate de que realice búsquedas en los parámetros científicos de manera uniforme.

Logre un equilibrio entre los experimentos informativos y los asequibles

Cuando diseñes un estudio o una secuencia de estudios, asigna un presupuesto limitado para lograr de forma adecuada los siguientes tres objetivos:

  • Comparar suficientes valores diferentes de los hiperparámetros científicos
  • Ajustar los hiperparámetros molestos en un espacio de búsqueda lo suficientemente grande
  • Muestreo suficiente del espacio de búsqueda de hiperparámetros molestos de manera densa

Cuanto mejor logres estos tres objetivos, más estadísticas podrás extraer del experimento. Comparar la mayor cantidad posible de valores e informes de hiperparámetros científicos aumenta el alcance de las estadísticas que obtienes del experimento.

Incluir la mayor cantidad posible de hiperparámetros molestos y permitir que cada hiperparámetro varie con el mayor rango posible aumenta la confianza de que existe un valor "bueno" de los hiperparámetros molestos en el espacio de búsqueda para cada configuración de los hiperparámetros científicos. De lo contrario, puedes realizar comparaciones injustas entre los valores de los hiperparámetros científicos si no buscas posibles regiones del espacio de hiperparámetros molestos en los que podrían encontrarse valores más altos para algunos valores de los parámetros científicos.

Realiza un muestreo del espacio de búsqueda de los hiperparámetros molestos con la mayor densidad posible. Esto aumenta la confianza de que el procedimiento de búsqueda encontrará cualquier configuración adecuada para los molestos hiperparámetros que existen en tu espacio de búsqueda. De lo contrario, puedes realizar comparaciones injustas entre los valores de los parámetros científicos debido a que algunos valores tendrán más suerte con el muestreo de los hiperparámetros molestos.

Lamentablemente, las mejoras en cualquiera de estas tres dimensiones requieren alguna de las siguientes:

  • Aumentar la cantidad de pruebas y, por lo tanto, aumentar el costo de los recursos.
  • Encontrar una forma de ahorrar recursos en una de las otras dimensiones

Cada problema tiene sus propias idiosincrasias y restricciones de procesamiento, por lo que la asignación de recursos en estos tres objetivos requiere cierto nivel de conocimiento del dominio. Después de ejecutar un estudio, siempre intenta tener una idea de si el estudio ajustó lo suficiente los hiperparámetros molestos. Es decir, el estudio buscó un espacio lo suficientemente grande como para comparar de manera justa los hiperparámetros científicos (como se describe en mayor detalle en la siguiente sección).

Aprende de los resultados experimentales

Recomendación: Además de intentar alcanzar el objetivo científico original de cada grupo de experimentos, revisa una lista de tareas de preguntas adicionales. Si descubre problemas, revise y vuelva a ejecutar los experimentos.

En última instancia, cada grupo de experimentos tiene un objetivo específico. Debe evaluar las pruebas que proporcionan los experimentos para lograr ese objetivo. Sin embargo, si haces las preguntas correctas, a menudo puedes encontrar problemas para corregir antes de que un conjunto determinado de experimentos pueda avanzar hacia su objetivo original. Si no haces estas preguntas, puedes sacar conclusiones incorrectas.

Dado que la ejecución de experimentos puede ser costosa, también debes extraer otras estadísticas útiles de cada grupo de experimentos, incluso si estas estadísticas no son inmediatamente relevantes para el objetivo actual.

Antes de analizar un conjunto determinado de experimentos para progresar hacia su objetivo original, hazte las siguientes preguntas adicionales:

  • ¿El espacio de búsqueda es lo suficientemente grande? Si el punto óptimo de un estudio se encuentra cerca del límite del espacio de búsqueda en una o más dimensiones, es probable que la búsqueda no sea lo suficientemente amplia. En este caso, ejecuta otro estudio con un espacio de búsqueda expandido.
  • ¿Usaste suficientes muestras en el espacio de búsqueda? De lo contrario, ejecuta más puntos o sé menos ambicioso en cuanto a los objetivos de ajuste.
  • ¿Qué fracción de las pruebas de cada estudio es inviable? Es decir, ¿qué ensayos divergen, obtienen valores de pérdida realmente deficientes o no se ejecutan en absoluto porque infringen alguna restricción implícita? Cuando una fracción muy grande de puntos en un estudio sea inviable, ajusta el espacio de búsqueda para evitar el muestreo de esos puntos, que a veces requiere volver a parametrizar el espacio de búsqueda. En algunos casos, una gran cantidad de puntos inviables puede indicar un error en el código de entrenamiento.
  • ¿El modelo presenta problemas de optimización?
  • ¿Qué puedes aprender de las curvas de entrenamiento de las mejores pruebas? Por ejemplo, ¿las mejores pruebas tienen curvas de entrenamiento coherentes con el sobreajuste problemático?

Si es necesario, en función de las respuestas a las preguntas anteriores, defina mejor el estudio o grupo de estudios más reciente para mejorar el espacio de búsqueda o muestrear más pruebas, o realice alguna otra acción correctiva.

Una vez que hayas respondido las preguntas anteriores, puedes evaluar la evidencia que proporcionan los experimentos para alcanzar tu objetivo original. Por ejemplo, evalúa si un cambio es útil.

Un espacio de búsqueda es sospechoso si el mejor punto de muestreo se encuentra cerca de su límite. Es posible que encuentres un punto aún mejor si expandes el rango de búsqueda en esa dirección.

Para verificar los límites del espacio de búsqueda, recomendamos trazar las pruebas completadas en lo que llamamos trazados básicos del eje de hiperparámetros. En estos, representamos el valor del objetivo de validación en comparación con uno de los hiperparámetros (por ejemplo, tasa de aprendizaje). Cada punto del trazado corresponde a una sola prueba.

Por lo general, el valor del objetivo de validación para cada prueba debe ser el mejor que se logró durante el entrenamiento.

Gráfico del porcentaje de errores en el conjunto de validación (eje y) comparado con la tasa de aprendizaje máxima (eje x) que demuestra límites de espacio de búsqueda deficiente. En este gráfico, las mejores pruebas (las tasas de error más bajas) se encuentran cerca del límite del espacio de búsqueda, donde la tasa de aprendizaje máxima es la más alta. Gráfico del porcentaje de errores en el conjunto de validación (eje y) en comparación con la tasa de aprendizaje máxima (eje x) que demuestra buenos límites al espacio de búsqueda. En este gráfico, las mejores pruebas (las tasas de error más bajas) se encuentran cerca de la mitad del espacio de búsqueda, donde la tasa de aprendizaje máxima es de 0.001, no cuando la máxima es de 0.00001 o 0.1.

Figura 1: Ejemplos de límites incorrectos del espacio de búsqueda y límites aceptables del espacio de búsqueda

Los gráficos de la Figura 1 muestran la tasa de error (menos es mejor) en comparación con la tasa de aprendizaje inicial. Si los mejores puntos se agrupan en el borde de un espacio de búsqueda (en alguna dimensión), es posible que debas expandir los límites del espacio de búsqueda hasta que el mejor punto de observación ya no esté más cerca del límite.

A menudo, un estudio incluye ensayos "inviables" que divergen o obtienen resultados muy negativos (marcados con X rojas en la Figura 1). Si todas las pruebas son inviables para las tasas de aprendizaje mayores que algún valor límite y las pruebas de mejor rendimiento tienen tasas de aprendizaje en el perímetro de esa región, es posible que los modelos tengan problemas de estabilidad que impidan acceder a las tasas de aprendizaje más altas.

No realizar muestras de suficientes puntos en el espacio de búsqueda

En general, puede ser muy difícil saber si el espacio de búsqueda tiene una muestra lo suficientemente densa. 鉛 Ejecutar más pruebas es mejor que ejecutar menos, pero una mayor cantidad de pruebas genera un costo adicional obvio.

Dado que es muy difícil saber cuándo se realizó la muestra lo suficiente, te recomendamos lo siguiente:

  • Muestreo de lo que puede permitirse
  • Calibra tu confianza intuitiva a partir de observar repetidamente varios gráficos de ejes de hiperparámetros e intentar tener una idea de cuántos puntos hay en la región “buena” del espacio de búsqueda.

Examine las curvas de entrenamiento

Resumen: El análisis de las curvas de pérdida es una forma fácil de identificar los modos de falla comunes y puede ayudarte a priorizar posibles acciones siguientes.

En muchos casos, el objetivo principal de tus experimentos solo requiere tener en cuenta el error de validación de cada prueba. Sin embargo, ten cuidado cuando reduzcas cada prueba a un solo número, ya que ese enfoque puede ocultar detalles importantes sobre lo que está sucediendo debajo de la superficie. Para cada estudio, recomendamos observar las curvas de pérdida de, al menos, las mejores pruebas. Incluso si esto no es necesario para abordar el objetivo experimental principal, examinar las curvas de pérdida (incluidas la pérdida de entrenamiento y la pérdida de validación) es una buena forma de identificar los modos de falla comunes y puede ayudarte a priorizar las acciones que se deben realizar a continuación.

Cuando examine las curvas de pérdida, concéntrese en las siguientes preguntas:

  • ¿Alguna de las pruebas presenta un sobreajuste problemático? El sobreajuste problemático ocurre cuando el error de validación comienza a aumentar durante el entrenamiento. En la configuración experimental, en la que optimizas los hiperparámetros molestos mediante la selección de la “mejor” prueba para cada configuración de los hiperparámetros científicos, verifica el sobreajuste problemático al menos en cada una de las mejores pruebas correspondientes a la configuración de los hiperparámetros científicos que estás comparando. Si alguna de las mejores pruebas muestra un sobreajuste problemático, realiza una de las siguientes acciones, o ambas:

    • Volver a ejecutar el experimento con técnicas de regularización adicionales
    • Volver a ajustar los parámetros de regularización existentes antes de comparar los valores de los hiperparámetros científicos Es posible que esto no se aplique si los hiperparámetros científicos incluyen parámetros de regularización, ya que no sería de extrañar que la configuración de baja intensidad de esos parámetros de regularización provoque un sobreajuste problemático.

    Reducir el sobreajuste suele ser sencillo con técnicas de regularización comunes que agregan complejidad mínima de código o procesamiento adicional (por ejemplo, regularización de retirados, suavizado de etiquetas o decaimiento). Por lo tanto, suele ser trivial agregar uno o más de ellos a la siguiente ronda de experimentos. Por ejemplo, si el hiperparámetro científico es “número de capas ocultas” y la mejor prueba que usa la mayor cantidad de capas ocultas presenta un sobreajuste problemático, recomendamos volver a intentarlo con una regularización adicional en lugar de seleccionar de inmediato la cantidad más pequeña de capas ocultas.

    Incluso si ninguna de las "mejores" pruebas tiene un sobreajuste problemático, puede haber un problema si ocurre en cualquiera de las pruebas. La selección de la mejor prueba elimina las configuraciones que presentan un sobreajuste problemático y favorece aquellas que no lo hacen. En otras palabras, seleccionar la mejor prueba favorece la configuración con más regularización. Sin embargo, cualquier elemento que empeore el entrenamiento puede actuar como un regularizador, incluso si no está diseñado de esa manera. Por ejemplo, elegir una tasa de aprendizaje más pequeña puede regular el entrenamiento mediante un proceso de optimización, pero, por lo general, no queremos elegir la tasa de aprendizaje de esta manera. Ten en cuenta que la prueba “mejor” para cada parámetro de configuración de los hiperparámetros científicos puede seleccionarse de una forma que favorece los valores “malos” de algunos de los hiperparámetros científicos o molestos.

  • ¿Hay una variación alta en los entrenamientos o en los errores de validación del entrenamiento? En ese caso, esto podría interferir con lo siguiente:

    • Su habilidad para comparar diferentes valores de los hiperparámetros científicos. Eso se debe a que cada prueba termina de forma aleatoria con un paso "con suerte" o "con mala suerte".
    • Capacidad de reproducir el resultado de la mejor prueba de producción. Eso se debe a que el modelo de producción puede no terminar con el mismo paso "con suerte" que en el estudio.

    Las causas más probables de la variación paso a paso son:

    • Variación por lotes debido a muestras de muestras aleatorias del conjunto de entrenamiento para cada lote.
    • Conjuntos de validación pequeños
    • Usar una tasa de aprendizaje que es demasiado alta durante el entrenamiento

    Entre las soluciones posibles, se incluyen las siguientes:

    • Aumentar el tamaño del lote
    • Obtener más datos de validación
    • Usar el decaimiento de la tasa de aprendizaje
    • Uso del promedio de Polyak.
  • ¿Las pruebas siguen mejorando al final de la capacitación? Si es así, estás en el régimen de “límite de procesamiento” y puedes beneficiarte de aumentar la cantidad de pasos de entrenamiento o de cambiar el programa de la tasa de aprendizaje.

  • ¿El rendimiento de los conjuntos de entrenamiento y validación está saturado mucho antes del paso final del entrenamiento? Si es así, esto indica que estás en el régimen “no vinculado al procesamiento” y que es posible que puedas disminuir la cantidad de pasos de entrenamiento.

Más allá de esta lista, muchos comportamientos adicionales pueden volverse evidentes si se examinan las curvas de pérdida. Por ejemplo, la pérdida de entrenamiento durante el entrenamiento suele indicar un error en la canalización de entrenamiento.

Detectar si un cambio es útil con diagramas de aislamiento

Diagrama de aislamiento que investiga el mejor valor de decaimiento de peso para ResNet-50 entrenado en ImageNet. En este caso, la tasa de error de validación más baja es cuando el decaimiento del peso es de ~0.00005.

Figura 2: Trazado de aislamiento que investiga el mejor valor de la disminución de peso para ResNet-50 entrenado en ImageNet.

 

A menudo, el objetivo de un conjunto de experimentos es comparar diferentes valores de un hiperparámetro científico. Por ejemplo, supongamos que deseas determinar el valor del deterioro del peso que da como resultado el mejor error de validación. Un trazado de aislamiento es un caso especial del eje básico del hiperparámetro. Cada punto en un trazado de aislamiento corresponde al rendimiento de la mejor prueba en algunos (o todos) los molestos hiperparámetros. En otras palabras, traza el rendimiento del modelo después de “optimizar” los hiperparámetros molestos.

Un trazado de aislamiento simplifica la comparación de elementos similares en diferentes valores del hiperparámetro científico. Por ejemplo, el gráfico de aislamiento de la Figura 2 revela el valor de la disminución de peso que produce el mejor rendimiento de validación para una configuración particular de ResNet-50 entrenada en ImageNet.

Si el objetivo es determinar si se debe incluir la disminución del peso, compara el mejor punto de este gráfico con el modelo de referencia sin decaimiento. Para lograr una comparación justa, el modelo de referencia también debe tener su tasa de aprendizaje bien ajustada.

Cuando se generan datos a partir de la búsqueda (cuasi aleatoria) y se considera un hiperparámetro continuo para un trazado de aislamiento, puedes agrupar los valores del eje x del gráfico básico y tomar la mejor prueba en cada porción vertical definida por los buckets.

Automatiza representaciones genéricas.

Cuanto más esfuerzo sea generar diagramas, menos probabilidades habrá de que los observes tanto como deberías. Por lo tanto, te recomendamos configurar tu infraestructura para producir automáticamente la mayor cantidad posible de trazados. Como mínimo, recomendamos generar automáticamente gráficos de ejes de hiperparámetros básicos para todos los hiperparámetros que varían en un experimento.

Además, recomendamos producir curvas de pérdida automáticamente para todas las pruebas. Además, recomendamos que sea lo más fácil posible encontrar las mejores pruebas de cada estudio y examinar sus curvas de pérdida.

Puedes agregar muchas otras visualizaciones y gráficos potenciales útiles. Para parafrasear Geoffrey Hinton, haz lo siguiente:

Cada vez que trazas algo nuevo, aprendes algo nuevo.

Determina si adoptar el cambio de candidato

Resumen: Cuando decidas si deseas realizar un cambio en nuestro modelo o procedimiento de entrenamiento, o adoptar una configuración de hiperparámetros nueva, ten en cuenta las diferentes fuentes de variación en tus resultados.

Cuando se intenta mejorar un modelo, es posible que un cambio determinado en particular logre un mejor error de validación en comparación con una configuración establecida. Sin embargo, repetir el experimento podría no demostrar una ventaja constante. Informalmente, las fuentes más importantes de resultados incoherentes se pueden agrupar en las siguientes categorías amplias:

  • Variación del procedimiento de entrenamiento, varianza de reentrenamiento o varianza de la prueba: la variación entre las ejecuciones de entrenamiento que usan los mismos hiperparámetros, pero diferentes semillas aleatorias. Por ejemplo, las diferentes inicializaciones aleatorias, la redistribución aleatoria de datos, las máscaras de retirados, los patrones de operaciones de aumento de datos y el orden de las operaciones aritméticas paralelas son fuentes potenciales de variación de la prueba.
  • Variación de búsqueda de hiperparámetros o varianza de estudio: La variación en los resultados que genera nuestro procedimiento para seleccionar los hiperparámetros. Por ejemplo, puedes ejecutar el mismo experimento con un espacio de búsqueda particular, pero con dos valores iniciales diferentes para la búsqueda cuasialeatoria y terminar seleccionando valores de hiperparámetros diferentes.
  • Recopilación de datos y varianza de muestreo: La varianza de cualquier tipo de división aleatoria en datos de entrenamiento, validación y prueba, o varianza debido al proceso de generación de datos de entrenamiento de manera más general

Verdadero. Puedes comparar las tasas de error de validación estimadas en un conjunto de validación finito con pruebas estadísticas sólidas. Sin embargo, a menudo, la variación de la prueba por sí sola puede generar diferencias con importancia estadística entre dos modelos entrenados diferentes que usan la misma configuración de hiperparámetros.

Lo que más nos preocupa es la variación del estudio cuando se trata de sacar conclusiones que vayan más allá del nivel de un punto individual en el espacio de hiperparámetros. La variación del estudio depende de la cantidad de pruebas y del espacio de búsqueda. Hemos visto casos en los que la variación del estudio es mayor que la prueba y en casos en los que es mucho más pequeña. Por lo tanto, antes de adoptar un cambio de candidato, considera ejecutar las mejores N veces de prueba para caracterizar la variación de la prueba de ejecución en ejecución. Por lo general, puedes lograr un cambio de la característica de la variación de la prueba luego de los cambios importantes en la canalización, aunque es posible que necesites estimaciones más recientes en algunos casos. En otras aplicaciones, caracterizar la variación de la prueba es demasiado costoso para que valga la pena.

Aunque solo desea adoptar cambios (incluidas las configuraciones de hiperparámetros nuevas) que produzcan mejoras reales, exigir una certeza completa de que un cambio determinado ayuda tampoco es la respuesta correcta. Por lo tanto, si un punto de hiperparámetro nuevo (o cualquier otro cambio) obtiene un mejor resultado que el modelo de referencia (teniendo en cuenta la varianza de reentrenamiento del punto nuevo y del modelo de referencia lo mejor que puedas), es probable que debas adoptarlo como el modelo de referencia nuevo para las comparaciones futuras. Sin embargo, te recomendamos que solo adoptes cambios que produzcan mejoras que superen la complejidad que agregan.

Después de que finalice la exploración

Resumen: Las herramientas de optimización bayesianas son una opción atractiva una vez que terminas de buscar buenos espacios de búsqueda y decides qué hiperparámetros valen el valor.

Con el tiempo, tus prioridades cambiarán de obtener más información sobre el problema de ajuste a producir una única configuración óptima para iniciar o usar. En ese punto, debería haber un espacio de búsqueda mejor definido que contenga cómodamente la región local alrededor de la prueba mejor observada y que se muestree de forma adecuada. Tu trabajo de exploración debería revelar los hiperparámetros más esenciales que se deben ajustar y sus rangos razonables que puedes usar a fin de crear un espacio de búsqueda para un estudio de ajuste automatizado final mediante un presupuesto de ajuste lo más grande posible.

Ya que ya no te interesa maximizar las estadísticas del problema de ajuste, ya no se aplican muchas de las ventajas de la búsqueda cuasialeatoria. Por lo tanto, debes usar las herramientas de optimización bayesianas para encontrar automáticamente la mejor configuración de hiperparámetros. Openier de código abierto implementa una variedad de algoritmos sofisticados para ajustar modelos de AA, incluidos los algoritmos de optimización bayesiana.

Supongamos que el espacio de búsqueda contiene un volumen no trivial de puntos variados, lo que significa que los puntos que obtienen una pérdida de entrenamiento de NaN o incluso una pérdida de entrenamiento muchas desviaciones estándar peor que la media. En este caso, recomendamos usar herramientas de optimización de caja negra que manejen de manera correcta las pruebas que se divergen. (Consulta Optimización bayesiana con restricciones desconocidas para obtener una manera excelente de abordar este problema). Open Source Vizier admite la marcación de puntos divergentes marcando pruebas como inviables, aunque es posible que no use nuestro enfoque preferido de Gelbart et al., según cómo se configure.

Una vez finalizada la exploración, considera verificar el rendimiento en el conjunto de prueba. En principio, incluso se podía plegar el conjunto de validación en el conjunto de entrenamiento y volver a entrenar la mejor configuración que se encontró con la optimización bayesiana. Sin embargo, esto solo es apropiado si no habrá lanzamientos futuros con esta carga de trabajo específica (por ejemplo, una competencia única de Kaggle).