Los experimentos impulsan la viabilidad de un proyecto. Son hipótesis comprobables y reproducibles. Cuando se ejecutan experimentos, el objetivo es realizar mejoras continuas e incrementales mediante la evaluación de una variedad de arquitecturas y funciones de modelos. Cuando experimentes, te recomendamos que hagas lo siguiente:
Determina el rendimiento de referencia. Para comenzar, establece una métrica de referencia. El modelo de referencia actúa como un punto de comparación para los experimentos.
En algunos casos, la solución actual que no es de AA puede proporcionar la primera métrica de referencia. Si actualmente no existe una solución, crea un modelo de AA con una arquitectura simple, algunas funciones y usa sus métricas como referencia.
Realiza cambios pequeños y únicos. Realiza un solo cambio pequeño a la vez, por ejemplo, en los hiperparámetros, la arquitectura o las funciones. Si el cambio mejora el modelo, las métricas de ese modelo se convierten en el nuevo modelo de referencia para comparar futuros experimentos.
Los siguientes son ejemplos de experimentos que realizan un solo cambio pequeño:
- incluir la función X.
- usa una tasa de abandono del 0.5 en la primera capa oculta.
- tomar la transformación logarítmica de la función Y
- cambia la tasa de aprendizaje a 0.001.
Registra el progreso de los experimentos. Es probable que debas realizar muchos experimentos. Los experimentos con una calidad de predicción deficiente (o neutral) en comparación con el modelo de referencia siguen siendo útiles para realizar un seguimiento. Señalan qué enfoques no funcionarán. Debido a que el progreso suele ser no lineal, es importante mostrar que estás trabajando en el problema destacando todas las formas que encontraste que no funcionan, además de tu progreso para aumentar la calidad del modelo de referencia.
Debido a que cada entrenamiento completo en un conjunto de datos del mundo real puede tardar horas (o días), considera ejecutar varios experimentos independientes de forma simultánea para explorar el espacio con rapidez. A medida que sigas iterando, con suerte, te acercarás cada vez más al nivel de calidad que necesitarás para la producción.
Ruido en los resultados experimentales
Ten en cuenta que es posible que encuentres ruido en los resultados experimentales que no provengan de cambios en el modelo o los datos, lo que dificulta determinar si un cambio que realizaste realmente mejoró el modelo. Los siguientes son ejemplos de elementos que pueden producir ruido en los resultados experimentales:
Mezcla de datos: El orden en el que se presentan los datos al modelo puede afectar su rendimiento.
Inicialización de variables: La forma en que se inicializan las variables del modelo también puede afectar su rendimiento.
Paralelismo asíncrono: Si el modelo se entrena con paralelismo asíncrono, el orden en el que se actualizan las diferentes partes del modelo también puede afectar su rendimiento.
Conjuntos de evaluación pequeños: Si el conjunto de evaluación es demasiado pequeño, es posible que no sea representativo del rendimiento general del modelo, lo que genera variaciones irregulares en su calidad.
Ejecutar un experimento varias veces ayuda a confirmar los resultados experimentales.
Alineación con las prácticas de experimentación
Tu equipo debe tener una comprensión clara de lo que es exactamente un “experimento”, con un conjunto definido de prácticas y artefactos. Te recomendamos que tengas documentación que describa lo siguiente:
Artefactos. ¿Cuáles son los artefactos de un experimento? En la mayoría de los casos, un experimento es una hipótesis probada que se puede reproducir, por lo general, a través del registro de los metadatos (como los atributos y los hiperparámetros) que indican los cambios entre los experimentos y cómo afectan la calidad del modelo.
Prácticas de codificación. ¿Todos usarán sus propios entornos experimentales? ¿Qué tan posible (o fácil) será unificar el trabajo de todos en bibliotecas compartidas?
Reproducibilidad y seguimiento. ¿Cuáles son los estándares de reproducibilidad? Por ejemplo, ¿el equipo debe usar la misma canalización de datos y las mismas prácticas de control de versiones, o está bien mostrar solo los gráficos? ¿Cómo se guardarán los datos experimentales: como consultas SQL o como instantáneas de modelos? ¿Dónde se documentarán los registros de cada experimento: en un documento, una hoja de cálculo o un CMS para administrar los experimentos?
Predicciones incorrectas
Ningún modelo del mundo real es perfecto. ¿Cómo manejará tu sistema las predicciones incorrectas? Comienza a pensar con anticipación cómo lidiar con ellos.
Una estrategia de prácticas recomendadas alienta a los usuarios a etiquetar correctamente las predicciones incorrectas. Por ejemplo, las apps de correo electrónico registran el correo electrónico que los usuarios mueven a su carpeta de spam, así como lo contrario, para capturar los correos electrónicos mal clasificados. Cuando capturas etiquetas de verdad fundamental de los usuarios, puedes diseñar bucles de retroalimentación automatizados para la recopilación de datos y el reentrenamiento de modelos.
Ten en cuenta que, aunque las encuestas incorporadas en la IU capturan los comentarios de los usuarios, los datos suelen ser cualitativos y no se pueden incorporar a los datos de la nueva capacitación.
Implementa una solución de extremo a extremo
Mientras tu equipo experimenta con el modelo, es una buena idea comenzar a compilar partes de la canalización final (si tienes los recursos para hacerlo).
Establecer diferentes partes de la canalización, como la transferencia de datos y el reentrenamiento del modelo, facilita el traslado del modelo final a producción. Por ejemplo, obtener una canalización de extremo a extremo para transferir datos y entregar predicciones puede ayudar al equipo a comenzar a integrar el modelo en el producto y a realizar pruebas de usuario en etapas iniciales.
Soluciona problemas de proyectos detenidos
Es posible que te encuentres en situaciones en las que el progreso de un proyecto se detenga. Tal vez tu equipo haya estado trabajando en un experimento prometedor, pero no ha tenido éxito en mejorar el modelo durante semanas. ¿Qué deberías hacer? Los siguientes son algunos métodos posibles:
Estratégica. Es posible que debas reformular el problema. Después de pasar tiempo en la fase de experimentación, es probable que comprendas mejor el problema, los datos y las posibles soluciones. Con un conocimiento más profundo del dominio, es probable que puedas definir el problema con mayor precisión.
Por ejemplo, tal vez al principio querías usar la regresión lineal para predecir un valor numérico. Lamentablemente, los datos no fueron lo suficientemente buenos para entrenar un modelo de regresión lineal viable. Tal vez un análisis más detallado revele que el problema se puede resolver prediciendo si un ejemplo está por encima o por debajo de un valor específico. Esto te permite reformular el problema como uno de clasificación binaria.
Si el progreso es más lento de lo esperado, no te des por vencido. Las mejoras incrementales con el tiempo pueden ser la única forma de resolver el problema. Como se señaló anteriormente, no esperes la misma cantidad de progreso semana a semana. A menudo, obtener una versión de un modelo lista para la producción requiere una gran cantidad de tiempo. La mejora del modelo puede ser irregular e impredecible. A los períodos de progreso lento pueden seguirles aumentos repentinos de mejora, o viceversa.
Técnico. Dedica tiempo a diagnosticar y analizar las predicciones incorrectas. En algunos casos, puedes encontrar el problema aislando algunas predicciones incorrectas y diagnosticando el comportamiento del modelo en esas instancias. Por ejemplo, es posible que descubras problemas con la arquitectura o los datos. En otros casos, puede ser útil obtener más datos. Es posible que obtengas una señal más clara que sugiera que estás en el camino correcto, o que genere más ruido, lo que indica que existen otros problemas en el enfoque.
Si estás trabajando en un problema que requiere conjuntos de datos etiquetados por humanos, puede ser difícil obtener un conjunto de datos etiquetado para la evaluación del modelo. Busca recursos para obtener los conjuntos de datos que necesitarás para la evaluación.
Tal vez no haya una solución posible. Establece un tiempo límite para tu enfoque y detente si no has logrado progreso dentro del plazo. Sin embargo, si tienes una declaración de problema sólida, es probable que garantice una solución.