prácticas recomendadas

En esta página, se describen las prácticas recomendadas para preparar tus datos, evaluar tus modelos y mejorar su rendimiento.

Archivo en proceso

  • Los datos que uses para el entrenamiento deben ser lo más cerca posible de los datos sobre los que quieres realizar predicciones. Por ejemplo, si tu caso de uso incluye videos borrosos y de baja resolución (como grabaciones de cámaras de seguridad), tus datos de entrenamiento deben incluir videos borrosos y de baja resolución. En general, también deberías tratar de proporcionar videos de entrenamiento con múltiples ángulos, resoluciones y fondos.
  • Tus datos de entrenamiento deben cumplir con ciertos requisitos mínimos:

    • La cantidad mínima de cuadros de límite por etiqueta es 10.
    • Las etiquetas deben ser strings válidas (sin comas).
    • Todos los fotogramas de video deben tener marcas de tiempo válidas.
    • Todos los URI de video en tu CSV deben almacenarse en un bucket de Cloud Storage accesible.
  • Cuantos más datos de entrenamiento y prueba tengas, mejor. Cuanto más potente sea el modelo, más datos necesitará.

  • La cantidad de datos necesarios para entrenar un buen modelo depende de diferentes factores:

    • La cantidad de clases. Cuantas más clases únicas tengas, más muestras se necesitarán por clase.

    • Deberías tener alrededor de 100 fotogramas de video de entrenamiento por etiqueta. En cada marco, se deben etiquetar todos los objetos de las etiquetas interesadas.

    • Complejidad o diversidad de clases. Las redes neuronales pueden distinguir rápidamente entre gatos y pájaros, pero necesitarían muchas más muestras para clasificar correctamente 30 especies diferentes de aves.

    • Parte de la calidad de la imagen puede perderse durante el proceso de normalización de fotogramas para resoluciones de fotogramas de video superiores a 1,024 x 1,024 píxeles.

  • Evita entrenar un modelo con datos muy desequilibrados. En muchos casos, la cantidad de muestras por clase no es igual. Cuando las diferencias no son grandes, no es tan grave. Sin embargo, cuando hay un desequilibrio mayor (por ejemplo, cuando algunas clases se presentan más de 10 veces que otras), esto se convierte en un problema.

Para conocer más, consulta la información sobre cómo preparar tus datos.

Divide los datos

En el aprendizaje automático, por lo general divides tus conjuntos de datos en tres subconjuntos separados: un conjunto de datos de entrenamiento, un conjunto de datos de validación y un conjunto de datos de prueba. Un conjunto de datos de entrenamiento se usa para compilar un modelo. El modelo prueba múltiples algoritmos y parámetros mientras busca patrones en los datos de entrenamiento. A medida que el modelo identifica patrones, usa el conjunto de datos de validación para probar los algoritmos y patrones. Los algoritmos y patrones con mejor rendimiento se eligen a partir de aquellos identificados durante la etapa de entrenamiento.

Una vez identificados, se comprueba la tasa de errores, la calidad y la exactitud mediante el conjunto de datos de prueba. Debes tener un conjunto de datos de prueba individual que puedas usar para probar tu modelo de forma independiente.

Para evitar sesgos en el modelo, se usan una validación y un conjunto de datos de prueba. Durante la etapa de validación, se usan parámetros óptimos del modelo, esto puede generar métricas sesgadas. El uso del conjunto de datos de prueba para evaluar la calidad del modelo después de la etapa de validación proporciona una evaluación imparcial sobre la calidad del modelo.

