Introducción
La Inteligencia Artificial Explicable (XAI, Explainable Artificial Intelligence) es una disciplina de la IA que busca que los modelos sean comprensibles e interpretables por los seres humanos. A medida que los sistemas de IA se vuelven más complejos y se emplean en decisiones críticas (medicina, justicia, finanzas), la capacidad de explicar sus predicciones se convierte en un requisito fundamental.
Las referencias formales más relevantes en XAI son Barredo et al. (2020) y Escobar et al. (2021), quienes sistematizan los conceptos y propiedades que deben guiar el diseño de sistemas explicables.
Tema 1: Definición de XAI
XAI engloba técnicas y métodos que permiten a los usuarios entender, confiar y gestionar sistemas de IA de manera efectiva. A diferencia de los modelos de "caja negra" (black-box), donde solo se conocen las entradas y salidas, los sistemas XAI proporcionan una visión interna del proceso de decisión.
El objetivo principal de XAI es producir modelos más explicables sin sacrificar demasiado rendimiento predictivo. Esto implica un equilibrio entre explicabilidad y precisión: los modelos más simples suelen ser más interpretables, pero los más complejos (redes neuronales profundas, Random Forests con muchos árboles) tienden a ofrecer mayor rendimiento.
Tema 2: Conceptos Aplicables a XAI
2.1. Conceptos aplicables al modelo
Estos conceptos describen propiedades internas del modelo que facilitan su comprensión:
Inteligibilidad
Un modelo es inteligible cuando su mecanismo de decisión puede ser entendido directamente por el ser humano sin necesidad de herramientas adicionales. Los árboles de decisión poco profundos y las regresiones lineales son ejemplos de modelos inteligibles por diseño.
Comprensibilidad
La comprensibilidad se refiere a la capacidad del modelo para generar representaciones que los humanos puedan procesar mentalmente. Un modelo comprensible no solo es inteligible, sino que produce explicaciones que el usuario puede asimilar e integrar en su conocimiento previo.
Transparencia
Un modelo transparente permite conocer su estructura interna, sus parámetros y el proceso de entrenamiento. La transparencia implica que los desarrolladores y auditores pueden inspeccionar cómo el modelo transforma las entradas en salidas en cada etapa del procesamiento.
2.2. Conceptos aplicables al resultado
Estos conceptos se refieren a cómo se explican las predicciones o salidas del modelo:
Explicabilidad
La explicabilidad es la capacidad de proporcionar una justificación comprensible de por qué un modelo tomó una determinada decisión. Una explicación puede ser global (describe el comportamiento general del modelo) o local (justifica una predicción específica para una instancia concreta).
Explicabilidad Post-Hoc
La explicabilidad post-hoc se aplica a modelos ya entrenados, sin modificar su estructura. En lugar de construir un modelo intrínsecamente explicable, se utilizan técnicas externas (como SHAP o LIME) para generar explicaciones después del entrenamiento. Es especialmente útil con modelos complejos tipo caja negra donde la transparencia nativa es limitada.
Tema 3: Propiedades y Objetivos Aplicados a XAI
Barredo et al. (2020) identifican siete propiedades clave que debe cumplir un sistema XAI:
Privacidad
Las explicaciones deben garantizar que no se revela información sensible o privada de los datos de entrenamiento. Un sistema explicable que expone datos personales infringe principios éticos y legales (RGPD).
Fiabilidad
Las explicaciones deben ser consistentes y robustas: dos instancias similares deberían recibir explicaciones similares, y pequeñas perturbaciones en los datos no deberían producir explicaciones radicalmente diferentes.
Causalidad
Una explicación causal va más allá de la correlación e identifica las relaciones de causa-efecto reales entre variables. Esto es especialmente importante en aplicaciones donde se toman decisiones de alto impacto.
Transferibilidad
Las explicaciones generadas deben ser aplicables en diferentes contextos o dominios, permitiendo que el conocimiento extraído de un modelo sea reutilizable en situaciones nuevas.
Informatividad
Una explicación informativa aporta valor real al usuario, respondiendo a preguntas concretas sobre el comportamiento del modelo. No basta con generar una explicación; debe ser relevante y útil para la toma de decisiones.
Imparcialidad
Los sistemas XAI deben identificar y comunicar posibles sesgos del modelo. Una explicación imparcial no favorece ni perjudica injustamente a ningún grupo, y permite detectar discriminaciones en el sistema.
Interactividad
La interactividad permite al usuario explorar diferentes escenarios y recibir explicaciones adaptadas a sus consultas ("¿qué pasaría si cambiamos esta variable?"). Los sistemas interactivos de XAI mejoran la confianza y comprensión del usuario.
Tema 4: SHAP (Shapley Additive Explanations)
SHAP es uno de los métodos post-hoc más utilizados en XAI. Se basa en la teoría de juegos cooperativos, concretamente en los valores de Shapley, para asignar a cada característica su contribución marginal a la predicción del modelo.
La librería Python shap (documentación: shap.readthedocs.io) proporciona implementaciones eficientes para distintos tipos de modelos.
Tipos de gráficos SHAP
- Summary plot: Muestra la importancia global de cada característica. Combina la importancia con la dirección del efecto (positivo o negativo) mediante un gráfico de puntos codificado por color.
- Force plot: Explicación local para una instancia concreta. Visualiza cómo cada variable "empuja" la predicción hacia valores más altos (en rojo) o más bajos (en azul) respecto al valor base del modelo.
- Dependence plot: Muestra la relación entre una variable específica y sus valores SHAP, revelando tendencias no lineales e interacciones con otras variables.
TreeExplainer
Para modelos basados en árboles (Random Forest, Gradient Boosting, XGBoost), SHAP utiliza el TreeExplainer, un algoritmo altamente eficiente que calcula los valores SHAP exactos en tiempo polinómico. Esto lo hace especialmente adecuado para grandes conjuntos de datos.
Ejemplo de uso en Python
import shap
import numpy as np
# Crear explainer para un modelo basado en árboles
explainer = shap.TreeExplainer(modelo_rf)
# Calcular valores SHAP para el conjunto de test
shap_values = explainer.shap_values(X_test)
# Summary plot (importancia global)
shap.summary_plot(shap_values[1], X_test)
# Force plot (explicación local para la primera instancia)
shap.force_plot(explainer.expected_value[1],
shap_values[1][0], X_test.iloc[0])Tema 5: Otros Métodos de XAI
LIME (Local Interpretable Model-Agnostic Explanations)
LIME genera explicaciones locales creando un modelo interpretable simple (por ejemplo, una regresión lineal) en el entorno de una instancia concreta. Pertuba la instancia de interés, obtiene las predicciones del modelo original, y ajusta el modelo simple sobre esas perturbaciones.
LIME es agnóstico al modelo: funciona con cualquier clasificador o regresor, independientemente de su arquitectura interna.
ICE (Individual Conditional Expectation)
Las gráficas ICE muestran cómo la predicción de una instancia específica cambia cuando se varía el valor de una característica, manteniendo las demás constantes. Son la versión individual de los Partial Dependence Plots (PDP), y permiten detectar heterogeneidad en los efectos de las variables.
Caso Práctico: Explicación de un Modelo de Clasificación usando SHAP
En este caso práctico se construye un modelo de clasificación con Random Forest sobre un dataset sintético generado con make_classification de scikit-learn (300 muestras, 10 características). El objetivo es aplicar SHAP para interpretar las predicciones del modelo.
Resultados del modelo
- Accuracy en test: 0.89
- Se utiliza
TreeExplainerpara calcular los valores SHAP - El summary plot revela las características más influyentes globalmente
- El force plot muestra la contribución individual de cada variable para una predicción concreta
Código del caso práctico
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import shap
# Generar datos sintéticos
X, y = make_classification(n_samples=300, n_features=10, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Entrenar Random Forest
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# Evaluar
y_pred = rf.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred):.2f}") # 0.89
# Explicar con SHAP
explainer = shap.TreeExplainer(rf)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values[1], X_test)Este caso práctico ilustra cómo la explicabilidad post-hoc con SHAP permite auditar un modelo de caja negra, identificar las variables más relevantes y comunicar el comportamiento del modelo de forma transparente a stakeholders no técnicos.