Technical
Tienes derecho a guardar silencio
Paulo Maia · 2 de agosto de 2021
La advertencia de Miranda nos protege de la auto-incriminación.
Tienes derecho a guardar silencio. Cualquier cosa que digas será usada en tu contra.
Si responsabilizamos a los modelos de ML por sus predicciones, ¿no deberíamos concederles al menos ese derecho? ¿Podemos esperar que los modelos de ML lo sepan todo? Probablemente no. Además, sería beneficioso saber cuándo el modelo no está seguro de lo que debe predecir.
Conceder a los modelos de ML el derecho a abstenerse se conoce como opción de rechazo. Y es bastante útil. En este artículo te mostraremos cómo utilizarla.
Contexto
Los algoritmos de Machine Learning e Inteligencia Artificial se aplican actualmente en casi todas las industrias, integrándose en numerosas cadenas de valor que dependen de sus decisiones. Sin embargo, a pesar de los continuos avances en el estado del arte, estos algoritmos aún no son perfectos y cometen varios errores en situaciones críticas. La causa de cada error puede depender de varios factores:
Puntos de datos demasiado cercanos a un límite de decisión – En conjuntos de datos del mundo real, los límites de decisión pueden ser difíciles de definir. En esos casos, las predicciones cercanas al límite devuelven valores con bajos niveles de confianza, lo que puede llevar a una clasificación incorrecta.
Valores atípicos – Si el punto de datos no pertenece a ninguna población presente en el conjunto de entrenamiento, es difícil para el modelo hacer una inferencia sobre ese punto.
- Datos faltantes – Existen varias formas de manejar datos faltantes, ya sea mediante imputación o agregando indicadores de "datos faltantes". En ambos casos, estamos haciendo suposiciones sobre los datos que podrían no ser ciertas y, por lo tanto, las inferencias sobre esos puntos deberían tener un nivel de confianza más bajo.
Los bajos niveles de confianza pueden llevar a casos de clasificación incorrecta, pero ¿es realmente culpa del modelo? Cuando le pedimos a un algoritmo que haga predicciones sobre un punto de datos, lo forzamos a devolver una respuesta incluso si no está seguro. Para varios casos de uso (ver algunos ejemplos en "Aplicaciones"), es beneficioso dar al modelo la opción de guardar silencio, es decir, si el algoritmo no tiene suficiente confianza, tiene la opción de rechazar el punto de datos, evitando cometer errores. Esta aproximación se conoce como Clasificación con Opción de Rechazo.
Curso
Los ABC del Machine Learning
Familiarízate con los conceptos de Machine Learning a través de nuestro curso.
Aplicaciones
Este enfoque solo es aplicable cuando es posible transferir la decisión a otro sistema de decisión disponible (por ejemplo, otro algoritmo, un especialista, exámenes o pruebas) o cuando no es necesario devolver predicciones para todo el conjunto de datos. En otras palabras, aplica Opción de Rechazo cuando el costo de rechazar una instancia por parte del modelo es menor que el costo del error. Aquí hay algunos ejemplos de aplicaciones que pueden beneficiarse de un enfoque de Clasificación con Opción de Rechazo:
- Sistemas de Apoyo a Decisiones para Diagnóstico Médico – Hay pocas cosas más arriesgadas que un diagnóstico erróneo, especialmente para enfermedades letales. Por lo tanto, delegar esa tarea a un algoritmo y hacerlo responsable de la decisión es apenas aceptado por la comunidad médica, ya que genera muchas cuestiones de fiabilidad. Por esa razón, es difícil integrar algoritmos de IA en el flujo de trabajo de detección de enfermedades. Sin embargo, la intención de incluir IA en sanidad es ayudar al especialista, no reemplazarlo. Utilizando un enfoque de Clasificación con Opción de Rechazo, el algoritmo devuelve predicciones para los casos en los que confía ampliamente y transfiere la decisión a un especialista cuando los niveles de confianza son más bajos. De esta manera, el algoritmo ayuda al especialista, aliviándolo de una carga de trabajo significativa.
- Clasificación Basada en Imágenes en Vídeos – En algunas aplicaciones como detección de objetos, reconocimiento de acciones, resumen de vídeo o reconocimiento facial, no todos los fotogramas son relevantes, ya que la frecuencia de fotogramas normal de los vídeos es de 30 FPS y la mayoría de las veces, un fotograma de buena calidad es suficiente para desencadenar una decisión. En estos casos, en lugar de devolver predicciones fotograma a fotograma con mucho ruido e incertidumbre, los modelos podrían utilizar el truco de Opción de Rechazo y devolver solo las predicciones con altos niveles de confianza.
Implementación
Ahora que hemos visto cómo la Clasificación con Opción de Rechazo puede ayudarnos en casos críticos, exploremos cómo podemos integrarla en nuestras implementaciones de modelos.
Método 0 – Optimización de Umbral
La forma más fácil y simple de integrar la Opción de Rechazo en un Sistema de Apoyo a Decisiones es aplicar postprocesamiento en los resultados del modelo, considerando el nivel de confianza y el objetivo de rendimiento. Por ejemplo, si el rendimiento aceptable es una precisión media superior al 95%, puedes optimizar el umbral de confianza para cada clase. Para hacerlo, sigue estos pasos:
- Calcula las predicciones en tu conjunto de validación
- Para cada clase, itera a través de las predicciones correspondientes a esa clase de menor a mayor confianza
- Considera esa predicción como el valor de tu umbral
- Después de aplicar el umbral, calcula la métrica de interés (en este caso, la precisión media)
- Una vez que logres una precisión media del 95%, habrás encontrado el umbral optimizado
Para evitar sobreajuste en el conjunto de validación, aplica validación cruzada y calcula el umbral optimizado considerando una de las estadísticas muestrales: media, mediana o moda.
A pesar de ser fácil de implementar, este método tiene algunas limitaciones. En primer lugar, es difícil regularizar la cantidad de datos que se está ignorando en el postprocesamiento. En el límite, este método puede encontrar métricas perfectas ignorando todos los datos, por lo que necesitarás mecanismos adicionales para evitar que esto ocurra en tu optimización. En segundo lugar, como este método se aplica después de obtener las predicciones, el modelo no aprende cómo el espacio de características se relaciona con el rechazo de datos. Para superar estas limitaciones, presentamos los tres métodos siguientes encontrados en la literatura.
Método 1 – Añadiendo una Clase de Rechazo
Este método fue explorado por Sousa, Ricardo Gamelas, et al. en [1] para un problema binario. La solución que implementaron incluía los siguientes pasos:
- Define un valor (aleatorio o no) como umbral inicial.
- Calcula la proporción de instancias rechazadas (R = número de instancias rechazadas / número total de instancias en el conjunto de datos) y la proporción de puntos de datos clasificados incorrectamente (E = número de instancias clasificadas incorrectamente / número total de instancias en el conjunto de datos).
- Calcula Ȓ usando la ecuación Ȓ = ⍵R + E, donde ⍵ es el costo de rechazo, R es la proporción de instancias rechazadas y E es la proporción de instancias clasificadas incorrectamente.
- Repite los pasos 1, 2 y 3 para un conjunto de umbrales.
- Selecciona el umbral que minimiza Ȓ.
- Crea la Clase de Rechazo y re-etiqueta el conjunto de datos con esa clase cuando las predicciones están por debajo del valor de umbral.
- Entrena un nuevo modelo para el problema de 3 clases.
Una debilidad de este modelo es que necesita dos conjuntos de entrenamiento diferentes: uno para el primer modelo y un segundo que se debe re-etiquetar para entrenar el segundo modelo. Si trabajas con cantidades pequeñas de datos, podrías comprometer el rendimiento del modelo al usar solo la mitad de ellos.
Método 2 – Modelos Especializados por Clase
Este método también fue presentado por Sousa, Ricardo Gamelas, et al. en [1] para un problema binario. Sin embargo, al igual que el método anterior, puede adaptarse al problema multiclase.
La implementación de esta solución incluyó los siguientes pasos:
- Define el Costo de Rechazo para cada modelo, considerando el contexto de tu caso de uso y los costos reales. Por ejemplo, si rechazar una muestra implica que un especialista deba analizarla después, considera la duración de la tarea y el valor de la hora-hombre.
- Entrena el primer modelo para especializarse en la clase 0, es decir, maximizando la precisión para la clase 0.
- Entrena el segundo modelo para especializarse en la clase 1, es decir, maximizando la precisión para la clase 1.
- Calcula las predicciones para el conjunto de prueba, para el modelo 1 y para el modelo 2.
- Para cada punto de datos, si las predicciones coinciden, clasifica la instancia con la clase correspondiente; en caso contrario, clasifícala como "rechazada".
Para extender este método a un problema multiclase, debes entrenar un modelo diferente para cada clase y luego combinar las predicciones de todos los modelos para verificar si hay unanimidad; en caso contrario, el punto de datos se rechaza. Esto significa que el cómputo escala con el número de clases en el problema, lo que lo hace impracticable cuando se trabaja con conjuntos de datos con una gran cantidad de clases, como ImageNet (1000 clases), por ejemplo.
Método 3 – Regularización a través de la Función de Pérdida
El cuarto y último método fue propuesto por Geifman, Yonatan, y Ran El-Yaniv en [2] con la innovadora arquitectura de Red Neuronal Profunda (DNN) llamada "Selectivenet". Selectivenet puede adaptarse a cualquier DNN añadiendo una tarea adicional al modelo para la selección de datos. La tarea de selección es auto-supervisada, lo que significa que no hay verdad base relacionada con esta tarea pero su salida está supervisada por la función de pérdida.
La función de pérdida tiene entonces dos términos: uno para penalizar clasificaciones incorrectas en los puntos de datos que no fueron rechazados por el modelo y un segundo término para penalizar el rechazo en sí mismo a fin de evitar un rechazo masivo.
Además, los autores sugieren unir una tarea auxiliar que puede ser la misma que la tarea de clasificación u otra diferente, siempre que no ignore ningún punto de datos. El propósito de esta tarea es obligar al modelo a aprender todo el espacio de características representado por los datos disponibles y a aprender la relación entre el espacio de características y el rechazo. Añadir la tarea auxiliar implica la adición de un tercer término a la función de pérdida, cuyo impacto está regularizado por un parámetro.
De todos los métodos, este parece el más funcional ya que es fácil de implementar, no requiere una partición de datos adicional para optimizar los umbrales y no causa un aumento significativo en el costo computacional.
Curso
El Espectro del Machine Learning
Para conocer más sobre otras estrategias de aprendizaje, consulta nuestro curso.
Conclusión
Los métodos de Opción de Rechazo son útiles para aumentar la fiabilidad de los métodos de Machine Learning y para evitar malgestiones en situaciones críticas. Sin embargo, no son aplicables a todos los casos de uso. Cuando el modelo rechaza un punto de datos y no puede ignorarse, alguien o algo debe manejarlo, y esa opción podría no estar disponible. Una vez más, la clave para un sistema de IA exitoso está en comprender el problema, encontrar las fortalezas y limitaciones asociadas con cada método posible y diseñar una solución que se adapte al problema y su contexto.
Si buscas más ideas o si deseas discutir soluciones de vanguardia en IA, contacta con nosotros en info@nilg.ai
¿Deseas profundizar en esta idea?
Reserva una reunión con Pedro Serrano
Conoce a Pedro Más información
Referencias
[1] – Sousa, Ricardo Gamelas, et al. "Robust classification with reject option using the self-organizing map." Neural Computing and Applications 26.7 (2015): 1603-1619.
[2] – Geifman, Yonatan, and Ran El-Yaniv. "Selectivenet: A deep neural network with an integrated reject option." International Conference on Machine Learning. PMLR, 2019.
