Введение в объяснимый ИИ

Объяснимый ИИ на Python

Fouad Trad

Machine Learning Engineer

Об авторе

fouadtrad.jpg

Fouad Trad
  • Инженер по машинному обучению
  • Кандидат наук
  • Специализация: ИИ в кибербезопасности
LinkedIn

mylinkedin.jpg

Объяснимый ИИ на Python

Искусственный интеллект

  • ИИ позволяет машинам выполнять задачи, свойственные человеку

Изображение: человек играет в шахматы с машиной.

Объяснимый ИИ на Python

Зачем нужна объяснимость

 

Изображение: закрытая система «чёрный ящик», получающая входные данные и генерирующая выходные.

 

  • ИИ «чёрный ящик»: процесс принятия решений непрозрачен
Объяснимый ИИ на Python

Зачем нужна объяснимость

 

Изображение: открытая система, получающая входные данные и генерирующая выходные.

 

  • ИИ «чёрный ящик»: процесс принятия решений непрозрачен
  • Объяснимый ИИ: внутренняя логика модели доступна для понимания
Объяснимый ИИ на Python

Объяснимость vs. точность

  • Простые модели:

    • Более объяснимы
    • Менее точны
  • Сложные модели:

    • Более точны
    • Менее объяснимы

Изображение: график моделей ИИ — от простых к сложным (правила, линейные модели, деревья решений, k-NN, SVM, нейронные сети); простые модели объяснимее, но менее точны, сложные — точнее, но труднее интерпретируются.

Объяснимый ИИ на Python

Деревья решений vs. нейронные сети

Деревья решений

Отображают путь принятия решений на основе условий

Дерево решений: как строятся прогнозы на основе множества условий

Объяснимый ИИ на Python

Деревья решений vs. нейронные сети

Деревья решений

Отображают путь принятия решений на основе условий

Дерево решений для задачи поступления: если у студента нет степени бакалавра — отказ; иначе — зачисление только при среднем балле выше 8,5

Объяснимый ИИ на Python

Деревья решений vs. нейронные сети

Деревья решений

Отображают путь принятия решений на основе условий

Дерево решений для задачи поступления: если у студента нет степени бакалавра — отказ; иначе — зачисление только при среднем балле выше 8,5

Нейронные сети

По природе своей непрозрачны

Изображение: структура нейронной сети — набор скрытых слоёв, каждый из которых содержит несколько нейронов.

Объяснимый ИИ на Python

Деревья решений vs. нейронные сети

Деревья решений

Отображают путь принятия решений на основе условий

Дерево решений для задачи поступления: если у студента нет степени бакалавра — отказ; иначе — зачисление только при среднем балле выше 8,5

Нейронные сети

По природе своей непрозрачны

Изображение: та же нейронная сеть получает признаки студента и предсказывает, будет ли он зачислен или получит отказ.

Объяснимый ИИ на Python

Прогнозирование поступления студентов

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

 

  • Результаты тестов: GRE и TOEFL
  • Рейтинг университета
  • SOP: мотивационное письмо
  • LOR: рекомендательное письмо
  • CGPA: средний балл за весь период обучения
Объяснимый ИИ на Python

Прогнозирование поступления студентов

Дерево решений
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
Нейронная сеть
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
Объяснимый ИИ на Python

Правила дерева решений

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 ...
Объяснимый ИИ на Python

Специфичные vs. агностические методы

Специфичные для модели

Применяются к конкретной модели

Изображение: ключ, предназначенный для конкретного замка

Объяснимый ИИ на Python

Специфичные vs. агностические методы

Специфичные для модели

Применяются к конкретной модели

Изображение: ключ, предназначенный для конкретного замка

Агностические

Применяются к любой модели

Изображение: мастер-ключ, открывающий несколько замков

Объяснимый ИИ на Python

Что дальше?

  • Специфичные и агностические методы
  • Локальные и глобальные методы
  • Продвинутые темы:
    • Метрики объяснимости
    • Объяснимость в обучении без учителя
    • Объяснимость генеративного ИИ

Логотипы библиотек: SHAP, LIME и Scikit-learn

Объяснимый ИИ на Python

Давайте потренируемся!

Объяснимый ИИ на Python

Preparing Video For Download...