Introducción a la IA explicable

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Sobre mí

fouadtrad.jpg

Fouad Trad
  • Ingeniero de machine learning
  • Doctorando
  • Especializado en IA para ciberseguridad
LinkedIn

mylinkedin.jpg

IA explicable en Python

Inteligencia artificial

  • La IA permite a las máquinas realizar tareas humanas

Imagen que muestra a un humano jugando al ajedrez con una máquina.

IA explicable en Python

La necesidad de explicabilidad

 

Imagen que muestra un sistema de caja negra cerrado que recibe una entrada y genera una salida.

 

  • IA de caja negra: no se entiende cómo decide
IA explicable en Python

La necesidad de explicabilidad

 

Imagen que muestra un sistema de caja abierta que recibe una entrada y genera una salida.

 

  • IA de caja negra: no se entiende cómo decide
  • IA explicable: permite entender el funcionamiento interno del modelo
IA explicable en Python

Explicabilidad vs. precisión

  • Modelos básicos:

    • Más explicables
    • Menos precisos
  • Modelos complejos:

    • Más precisos
    • Menos explicables

Imagen que muestra modelos de IA en un gráfico desde básicos a complejos (basados en reglas, lineales, árboles de decisión, k-NN, SVM y redes neuronales), destacando que los básicos suelen ser más explicables pero menos precisos, mientras que los complejos son muy precisos pero más difíciles de interpretar.

IA explicable en Python

Árboles de decisión vs. redes neuronales

Árboles de decisión

Muestran la ruta de decisión según condiciones

Representación de un árbol de decisión que muestra cómo se predice a partir de múltiples condiciones

IA explicable en Python

Árboles de decisión vs. redes neuronales

Árboles de decisión

Muestran la ruta de decisión según condiciones

Árbol de decisión del ejemplo de admisiones: si un estudiante no tiene grado universitario, se le rechaza. Si lo tiene, solo se acepta si su nota es mayor que 8.5

IA explicable en Python

Árboles de decisión vs. redes neuronales

Árboles de decisión

Muestran la ruta de decisión según condiciones

Árbol de decisión del ejemplo de admisiones: si un estudiante no tiene grado universitario, se le rechaza. Si lo tiene, solo se acepta si su nota es mayor que 8.5

Redes neuronales

No son transparentes por sí mismas

Imagen que muestra la estructura de una red neuronal: capas ocultas con múltiples neuronas.

IA explicable en Python

Árboles de decisión vs. redes neuronales

Árboles de decisión

Muestran la ruta de decisión según condiciones

Árbol de decisión del ejemplo de admisiones: si un estudiante no tiene grado universitario, se le rechaza. Si lo tiene, solo se acepta si su nota es mayor que 8.5

Redes neuronales

No son transparentes por sí mismas

Imagen que muestra la misma red neuronal recibiendo características del estudiante y prediciendo si debe ser aceptado o rechazado.

IA explicable en Python

Predicción de admisión de estudiantes

Puntuación GRE Puntuación TOEFL Valoración de la universidad SOP LOR CGPA Aceptar
337 118 4 4.5 4.5 9.65 1
316 104 3 3 3.5 8.00 1
314 103 2 2 3 8.21 0

 

  • Tests: GRE y TOEFL
  • Valoración de la universidad
  • SOP: statement of purpose
  • LOR: carta de recomendación
  • CGPA: nota media acumulada
IA explicable en Python

Predicción de admisión de estudiantes

Árbol de decisión
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(max_depth=5)

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Decision Tree: {acc}")
Accuracy of Decision Tree: 0.82
Red neuronal
from sklearn.neural_network import MLPClassifier

model = MLPClassifier(hidden_layer_sizes=(1000,1000))

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Neural Network: {acc}")
Accuracy of Neural Network: 0.9
IA explicable en Python

Reglas del árbol de decisión

from sklearn.tree export_text

rules = export_text(model, feature_names=list(X_train.columns))

print(rules)
|--- CGPA <= 8.34
|   |--- GRE Score <= 320.50
|   |   |--- class: 0

| |--- GRE Score > 320.50 | | |--- class: 1
|--- CGPA > 8.34 | |--- GRE Score <= 319.50 | | |--- class: 1 ...
IA explicable en Python

Técnicas específicas vs. agnósticas al modelo

Específicas del modelo

Aplican a un modelo concreto

Imagen que muestra una llave diseñada para una cerradura específica

IA explicable en Python

Técnicas específicas vs. agnósticas al modelo

Específicas del modelo

Aplican a un modelo concreto

Imagen que muestra una llave diseñada para una cerradura específica

Agnósticas al modelo

Aplican a cualquier modelo

Imagen que muestra una llave maestra que puede abrir múltiples cerraduras

IA explicable en Python

¿Qué sigue?

  • Técnicas específicas y agnósticas al modelo
  • Métodos locales y globales
  • Temas avanzados:
    • Métricas de explicabilidad
    • Explicabilidad no supervisada
    • Explicabilidad en IA generativa

Logos de las siguientes bibliotecas: SHAP, LIME y Scikit-learn

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...