¿Con qué frecuencia debe verificar el conjunto de validación durante el entrenamiento de la red neuronal en función de los ejemplos de entrenamiento (cada N ejemplos de entrenamiento)?

En general, para configuraciones de conjuntos de datos estáticos / finitos, es muy típico que uno verifique el rendimiento de validación del modelo después de cada época (o iteración de entrenamiento, dependiendo de la elección de la terminología). Una época, en términos de entrenamiento basado en los nervios, es un pase completo a través del conjunto de datos. Esto le permite observar la evolución de la capacidad de generalización del modelo en puntos de control “razonables” sin gastar demasiado cálculo en el cálculo del error (o pérdida) de validación, ya que querrá dedicar la mayor parte del cálculo a la estimación / actualización de parámetros. Esto es especialmente útil cuando su objetivo puede ser más costoso de evaluar (como estimar la probabilidad de registro negativa con un muestreo de importancia recocido).

Verificando después de cada época, creo que proviene de los días de descenso de gradiente de lote completo (donde los gradientes de parámetros se calcularon usando todo el conjunto de datos cada vez), ya que hay algunas garantías comprobables (para errores de entrenamiento) en esa configuración. Esta es también la base para la detención temprana y otros conceptos de optimización, como los cronogramas de metaparámetros (por ejemplo, tasa de aprendizaje), donde se modifican los valores en función de las épocas. Por ejemplo, puede reducir su tasa de aprendizaje a la mitad cada dos épocas, o reducir su tasa de aprendizaje si no ve una mejora en el error de validación después de cada época.

De lo contrario, que yo sepa, no existe una regla estricta y rápida (y mucho menos teoría) para el seguimiento de errores. Para darle una perspectiva práctica, en mi propia investigación, típicamente hago un seguimiento de la pérdida / error de validación después de cada época. Sin embargo, si estoy interesado en rastrear la evolución del error, especialmente cuando el tamaño de la muestra es bastante grande, normalmente escribo mi código para poder cambiar al cálculo de error de validación cada N muestras (o mini lotes), generalmente usando un módulo (es decir, el muy práctico “%” que se encuentra en la mayoría de los lenguajes de programación) sobre la cantidad de muestras vistas hasta ahora. Elegir N en este caso es más una cuestión de preferencia y depende nuevamente de lo costoso que sea evaluar la función de pérdida / objetivo y la velocidad a la que se procesan los mini lotes de muestras. A veces, elijo N = 100 (muestras) o N = 10,000. Tenga en cuenta que corre el riesgo de ver una imagen mucho más bouncier del error sobre las muestras de números vistas hasta ahora, pero esto puede ser útil como una comprobación de la cordura para ver que su modelo al menos está aprendiendo algo de los datos.