Introdução à IA explicável

IA explicável em Python

Fouad Trad

Machine Learning Engineer

Sobre mim

fouadtrad.jpg

Fouad Trad
  • Engenheiro de machine learning
  • Doutorando
  • Especialista em IA para Cibersegurança
LinkedIn

mylinkedin.jpg

IA explicável em Python

Inteligência artificial

  • IA permite que máquinas executem tarefas humanas

Imagem de uma pessoa jogando xadrez com uma máquina.

IA explicável em Python

A necessidade de explicabilidade

 

Imagem mostrando um sistema caixa-preta recebendo entrada e gerando saída.

 

  • IA caixa-preta: sem entender a tomada de decisão
IA explicável em Python

A necessidade de explicabilidade

 

Imagem mostrando um sistema caixa-branca recebendo entrada e gerando saída.

 

  • IA caixa-preta: sem entender a tomada de decisão
  • IA explicável: entender o funcionamento interno do modelo
IA explicável em Python

Explicabilidade vs. acurácia

  • Modelos básicos são:

    • Mais explicáveis
    • Menos precisos
  • Modelos complexos são:

    • Mais precisos
    • Menos explicáveis

Imagem mostrando modelos de IA em um gráfico de básicos a complexos (baseados em regras, lineares, árvores de decisão, k-NN, SVMs e redes neurais), destacando que os básicos costumam ser mais explicáveis e menos precisos, enquanto os complexos são mais precisos e difíceis de interpretar.

IA explicável em Python

Árvores de decisão vs. redes neurais

Árvores de decisão

Mostram o caminho da decisão por condições

Representação de uma árvore de decisão mostrando como previsões são feitas com base em múltiplas condições

IA explicável em Python

Árvores de decisão vs. redes neurais

Árvores de decisão

Mostram o caminho da decisão por condições

Árvore de decisão do exemplo de admissão mostrando que, se o aluno não tem graduação, é rejeitado. Caso contrário, só é aceito se a nota for maior que 8,5

IA explicável em Python

Árvores de decisão vs. redes neurais

Árvores de decisão

Mostram o caminho da decisão por condições

Árvore de decisão do exemplo de admissão mostrando que, se o aluno não tem graduação, é rejeitado. Caso contrário, só é aceito se a nota for maior que 8,5

Redes neurais

Não são transparentes por natureza

Imagem mostrando a estrutura de uma rede neural: várias camadas ocultas, cada uma com vários neurônios.

IA explicável em Python

Árvores de decisão vs. redes neurais

Árvores de decisão

Mostram o caminho da decisão por condições

Árvore de decisão do exemplo de admissão mostrando que, se o aluno não tem graduação, é rejeitado. Caso contrário, só é aceito se a nota for maior que 8,5

Redes neurais

Não são transparentes por natureza

Imagem mostrando a mesma rede neural recebendo atributos do aluno e prevendo aceitação ou rejeição.

IA explicável em Python

Previsão de admissão de alunos

GRE Score TOEFL Score University Rating SOP LOR CGPA Accept
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

 

  • Notas de teste: GRE e TOEFL
  • Avaliação da universidade
  • SOP: statement of purpose
  • LOR: letter of recommendation
  • CGPA: cumulative grade point average
IA explicável em Python

Previsão de admissão de alunos

Árvore de decisão
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
Rede neural
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 explicável em Python

Regras da árvore de decisão

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 explicável em Python

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

Específicas do modelo

Aplicam-se a um modelo particular

Imagem mostrando uma chave feita para uma fechadura específica

IA explicável em Python

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

Específicas do modelo

Aplicam-se a um modelo particular

Imagem mostrando uma chave feita para uma fechadura específica

Agnósticas ao modelo

Aplicam-se a qualquer modelo

Imagem mostrando uma chave-mestra que abre múltiplas fechaduras

IA explicável em Python

O que vem a seguir?

  • Técnicas específicas e agnósticas ao modelo
  • Métodos locais e globais
  • Tópicos avançados:
    • Métricas de explicabilidade
    • Explicabilidade não supervisionada
    • Explicabilidade em IA generativa

Logotipos das bibliotecas: SHAP, LIME e Scikit-learn

IA explicável em Python

Vamos praticar!

IA explicável em Python

Preparing Video For Download...