¿Cómo ajustar dinámicamente la precisión y la recuperación?
Ejemplo: Hay 100 personas y 1 persona tiene cáncer. Lo predecimos y luego calculamos la precisión y la recuperación de cada predicción.
La precisión y la recuperación son relativas a muestras positivas, es decir, primero se debe definir qué es positivo. Aquí definimos “cáncer” como positivo, por lo que ningún cáncer es negativo.
También tienen otro par de nombres, que son más intuitivos y fáciles de entender:
En diferentes tareas, pueden existir diferentes requisitos de precisión y recuperación. El tema que se discutirá en este artículo es que una vez completado el entrenamiento del modelo, la precisión de la predicción y la recuperación se pueden ajustar sin volver a entrenar el modelo. En otras palabras, después de que se lanza un modelo, diferentes usuarios pueden usar el mismo modelo para completar diferentes tareas.
En las tareas de clasificación binaria, la salida del modelo generalmente es un valor entre 0 y 1, registrado como: si es mayor que 0,5, nuestra predicción es positiva; de lo contrario, es negativa. Aquí 0,5 representa un umbral. Si se registra como, el estándar de clasificación es el siguiente:
Para ajustar la precisión y la tasa de recuperación, simplemente ajuste S directamente. Aumentar S aumentará la precisión y reducirá la recuperación. Si se reduce S, la tasa de precisión disminuirá y la tasa de recuperación aumentará.
¿Cómo entender?
La salida del modelo puede representar la confianza (es decir, la confianza del modelo para predecir muestras positivas). Cuando el umbral aumenta, significa que se necesita más confianza para predecir positivos y, al mismo tiempo, la precisión inevitablemente aumentará. El aumento en el umbral conduce a menos muestras positivas predichas y la posibilidad de encontrar muestras positivas disminuirá; lo que resulta en una disminución en la tasa de recuperación.
En una tarea de clasificación múltiple, el modelo generará una distribución de categorías, como tres categorías, y un resultado posible es [0,1, 0,2, 0,7]. En los modelos de aprendizaje profundo, normalmente utilizamos la función softmax para generar distribuciones en formato . Recuerde que la salida de la capa anterior es y la salida final es, entonces:
Para ajustar la precisión y la tasa de recuperación correspondiente a la categoría 1, podemos ajustar directamente (aumentar/disminuir un valor). Con el aumento, la tasa de recuperación de la categoría 1 aumenta y la tasa de precisión disminuye; al mismo tiempo, las tasas de recuperación de la categoría 2 y 3 disminuyen y la tasa de precisión aumenta;
¿Cómo entender?
A medida que aumenta el valor, la probabilidad correspondiente a la categoría 1 aumentará y la probabilidad de otras categorías disminuirá. Aumentar artificialmente la probabilidad conducirá a un aumento en la probabilidad de predecir muestras positivas, lo que resultará en un aumento en el recuerdo, y ocurre lo contrario con otras categorías.
En el procesamiento del lenguaje natural, la segmentación de palabras, las partes del discurso y el NER se convierten en tareas de etiquetado de secuencias para su procesamiento. La tarea de etiquetado de secuencias también es una tarea de clasificación de secuencias. Después de aprender cómo ajustar la precisión y la recuperación de las tareas de clasificación, no es difícil ajustar la tarea de etiquetado de secuencia. Tome la tarea NER como ejemplo:
Actualmente, los principales modelos de etiquetado de secuencia incluyen LSTM-CRF dual, BERT-CRF, etc. Ambos utilizan una red neuronal para calcular la puntuación de cada palabra y cada categoría, y luego la ajustan a través de la capa CRF. Podemos ajustar la precisión y la recuperación ajustando las puntuaciones antes de ingresar al CRF. (Para la implementación general de PyTorch de BI-LSTM-CRF y CRF, consulte la biblioteca de código abierto bi-lstm-crf).
En la tabla anterior, cada columna corresponde a la puntuación de clasificación múltiple de una palabra. Los rangos de estas puntuaciones no están normalizados, pero el método de ajuste sigue siendo el mismo. Simplemente modifique estos puntajes directamente.
Por ejemplo, al aumentar la puntuación correspondiente a la etiqueta "O", aumentará la probabilidad final correspondiente a la etiqueta "O", y con las entidades (B-LOC, I-LOC, .. .) disminuirá, por lo que la tasa de recuperación de NER disminuirá y la tasa de precisión aumentará.
A través de experimentos, se utiliza un conjunto de datos etiquetados como conjunto de prueba y todo el conjunto de prueba se ejecuta con diferentes valores de ajuste para calcular la precisión y las tasas de recuperación. De esta forma se obtendrán dos curvas, una correspondiente a la tasa de precisión y otra correspondiente a la tasa de recuperación, y la abscisa corresponde a diferentes valores de ajuste. Luego seleccione el valor de ajuste apropiado según sea necesario.