Los modelos de aprendizaje automático a menudo se consideran “cajas negras”, en las que incluso sus diseñadores no pueden explicar cómo o por qué un modelo produjo una predicción específica. Vertex Explainable AI ofrece explicaciones basadas en atributos y basadas en ejemplos para brindar una mejor comprensión de la toma de decisiones de los modelos.
Conocer cómo se comporta un modelo y cómo se ve afectado por su conjunto de datos de entrenamiento le da a cualquier persona que compila o usa AA habilidades nuevas para mejorar modelos, aumentar la confianza en sus predicciones y comprender cuándo y por qué algo sale mal.
Explicaciones basadas en ejemplos
Con las explicaciones basadas en ejemplos, Vertex AI usa la búsqueda de vecino más cercano para mostrar una lista de los ejemplos (por lo general, del conjunto de entrenamiento) más similares a la entrada. Debido a que se espera que entradas similares generen predicciones similares, podemos usar estas explicaciones para explorar y explicar el comportamiento de nuestro modelo.
Las explicaciones basadas en ejemplos pueden ser útiles en varias situaciones:
Mejora tus datos o tu modelo: Uno de los casos de uso principales de las explicacionesbasadas en ejemplos es ayudarte a comprender por qué tu modelo cometió ciertos erroresen sus predicciones y a usar esas estadísticas para mejorar tus datos o tu modelo. Para ello, primero selecciona los datos de prueba que te interesan. Esto puede ser debido a necesidades comerciales o a heurísticas, como los datos en los que el modelo cometió los errores más graves.
Por ejemplo, supongamos que tenemos un modelo que clasifica las imágenes como un pájaro o un avión, y que clasifica mal el siguiente pájaro como un avión con alta confianza. Puedes usar las explicaciones basadas en ejemplos para recuperar imágenes similares del conjunto de entrenamiento y descubrir qué está sucediendo.
Dado que todas sus explicaciones son siluetas oscuras de la clase de avión, es una señal para obtener más siluetas de aves.
Sin embargo, si las explicaciones provenían principalmente de la clase de observación, es una señal de que nuestro modelo no puede aprender relaciones incluso cuando los datos son enriquecidos y que debemos considerar aumentar la complejidad del modelo (por ejemplo, agregar más de capas).
Interpreta los datos nuevos: Supongamos que el modelo se entrenó para clasificar aves y aviones, pero en el mundo real también tiene imágenes de comentas, drones y helicópteros. Si tu conjunto de datos de vecino más cercano incluye algunas imágenes etiquetadas de cometas, drones y helicópteros, puedes usar explicaciones basadas en ejemplos para clasificar imágenes nuevas mediante la aplicación de la etiqueta más frecuente de sus vecinos más cercanos. Esto es posible porque se espera que la representación latente de las cometas sea diferente de las de las aves o los aviones, y que sea más similar a las de las cometas etiquetadas en el conjunto de datos de vecinos más cercanos.
Detectar anomalías: De manera intuitiva, si una instancia está lejos de todos los datos en el conjunto de entrenamiento, es probable que sea un valor atípico. Se sabe que las redes neuronales son demasiado confiadas en sus errores, por lo que enmascaran sus errores. Supervisar tus modelos con explicaciones basadas en ejemplos ayuda a identificar los valores extremos más graves.
Aprendizaje activo: Las explicaciones basadas en ejemplos pueden ayudarte a identificar las instancias que podrían beneficiarse del etiquetado manual. Esto es particularmente útil si el etiquetado es lento o costoso, lo que garantiza que obtengas el conjunto de datos más rico posible a partir de recursos de etiquetado limitados.
Por ejemplo, supongamos que tenemos un modelo que clasifica a un paciente como que tiene un resfriado o una gripe. Si un paciente se clasifica como que tiene gripe y todas sus explicaciones basadas en ejemplos son de la clase de gripe, el médico puede estar más seguro de la predicción del modelo sin tener que analizarlo más de cerca. Sin embargo, si algunas de las explicaciones provienen de la clase de gripe y otras de la clase de resfriado, valdría la pena recabar la opinión de un médico. Esto generará un conjunto de datos en el que las instancias difíciles tengan más etiquetas, lo que facilitará que los modelos downstream aprendan relaciones complejas.
Para crear un modelo que admita explicaciones basadas en ejemplos, consulta Configura explicaciones basadas en ejemplos.
Tipos de modelos admitidos
Se admite cualquier modelo de TensorFlow que pueda proporcionar una incorporación (representación latente) para las entradas. No se admiten los modelos basados en árboles, como los árboles de decisión. Aún no se admiten modelos de otros frameworks, como PyTorch o XGBoost.
En el caso de las redes neuronales profundas, se supone que las capas superiores (más cerca de la capa de salida) aprendieron algo “significativo” y, por lo tanto, la penúltima capa suele elegirse para las incorporaciones. Puedes experimentar con algunas capas diferentes, investigar los ejemplos que obtienes y elegir una basada en algunas medidas cuantitativas (coincidencia de clases) o cualitativas (parece razonable).
Para ver una demostración sobre cómo extraer las incorporaciones de un modelo de TensorFlow y cómo realizar la búsqueda de vecinos más cercanos, consulta el notebook de explicaciones basadas en ejemplos.
Explicaciones basadas en atributos
Vertex Explainable AI integra atribuciones de atributos en Vertex AI. En esta sección, se proporciona una breve descripción general conceptual de los métodos de atribución de atributos disponibles con Vertex AI.
Las atribuciones de atributos indican cuánto contribuyó cada atributo del modelo a las predicciones para cada instancia determinada. Cuando solicitas predicciones, obtienes valores previstos según corresponda para el modelo. Cuando solicitas explicaciones, obtienes las predicciones junto con la información de atribución de atributos.
Las atribuciones de atributos funcionan en datos tabulares y, también, incluyen funciones de visualización integradas para los datos de imagen. Considera los siguientes ejemplos:
Una red neuronal profunda está entrenada para predecir la duración de un viaje en bicicleta, según los datos del clima y los datos compartidos de viajes anteriores. Si solo solicitas predicciones de este modelo, obtendrás predicciones de la duración de los viajes en bicicleta en minutos. Si solicitas explicaciones, obtendrás la duración prevista del viaje en bicicleta, y una puntuación de atribución relativa a cada atributo de la solicitud de explicaciones. Las puntuaciones de atribución muestran cuánto influyó el atributo en el cambio del valor de la predicción, en relación con el valor del modelo de referencia que especificaste. Elige un modelo de referencia que sea relevante para el modelo (en este caso, la duración media del viaje en bicicleta). Puedes trazar la puntuación de atribución de atributos para ver cuáles son los atributos que más contribuyeron a la predicción resultante:
Un modelo de clasificación de imágenes está entrenado para predecir si una imagen determinada contiene un perro o un gato. Si solicitas predicciones de este modelo en un conjunto de imágenes nuevo, recibirás una predicción para cada imagen (“perro” o “gato”). Si solicitas explicaciones, obtendrás la clase prevista y una superposición de la imagen, que muestra qué píxeles contribuyeron más a la predicción resultante:
Un modelo de clasificación de imágenes está entrenado para predecir la especie de una flor en una imagen. Si solicitas predicciones de este modelo en un conjunto de imágenes nuevo, recibirás una predicción para cada imagen (“margarita” o “diente de león”). Si solicitas explicaciones, obtendrás la clase prevista y una superposición de la imagen, que muestra qué áreas de la imagen contribuyeron más a la predicción resultante:
Tipos de modelos admitidos
La atribución de atributos es compatible con todos los tipos de modelos (tanto AutoML como entrenamiento personalizado), los frameworks (TensorFlow, scikit, XGBoost), los modelos de BigQuery ML y las modalidades (imágenes, texto, datos tabulares, video).
A fin de usar la atribución de atributos, configura el modelo para la atribución de atributos cuando lo subas o lo registres en Vertex AI Model Registry.
Además, para los siguientes tipos de modelos de AutoML, la atribución de atributos está integrada en la consola de Google Cloud:
- Modelos de imagen de AutoML (solo modelos de clasificación)
- Modelos tabulares de AutoML (solo modelos de clasificación y regresión)
Para los tipos de modelos de AutoML integrados, puedes habilitar la atribución de atributos en la consola de Google Cloud durante el entrenamiento y ver la importancia de los atributos del modelo para el modelo en general y la importancia de los atributos locales para las predicciones tanto en línea como por lotes.
Para los tipos de modelos de AutoML que no están integrados, aún puedes habilitar la atribución de atributos mediante la exportación de los artefactos del modelo y la configuración de la atribución de atributos cuando subes los artefactos del modelo a Vertex AI Model Registry.
Ventajas
Si inspeccionas instancias específicas y agregas atribuciones de atributos en el conjunto de datos de entrenamiento, puedes obtener estadísticas más detalladas sobre cómo funciona el modelo. Ten en cuenta las siguientes ventajas:
Depuración de modelos: Las atribuciones de atributos pueden ayudar a detectar problemas en los datos que las técnicas de evaluación de modelos estándar suelen pasar por alto.
Por ejemplo, un modelo de patología de imágenes logró resultados sospechosamente buenos en un conjunto de datos de prueba de imágenes de rayos X de tórax. Las atribuciones de atributos revelaron que la exactitud alta del modelo dependía de las marcas del bolígrafo del radiólogo en la imagen. Para obtener más detalles sobre este ejemplo, consulta el Informe sobre AI Explanations.
Optimización de modelos: Puedes identificar y quitar atributos que sean menos importantes, lo que puede generar modelos más eficaces.
Métodos de atribución de atributos
Los métodos de atribución de atributos se basan en valores de Shapley, un algoritmo cooperativo de teoría de juegos que asigna crédito a cada jugador para obtener un resultado en particular. Cuando se aplica a los modelos de aprendizaje automático, cada atributo del modelo se considera un “jugador” del juego. Vertex Explainable AI asigna crédito proporcional a cada atributo para el resultado de una predicción en particular.
Método de Shapley con muestreo
El método de Shapley con muestreo proporciona una aproximación de muestreo de los valores exactos de Shapley. Los modelos tabulares de AutoML usan el método de Shapley con muestreo para la importancia de los atributos. El Shapley con muestreo funciona bien para estos modelos, que son metaetiquetas de árboles y redes neuronales.
Para obtener información detallada sobre cómo funciona el método de Shapley de muestra, lee el documento Cómo limitar el error de estimación de la aproximación de valores de Shapley basada en la muestra.
Método de gradientes integrados
En el método de gradientes integrados, el gradiente del resultado de la predicción se calcula en función de los atributos de la entrada, a lo largo de una ruta integral.
- Los gradientes se calculan en diferentes intervalos de un parámetro de escalamiento. El tamaño de cada intervalo se determina mediante la regla del cuadrante gaussiano. (Para los datos de imágenes, piensa en este parámetro de escalamiento como un “control deslizante” que escala todos los píxeles de la imagen a negro).
- Los gradientes están integrados de la siguiente manera:
- La integral se aproxima mediante un promedio ponderado.
- Se calcula el producto en términos de elementos de los gradientes promediados y la entrada original.
Para obtener una explicación intuitiva de este proceso aplicado a las imágenes, consulta la entrada de blog “Attributing a deep network's prediction to its input features” (Atribuye la predicción de una red profunda a sus atributos de entrada). Los autores del artículo original sobre gradientes integrados (Axiomatic Attribution for Deep Networks) (Atribución axiomática para redes profundas) muestran en la entrada de blog anterior cómo son las imágenes en cada paso del proceso.
Método XRAI
El método XRAI combina el método de gradientes integrados con pasos adicionales para determinar qué regiones de la imagen contribuyen en mayor medida a una predicción de clase determinada.
- Atribución a nivel de píxeles: XRAI realiza la atribución a nivel de píxeles para la imagen de entrada. En este paso, XRAI usa el método de gradientes integrados en un modelo de referencia negro y uno blanco.
- Sobresegmentación: Más allá de la atribución a nivel de píxeles, XRAI sobresegmenta la imagen para crear un mosaico de regiones pequeñas. XRAI usa el método basado en grafos de Felzenswalb para crear los segmentos de la imagen.
- Selección de la región: XRAI agrega la atribución a nivel de píxeles dentro de cada segmento para determinar su densidad de atribución. Mediante estos valores, XRAI clasifica los segmentos y, luego, los ordena del más positivo al menos positivo. Esto determina qué áreas de la imagen se destacan más o contribuyen en mayor medida a una predicción de clase determinada.
Compara métodos de atribución de atributos
Vertex Explainable AI ofrece tres métodos para usar las atribuciones de atributos: Shapley con muestreo, gradientes integrados y XRAI.
Método | Explicación básica | Tipos de modelos recomendados | Casos de uso de ejemplo | Recursos Model compatibles de Vertex AI |
---|---|---|---|---|
Shapley de muestra | Asigna crédito por el resultado de los atributos y considera las diversas permutaciones de estos. Este método proporciona una aproximación de muestreo de los valores exactos de Shapley. | Modelos no diferenciables, como ensambles de árboles y redes neuronales |
|
|
Gradientes integrados | Un método basado en gradientes para procesar de modo eficaz las atribuciones de atributos con las mismas propiedades axiomáticas que el valor de Shapley. | Modelos diferenciables, como redes neuronales. Se recomiendan sobre todo para modelos con espacios de atributos grandes. También se recomiendan para las imágenes de bajo contraste, como rayos X. |
|
|
XRAI (eXplanation with Ranked Area Integrals) (explicación con integrales de área clasificadas) | Según el método de gradientes integrados, XRAI evalúa las regiones superpuestas de la imagen para crear un mapa de prominencia, en el que se destacan las regiones relevantes de la imagen en lugar de los píxeles. | Modelos que aceptan entradas de imagen. Se recomiendan sobre todo para imágenes naturales, que son escenas reales que contienen varios objetos. |
|
|
Para obtener una comparación más detallada de los métodos de atribución, consulta el Informe sobre AI Explanations.
Modelos diferenciables y no diferenciables
En los modelos diferenciables, puedes calcular el derivado de todas las operaciones en el grafo de TensorFlow. Esta propiedad permite la propagación inversa en esos modelos. Por ejemplo, las redes neuronales son diferenciables. A fin de obtener atribuciones de atributos para modelos diferenciables, usa el método de gradientes integrados.
Nota: El método de gradientes integrados no funciona en modelos no diferenciables. Obtén más información sobre cómo codificar entradas no diferenciables para trabajar con el método de gradientes integrados.
Los modelos no diferenciables incluyen operaciones no diferenciables en el grafo de TensorFlow, como las que realizan tareas de decodificación y redondeo. Por ejemplo, un modelo creado como un ensamble de árboles y redes neuronales no es diferenciable. A fin de obtener atribuciones de atributos para modelos no diferenciables, usa el método de Shapley con muestreo. El método de Shapley también funciona en modelos diferenciables, pero en ese caso, tiene un procesamiento más costoso de lo necesario.
Limitaciones conceptuales
Ten en cuenta las siguientes limitaciones de las atribuciones de atributos:
Las atribuciones de atributos, incluida la importancia de los atributos locales para AutoML, son específicas de las predicciones individuales. Si inspeccionas una atribución de atributos para una predicción individual, puedes obtener una buena estadística, aunque es posible que esta no se aplique a toda la clase de esa instancia individual ni a todo el modelo.
Para obtener estadísticas más generalizadas de los modelos de AutoML, consulta la importancia de los atributos del modelo. A fin de obtener estadísticas más generalizables sobre otros modelos, agrega las atribuciones sobre subconjuntos en el conjunto de datos o en todo el conjunto de datos.
Aunque las atribuciones de atributos pueden ayudar con la depuración de modelos, no siempre indican con claridad si un problema surge del modelo o de los datos con los que este se entrena. Usa tu mejor criterio y diagnostica problemas de datos comunes para reducir el rango de causas posibles.
Las atribuciones de atributos están sujetas a ataques adversarios similares a los que experimentan las predicciones en los modelos complejos.
Para obtener más información sobre las limitaciones, consulta la lista de limitaciones de alto nivel y el Informe sobre AI Explanations.
Referencias
Para la atribución de atributos, las implementaciones de Shapley con muestreo, los gradientes integrados y XRAI se basan en las siguientes referencias, respectivamente:
- Limita el error de estimación de la aproximación de valores de Shapley basada en la muestra
- Atribuciones axiomáticas para redes profundas
- XRAI: Mejores atribuciones a través de las regiones
Para obtener más información sobre la implementación de Explainable AI, consulta el Informe sobre AI Explanations.
Notebooks
Para comenzar a usar Vertex Explainable AI, usa estos notebooks:
Notebook | Método de explicabilidad | Framework de AA | Modalidad | Tarea |
---|---|---|---|---|
Vínculo de GitHub | explicaciones basadas en ejemplos | TensorFlow | imagen | Entrena un modelo de clasificación que prediga la clase de la imagen de entrada proporcionada y obtén explicaciones en línea |
Vínculo de GitHub | basadas en atributos | AutoML | tabular | Entrena un modelo de clasificación binaria que prediga si un cliente bancario personalizado compró un depósito a plazo fijo y obtén explicaciones por lotes |
Vínculo de GitHub | basadas en atributos | AutoML | tabular | Entrena un modelo de clasificación que prediga el tipo de especie de flor de Iris y obtén explicaciones en línea |
Vínculo de GitHub | basada en atributos (Shapley con muestreo) | scikit-learn | tabular | Entrena un modelo de regresión lineal que prediga las tarifas de taxi y obtén explicaciones en línea |
Vínculo de GitHub | basadas en atributos (gradientes integrados) | TensorFlow | imagen | Entrena un modelo de clasificación que prediga la clase de la imagen de entrada proporcionada y obtén explicaciones por lotes |
Vínculo de GitHub | basadas en atributos (gradientes integrados) | TensorFlow | imagen | Entrena un modelo de clasificación que prediga la clase de la imagen de entrada proporcionada y obtén explicaciones en línea |
Vínculo de GitHub | basadas en atributos (gradientes integrados) | TensorFlow | tabular | Entrena un modelo de regresión que prediga el precio promedio de una casa y obtén explicaciones por lotes |
Vínculo de GitHub | basadas en atributos (gradientes integrados) | TensorFlow | tabular | Entrena un modelo de regresión que prediga el precio promedio de una casa y obtén explicaciones en línea |
Vínculo de GitHub | basadas en atributos (gradientes integrados) | TensorFlow | imagen | Usa Inception_v3, un modelo de clasificación previamente entrenado, para obtener explicaciones en línea y por lotes |
Vínculo de GitHub | basada en atributos (Shapley con muestreo) | TensorFlow | escribes. | Entrena un modelo de LSTM que clasifique las opiniones sobre películas como positivas o negativas con el texto de la opinión y obtén explicaciones en línea |
Recursos educativos
Los siguientes recursos proporcionan material educativo más útil:
- Explainable AI para profesionales
- Aprendizaje automático interpretable: valores de Shapley
- Repositorio de GitHub de los gradientes integrados de Ankur Taly.
- Introducción a los valores de Shapley
¿Qué sigue?
- Configura el modelo para explicaciones basadas en atributos
- Configura el modelo para explicaciones basadas en atributos
- Consulta la importancia de los atributos para los modelos tabulares de AutoML.