Usando Transkribus con manuscritos medievales (6): entrenando un modelo CITLab HTR+ (parte 3)
Al final de la entrada anterior habíamos recibido un correo de confirmación sobre la finalización exitosa del entrenamiento de un modelo de transcripción de letra manuscrita. Como dije entonces, el correo contiene un corto resumen y los datos más relevantes del nuevo modelo: los porcentajes de error de caracteres o CER (character error rate) en el set de entrenamiento y en el set de validación.
Al volver al cliente experto podemos entender estos valores mejor. Hay que dar clic en Herramientas (Tools), Ver modelos (View models) y buscar nuestro modelo. La pantalla que se abre a continuación es la siguiente:
Además de los datos que vimos en la ventana de configuración de entrenamiento del modelo (nombre, idioma, descripción, número de épocas del entrenamiento, número de palabras y número de líneas), la pantalla incluye un gráfico que ilustra la curva del proceso de aprendizaje (learning curve, o tasa de apredizaje, learning rate) del modelo. En resumidas cuentas, se trata de una representación visual del incremento de la precisión del modelo medido en función al porcentaje de error de caracteres o CER, a través de las distintas iteraciones (épocas) en las que el proceso de entrenamiento se ha repetido. En total, el modelo que entrené utilizó 50 páginas de set de entrenamiento (22335 palabras y 3374 líneas) y 7 páginas de set de validación, y logró un CER de 1.15% en el set de entrenamiento y de 2.97% en el set de validación.
¿Qué significa todo esto? El CER es una fórmula que compara cuántas alteraciones debe realizar la máquina para acercar su transcripción (es decir, lo que ha intentado transcribir sin ayuda) a la verdad base (ground truth) de nuestra transcripción inicial. Se calcula sumando el número de inserciones (i), sustituciones (s) y supresiones (d, por deletion) de caracteres, y dividiendo esta suma sobre el número total de caracteres de la página (n), incluyendo los espacios en blanco.
CER = [ (i + s + d ) / n ] x 100
Luego, se promedian los CERs de cada página y se obtiene una tasa representativa del número de errores contenidos en una época de entrenamiento del modelo. Al inicio del entrenamiento, como es esperable, el CER es 100%. Esto porque el modelo no conoce la letra que está transcribiendo. Poco a poco irá aprendiéndola, y con ello, será capaz de reducir el CER. Después de 20 épocas, el CER es menos del 10%. Si comparamos esto con el aprendizaje humano, claramente estamos ante un proceso más acelerado. Mientras que al estudiante de paleografía las repeticiones le tomarán varias decenas de horas, el modelo ha realizado 20 épocas en menos de una hora.
En este momento el modelo conoce bien los fundamentos de la letra. Ha extrapolado un conjunto de reglas que le permite entender los trazos y predecir su valor. Volviendo a la comparación humana, podemos decir que nuestro modelo es igual a un lector capaz de anticipar el valor de un trazo (no importa si es una letra o una abreviatura) incluso cuando ocurra en una palabra que nunca ha visto. Pero con 20 épocas, en 10% de los casos habrá un error. Este CER es todavía demasiado alto.
Hay que continuar el entrenamiento hasta lograr reducir la tasa de error a un valor manejable. ¿Qué valor es aceptable? Para letra manuscrita un CER menor a 3% es considerado bueno y un CER menor a 2% es excelente (por comparación, en letras impresas un CER excelente se coloca debajo de 0.8%). En condiciones perfectas –i.e., un manuscrito escrito por la misma mano, en la misma letra y con el mismo sistema de abreviaturas–, la reducción del CER por debajo del 3% ocurrirá cerca de las 100 épocas.
Volvamos ahora a la curva de aprendizaje, si prestamos atención, vemos que no hay una sola línea, sino dos. La línea azul corresponde a la tasa de error de caracteres en el set de entrenamiento (CER on training set), es decir, el aprendizaje del modelo para el set de entrenamiento. Al final de cada época, el modelo compara su transcripción con el texto de la verdad base del set de entrenamiento y produce este CER. La comparación con la verdad base le permite intentar corregir sus errores en la siguiente época, pues el modelo aprende de esta comparación.
La línea roja es la tasa de error de caracteres en el set de validación (CER on validation set), que es una transcripción inopinada realizada sobre el set de validación al final de cada época. De esta transcripción, a diferencia de la anterior, el modelo no retiene ni aprende nada.
Al final de cada época, el modelo ha validado su transcripción con el texto correcto –la verdad base– del set de entrenamiento, que recordará y al que intentará aproximarse en la siguiente época, y con un texto desconocido, el set de validación, que olvidará inmediatamente. La tasa de error en el set de validación es, a fin de cuentas, cuán efectivo es el modelo en transcribir desconocido (escrito, claro está, en la misma letra).
Dejo para la siguiente entrada cómo utilizar y cómo re-entrenar un modelo.
Imagen de miniatura: detalle de la curva de aprendizaje
del modelo Lucid D 0.1
OpenEdition le sugiere que cite este post de la siguiente manera:
Cossío Olavide, Mario (25 de enero de 2023). Usando Transkribus con manuscritos medievales (6): entrenando un modelo CITLab HTR+ (parte 3). Lucidarios. Recuperado 5 de noviembre de 2024 de https://doi.org/10.58079/r3cd