Wprowadzenie do wyjaśnialnej AI

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

O mnie

fouadtrad.jpg

Fouad Trad
  • Inżynier uczenia maszynowego
  • Doktorant
  • Specjalizacja: AI w cyberbezpieczeństwie
LinkedIn

mylinkedin.jpg

Wyjaśnialne AI w Pythonie

Sztuczna inteligencja

  • AI umożliwia maszynom wykonywanie zadań podobnych do ludzkich

Obraz przedstawiający człowieka grającego w szachy z maszyną.

Wyjaśnialne AI w Pythonie

Potrzeba wyjaśnialności

 

Obraz przedstawiający zamknięty system czarnej skrzynki, który przyjmuje dane wejściowe i generuje dane wyjściowe.

 

  • Czarna skrzynka AI: brak zrozumienia procesu decyzyjnego
Wyjaśnialne AI w Pythonie

Potrzeba wyjaśnialności

 

Obraz przedstawiający otwarty system skrzynki, który przyjmuje dane wejściowe i generuje dane wyjściowe.

 

  • Czarna skrzynka AI: brak zrozumienia procesu decyzyjnego
  • Wyjaśnialna AI: zrozumienie wewnętrznych mechanizmów modelu
Wyjaśnialne AI w Pythonie

Wyjaśnialność a dokładność

  • Proste modele są:

    • Bardziej wyjaśnialne
    • Mniej precyzyjne
  • Złożone modele są:

    • Bardziej precyzyjne
    • Trudniejsze do wyjaśnienia

Wykres przedstawiający modele AI od prostych do złożonych (oparte na regułach, modele liniowe, drzewa decyzyjne, k-NN, SVM i sieci neuronowe), pokazujący, że proste modele są bardziej wyjaśnialne, ale mniej precyzyjne, a złożone – wysoce precyzyjne, lecz trudniejsze do interpretacji.

Wyjaśnialne AI w Pythonie

Drzewa decyzyjne a sieci neuronowe

Drzewa decyzyjne

Pokazują ścieżkę decyzyjną na podstawie warunków

Reprezentacja drzewa decyzyjnego pokazująca, jak prognozy są tworzone na podstawie wielu warunków

Wyjaśnialne AI w Pythonie

Drzewa decyzyjne a sieci neuronowe

Drzewa decyzyjne

Pokazują ścieżkę decyzyjną na podstawie warunków

Drzewo decyzyjne dla przykładu rekrutacji: jeśli student nie ma dyplomu licencjata, zostaje odrzucony; w przeciwnym razie jest przyjęty tylko wtedy, gdy jego ocena przekracza 8,5

Wyjaśnialne AI w Pythonie

Drzewa decyzyjne a sieci neuronowe

Drzewa decyzyjne

Pokazują ścieżkę decyzyjną na podstawie warunków

Drzewo decyzyjne dla przykładu rekrutacji: jeśli student nie ma dyplomu licencjata, zostaje odrzucony; w przeciwnym razie jest przyjęty tylko wtedy, gdy jego ocena przekracza 8,5

Sieci neuronowe

Z natury nieprzejrzyste

Obraz przedstawiający strukturę sieci neuronowej: zbiór warstw ukrytych, z których każda zawiera wiele neuronów.

Wyjaśnialne AI w Pythonie

Drzewa decyzyjne a sieci neuronowe

Drzewa decyzyjne

Pokazują ścieżkę decyzyjną na podstawie warunków

Drzewo decyzyjne dla przykładu rekrutacji: jeśli student nie ma dyplomu licencjata, zostaje odrzucony; w przeciwnym razie jest przyjęty tylko wtedy, gdy jego ocena przekracza 8,5

Sieci neuronowe

Z natury nieprzejrzyste

Obraz przedstawiający tę samą sieć neuronową, która przyjmuje cechy studenta i przewiduje, czy powinien zostać przyjęty, czy odrzucony.

Wyjaśnialne AI w Pythonie

Przewidywanie przyjęcia studenta

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

 

  • Wyniki testów: GRE i TOEFL
  • Ocena uczelni
  • SOP: uzasadnienie celu studiów
  • LOR: list polecający
  • CGPA: średnia ocen
Wyjaśnialne AI w Pythonie

Przewidywanie przyjęcia studenta

Drzewo decyzyjne
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
Sieć neuronowa
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
Wyjaśnialne AI w Pythonie

Reguły drzewa decyzyjnego

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 ...
Wyjaśnialne AI w Pythonie

Techniki zależne od modelu a niezależne od modelu

Zależne od modelu

Stosują się do konkretnego modelu

Obraz przedstawiający klucz zaprojektowany do konkretnego zamka

Wyjaśnialne AI w Pythonie

Techniki zależne od modelu a niezależne od modelu

Zależne od modelu

Stosują się do konkretnego modelu

Obraz przedstawiający klucz zaprojektowany do konkretnego zamka

Niezależne od modelu

Stosują się do dowolnego modelu

Obraz przedstawiający wytrych, który może otworzyć wiele zamków

Wyjaśnialne AI w Pythonie

Co dalej?

  • Techniki zależne i niezależne od modelu
  • Metody lokalne i globalne
  • Tematy zaawansowane:
    • Metryki wyjaśnialności
    • Wyjaśnialność nienadzorowana
    • Wyjaśnialność generatywnej AI

Logo bibliotek: SHAP, LIME i Scikit-learn

Wyjaśnialne AI w Pythonie

Czas na ćwiczenia!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...