Usa las siguientes recomendaciones para dividir tus datos:

  • Recomendamos que todos los conjuntos de datos (también llamados divisiones de conjuntos de datos) representen a la misma población y tengan videos similares, con una distribución similar de etiquetas.

    Cuando proporcionas tus datos, AutoML Video Object Tracking puede dividirlos automáticamente en conjuntos de datos de entrenamiento, validación y prueba. También puedes asignar las etiquetas de división de entrenamiento de forma manual. Ten en cuenta que cuando AutoML Video Object Tracking genera las divisiones de entrenamiento, validación y prueba a partir del archivo CSV, funciona a nivel de video. Todas las etiquetas de un video solo pueden incluirse en uno de los tres conjuntos de datos. Por lo tanto, no se recomienda tener solo unos pocos videos si estos son diferentes o si la distribución de las etiquetas no es la misma entre los videos.

    Por ejemplo, si solo tienes 3 videos con miles de segmentos de video anotados, pero algunas clases solo están presentes en videos individuales, puede ocurrir que el modelo no se entrena para algunas etiquetas y, por lo tanto, puede perder esas etiquetas durante la predicción.

  • Evita que se filtren datos. La filtración de datos ocurre cuando, durante el entrenamiento del modelo, el algoritmo puede usar información que no debería y que no estará disponible durante las predicciones futuras. Esto puede generar resultados demasiado optimistas en conjuntos de datos de entrenamiento, validación y prueba, y podría no tener un buen rendimiento cuando se le solicite que realice predicciones de datos futuros no vistos.

    Entre los ejemplos de fuga se incluyen un sesgo basado en el ángulo de visualización de la cámara o las condiciones de luz (mañana o noche); un sesgo en los videos con comentarios, en lugar de en los videos sin comentarios; un sesgo basado en ciertas etiquetas que provienen de regiones, grupos de idiomas o comentaristas específicos, o que incluyen el mismo logotipo.

    Para evitar filtración de datos, haz lo siguiente:

    • Ten un conjunto bien combinado de videos y muestras de segmentos de video.
    • Revisa los videos para asegurarte de que no haya sugerencias ocultas (por ejemplo, que los videos con muestras positivas se tomaron durante el mediodía, mientras que los videos con muestras negativas se tomaron durante la mañana).

Para conocer más, consulta la información sobre cómo preparar tus datos.

Ejemplo de fuentes de datos

Para ver un ejemplo de fuente de datos, consulta los siguientes conjuntos de datos de detección de video disponibles públicamente:

  • YouTube-BB: Conjunto de datos de detección de objetos de video (5.6 millones de cuadros de límite, 240,000 videos y 23 tipos de objetos)
  • ImageNet-VID: Desafío de detección de objetos de video de Imagenet (30 categorías de nivel básico)

Entrena tu modelo

Se pueden usar los mismos datos para entrenar diferentes modelos y generar diferentes tipos de predicción, según lo que necesites. Además, entrenar el mismo modelo en los mismos datos puede generar resultados ligeramente diferentes. El entrenamiento de modelos de red neuronal implica operaciones aleatorias, por lo que no se puede garantizar entrenar un mismo modelo con las mismas entradas y las predicciones pueden ser ligeramente diferentes.

Para obtener más información, consulta la sección sobre cómo administrar modelos.

Evalúa tu modelo

Una vez finalizado el entrenamiento del modelo, puedes evaluar el rendimiento en los conjuntos de datos de validación y prueba o en tus propios conjuntos de datos nuevos.

Los conceptos y las métricas comunes de la evaluación del seguimiento de objetos incluyen los siguientes:

  • La intersección sobre la unión (IOU) mide la superposición entre dos cuadros de límite, que, por lo general, están entre la verdad fundamental y la predicción. Puedes usarlo para medir en qué medida nuestro cuadro delimitador previsto se superpone con la verdad fundamental.
  • El área bajo la curva de precisión y recuperación (AuPRC), también conocida como precisión promedio (AP). Es la integral de los valores de precisión sobre el rango de los valores de recuperación. Se interpreta mejor para los problemas binarios.
  • La precisión promedio (mAP o MAP) se puede considerar como la media de métricas de precisión (AP) promedio en varias clases o etiquetas. A veces, se usan mAP y AP de forma indistinta.
  • En el caso de los problemas binarios y de varias clases, también puedes examinar la precisión y la recuperación en varios umbrales de puntuación de confianza de forma independiente.
  • Si no hay demasiadas etiquetas de varias clases, puedes examinar la matriz de confusión que muestra qué etiquetas faltaron.

No todas las métricas se pueden usar para los diferentes problemas de seguimiento de objetos de video. Por ejemplo, la comprensión intuitiva de la precisión y la recuperación a partir de un problema de seguimiento de objetos se vuelve más ambigua cuando se consideran varias clases (problema de varias clases) o si hay varias etiquetas válidas por muestra (problema de varias etiquetas). Especialmente en el último caso, no hay una métrica única y bien adoptada. Sin embargo, puedes considerar la métrica de precisión promedio para tomar decisiones de evaluación.

Sin embargo, ten en cuenta que se simplifica demasiado para evaluar el rendimiento del modelo según una sola cantidad o métrica. Considera observar diferentes métricas y también los gráficos de curvas de precisión y recuperación de cada una de las clases de objetos.

Estas son otras sugerencias útiles para evaluar tu modelo:

  • Ten en cuenta la distribución de etiquetas en tus conjuntos de datos de entrenamiento y prueba. Si los conjuntos de datos son desequilibrados, las métricas de precisión alta podrían ser engañosas. Dado que, de forma predeterminada, cada muestra tiene el mismo peso durante la evaluación, una etiqueta más frecuente puede tener más peso. Por ejemplo, si hay 10 veces más etiquetas positivas que negativas y la red decide asignar todas las muestras a las etiquetas positivas, aun puedes lograr una exactitud del 91%, pero eso no significa que el modelo entrenado sea útil.

  • También puedes intentar analizar la verdad fundamental y las etiquetas de predicción, por ejemplo en una secuencia de comandos de Python, mediante scikit-learn. Allí, puedes observar diferentes maneras de ponderar las etiquetas durante la evaluación: los enfoques comunes incluyen el promedio de macro (las métricas se calculan por clase y, luego, se promedian), ponderado (las métricas se calculan por clase y, luego, se promedian según los pesos basados en la frecuencia de clases individuales), micro (cada muestra tiene el mismo peso, independientemente de cualquier desequilibrio potencial).

  • La depuración de un modelo consiste más en depurar los datos que el modelo en sí. Si en algún momento tu modelo comienza a actuar de manera inesperada mientras evalúas su rendimiento antes y después de pasar a producción, debes regresar y verificar tus datos para ver dónde podrían realizarse mejoras.

  • A veces, un video de prueba tiene algunos casos en los que aparecen escenas nuevas sin asociar demasiado el contexto. Por ejemplo, en las transmisiones en vivo de partidos de fútbol, la vista de la cámara cambia de la vista cenital a la lateral. En esa situación, por lo general, el modelo tarda entre 2 y 3 fotogramas en ponerse al día con el cambio.

Para obtener más información, consulta la sección sobre cómo evaluar tu modelo.

Prueba tu modelo

AutoML Video Object Tracking usa el 20% de tus datos automáticamente o, si elegiste la división de los datos, el porcentaje que hayas optado por usar para probar el modelo.

Mejora el rendimiento del modelo

Si obtiene el rendimiento inicial del modelo y deseas seguir mejorándolo, puedes probar algunos enfoques diferentes:

  • Aumenta la cantidad de muestras etiquetadas (especialmente para las clases con poca representación).
  • Etiqueta los fotogramas más significativos:
    • Selecciona marcos para etiquetar dónde aparecen varios objetos en lugar de uno solo o no hay ningún objeto presente.
    • Selecciona marcos que contengan más objetos en movimiento. Esto puede proporcionar más información temporal para que el modelo aprenda durante el entrenamiento.
    • Asegúrate de que todos los marcos seleccionados estén completamente etiquetados. Por ejemplo, si entrenas un modelo de detección de vehículos, debes etiquetar todos los vehículos que se pueden observar visualmente en un fotograma.
    • No selecciones fotogramas al comienzo de un video. El algoritmo puede retroceder para recuperar fotogramas y entrenarlos para capturar el contexto de movimiento. Esa información puede perderse si no hay fotogramas antes de los fotogramas seleccionados.
  • Examina detalladamente los resultados de tu modelo:

    • Quizás una clase sea demasiado amplia y sea conveniente dividirla en dos o más clases.
    • O tal vez algunas clases son demasiado específicas y se pueden combinar sin afectar el objetivo final del proyecto.
    • Considera etiquetar más muestras, en especial para las clases que tienen un rendimiento relativamente peor.
  • Reduce el desequilibrio de datos Agrega más muestras o, potencialmente, reduce el número de muestras de clase de alta frecuencia, en especial en casos en los que hay un desequilibrio grande, por ejemplo, de 1 a 100 o más.

  • Verifica cuidadosamente y trata de evitar posibles filtraciones de datos.

  • Borra las clases menos importantes para concentrarte en menos importantes.

  • Revisa otras opciones disponibles en la página de Asistencia.