Data Blog
1.36K subscribers
98 photos
3 videos
4 files
162 links
Канал про интерпретируемость моделей и путь до phD, если автор не уйдет пасти овец.
Download Telegram
Привет, друзья! 🐥

Господи, вас уже 400! Это безумно радостно и ценно, спасибо вам за вас! 🥰

Мы продолжаем про вероятности! Каков же правильный ответ?

Ответ: Никакие, но самые близкие к истинным вероятностям в распределении тренировочных данных прогнозирует старая-добрая логистическая регрессия.

Что прогнозируют другие модели: Число в обрезке от 0 до 1, и его корректнее называть уверенностью. В документации sklearn есть интересное сравнение "вероятностей" для разных моделей. Так, например, Наивный Байес и лес склонны к более высоким и низким прогнозам, а "вероятности" SVC напоминают колокол нормального распределения. (Картинку шлю в комментарии)

Почему с логистической регрессией всё так:
Её обучение происходит за счет минимизации логистической функции потерь, которая, в свою очередь ведет к максимизации функции правдоподобия выборки.

Плохо это или хорошо: плохо только в том случае, если для принятия решения вам необходим не точечный ответ (то есть класс), а именно вероятность. В остальном – всё хорошо, и это еще один «зеленый флаг» на возможность подбора оптимального порога (например, будет считать класс «1» если уверенность, прогнозируемая моделью, больше 0.3).

Что можно делать с вероятностью других моделей: применять методы калибровки! Однако она, во-первых, не улучшает качество модели, а, в контексте объяснимого искуственного интеллекта — не всегда решает проблему предвзятости прогнозов, как, например, показано здесь.

Благодарю вас за ваше внимание!
Я пока усердно hard-воркаю и успела совсем сдать первую половину гранта. С постами стараюсь, осторожно распределяя время :)

И скоро поделюсь еще одной классной новостью! 🥹

Как всегда с пожеланиями вам доброго дня и чудесного времени,
Ваш Дата-Автор!
👍75
Сотрудничество с преподавателями факультета компьютерных наук ВШЭ, звание автора курса и другие невероятные приключения дата-автора в этом холодном апреле!

Привет, друзья! 🐥

А вот и новость! Совместно с командой преподавателей ФКН ВШЭ я создаю курс по explainable AI!

Курс посвящен современным методам объяснимого машинного и глубинного обучения.

Уже сейчас в нем больше 50-ти практических задач, которые помогут понять интерпретируемость и объяснимость, хотя это только начало!

Курс первый на российском рынке, (а еще, таких не так много (пока) на рынке зарубежном). :) И вы можете влиять на его контент по мере прохождения!

И, конечно, там всё по красоте — не мало математики, и много практики! 🤌🏻🔥

Если интересно — присоединяйтесь!
Цена будет расти по мере расширения курса)

Немного об ощущениях:

Колоссально горжусь каждой задачей и буквой! Для меня это огромная возможность структурировать изученное про область и подать это так, чтобы еще больше моделей строились по принципу хотя бы "стеклянного" ящика и чтобы еще больше людей увидело ту красоту, что вижу я.

А ещё — для меня очень ценно работать с людьми опытнее, умнее и в чём-то сильнее. Это будто изнутри расширяет и заставляет грызть информацию дальше, сильнее и упорнее =)

Совсем не прощаюсь, желаю вам теплого вечера, и продолжаю работать,

Ваш Дата-автор!
🫶🏻
🔥193👏1
Несколько опорных материалов по Explainable Reinforcement Learning.

Привет, друзья! 🐓

Без лишних слов — топ 3 источника, от которых можно щучкой зарыться в Explainable Reinforcement Learning!

1. Одна из лучших обзорных статей по области на 2023 год.
2. Репозиторий с полным набором статей по каждой подзадаче объяснения (reward, state, model, task)
3. Ноутбук на каггле, чтобы потрогать что-то из XRL руками.

Добрых вам выходных, 🫶🏻

Ваш дата-автор! :)
9👍3
Привет, друзья! 🐷

Если дата-автор долго не публикует материал, значит его съела-работа готовится что-то новенькое!

Последние дни активно читаю материалы, много изучаю и интенсивно работаю. За прошедшее время мне удалось стать частью команды AI Education (чем я очень горжусь и наряду с практикой еще больше ем теорию, чтобы соответствовать команде). Но вообще не о себе (если только чуть-чуть) сюда пишу, а о Casual Inference!

Постановка проблемы:

Стараясь оценить связь признака с целевой переменной, исследователи часто прибегают к анализу коэффициента корреляции. Кроме того, коэффициент корреляции — это первое, с чем знакомят на курсах Data science, так что знание о нем есть даже у начинающих. Однако:

Correlation is not causation.

или "корреляция не равна причинно-следственной связи". Но как быть, если причинно-следственную связь оценить всё же хочется?

Оказывается, можно использовать линейную регрессию!

Как, зачем, почему и вкусный пример по ссылке!

Материал я готовила для курса в том числе, но он будет оставаться открытым. Потому процесс обучения новому и просто интересному – это магия, и пусть её в вашей жизни будет больше!

Желаю вам теплых и уютных майских праздников! У меня вот в городе выросла мать-и-мачеха 🌼

Ваш Дата-автор!
☺️
8👍2❤‍🔥1🔥1
Осторожно: Feature importances.

Привет, друзья! 🐥

Чем больше я изучаю методы интерпретации и работаю с ними, тем более тонкие моменты удается подчерпывать. И сегодня об одном из них: feature_importances_.

Да, да, я про атрибут у ансамблиевых (Catboost, XGBoost, Random Forest) и древесного (Decision tree) алгоритмов.

Как считается:
- Классически на основе Information gain, максимизируемого при разбиении

Что хорошо:
- Не нужно дополнительного вычислительного времени — такая важность признаков вычисляется на лету, вместе с тем как происходит процесс обучения.

Что плохо:
- Эта важность признаков смещена в сторону непрерывных признаков. Не всегда, но часто чем большую признак имеет мощность, тем более информативным он оказывается.
- Вычисляется на основе обучающего, а не тестового набора данных

Но это всё — короткая теория. Села побаловаться и посмотреть на это на практике, и вот, что вышло (см. картинку в комментариях).

Эксперимент:
Прогнозировали титаник. Случайный категориальный признак содержал 5 категорий, случайный непрерывный — рандомные числа.
С точки зрения природы задачи, данные два признака должны быть не важны. Однако ансамбли говорят обратное и если бы данный признак был переименован, то можно было бы нестись с выводами к Леонардо Ди Каприо.

Среди Random Forest, Catboost и XGBoost, лучше всех «вшивый тест» прошел XGBoost.

Как с этим бороться:
Как правило, используя несколько методов в сопоставлении.

Вывод:
Будьте внимательны и осторожны, при извлечении гипотез на основе важности признаков. Сомневайтесь, уточняйте и не забудьте отдохнуть на ближайших выходных!

Рада всех вас видеть здесь!
Ваш Дата-автор!

🫶🏻❤️🥹
🔥85👍4
Привет, друзья! 🐔

Я много говорю о важности объяснимого искусственного интеллекта и мало — о применимости области. Вместе с этим меня часто спрашивают — "что такое XAI и зачем", и если на вопрос «что» ответ я знаю, то на вопрос зачем — отвечаю со скрипом.

С мотивацией разобраться в том числе для самой себя, я и задалась целью поиска качественных характеристик на поле «XAI для бизнеса».

Мне очень понравилась эта статья: EXPLAINABLE AI (XAI) AND BUSINESS VALUE – AN ORGANIZATIONAL PERSPECTIVE

Из неё можно вынести следующие тезисы:

1. Критические отрасли: чтобы приложение ИИ использовалось по назначению, ему должны доверять те, кто должен его использовать. Поэтому XAI — камень преткновения при внедрении ML/DL в здравоохранение, промышленность и другие области с высокой ценой ошибки.

2. Цена и ценность: искусственный интеллект применяют многие. Но мало кто — придает этому процессу прозрачность. Такой ход — это ещё один ключ к
- общему повышению доверия к бизнесу,
- отстройке от конкурентов

3. Маркетинг: здесь XAI тоже имеет приложение. Методы объяснения могут быть источником стратегической информации (например, принося ответ на вопрос почему конкретная реклама (не)эффективна?) 

4. Ценность для разработчиков ИИ (хоть я и не очень люблю это словосочетание): деббагинг модели, обнаружение предвзятости — задачи, вполне решаемые методами XAI в том числе

Как звучит, мне нравится! Считаю, что область заслуживает внимания поэтому и просто потому что это красиво!

Изначально поэтому я ею и интересуюсь. ☺️

И на правах авторства курса! Сейчас он в активной доработке! Буду рада, если вы присоединитесь и поможете сделать его еще полнее и лучше 🐥

Как всегда чудесного вам времени друзья! Пусть в вашей жизни красота всегда будет рядом (и сегодня тоже)!

С наилучшими пожеланиями,
Ваш Дата-автор!
🔥122
Feature_importance.pdf
337 KB
Привет, друзья!

Очень хотела доделать этот материал и вот он: cheat-sheet по feature importance в ансамблиевых алгоритмах — Catboost, XGBoost, LightGbm! 🐈

Зачем:

Важность признаков, именуемая «feature Importance», является встроенной для ансамблей. Однако, в библиотеках реализованы разные по виду важности.

Таким образом,

результаты одного объяснения в общем случае не эквивалентны результатам другого!


Отсюда и родилась идея структурировать шпаргалку :) Чтобы понимать возможные камни и сдвиги в такой важности , полезно помнить как она вычисляется.

🍊P.S. А еще, не всё, что есть в ней, написано в документации. Но это — отдельная история о чтении исходного кода библиотек и глазного вычисления на малых ансамблях.

Здесь мог бы быть очередной call to action на курс, потому что детальнее все важности разбрираются в нём, но я так пока не умею :)

Надеюсь, к вам тоже наконец-то пришла весна, где бы вы ни были!

Уютных вечеров и до связи,
Ваш Дата-автор! 🐥
🔥15🥰4❤‍🔥32👍2
Привет, друзья! 🐥

Я почти вышла на сессию и в свободное время продолжаю перебирать и готовить материалы для курса и будущего диплома.

Сегодня к вам с новой полезной штукой! 🔥

Мы уже акцентировали внимание на том, что результаты одного метода объяснения не эквивалентны результатам другого.

В этом случае встает вопрос:
как наиболее продуктивно создавать объяснения, чтобы оценивать их устойчивость?


Один из ответов — добавлять в свой арсенал наиболее универсальные алгоритмы интерпретации, например такие как LIME (Local Interpretable Model-Agnostic Explanations)!

Что это, как использовать, чтобы извлечь максимально много информации и даже математические выкладки:
собраны для вас в этом ноутбуке (рус, англ). Благодаря туториалу вы построите LIME с 0 и поймете его библиотечную реализацию!

Также все открытые материалы буду добавлять в этот репозиторий и в материалы курса! 🫶🏻

Не знаю почему, но очень рада тратить кучу часов, исследуя тему. Надеюсь, это принесет вам пользу и поможет сделать более понятные модели!

Со всем самым добрым,
всем запаха сирени! 🪻

Ваш Дата-Автор!
❤‍🔥12👍53
IKNN и KNN

Привет, друзья! 🐣 Сегодня про что-то красивое и простое.

Вопреки тому, что KNN является интерпретируемым алгоритмом, его интерпретация непосредственно становится тем сложнее, чем больше размерность наших данных. Кроме того, интерпретация в виде ближайших соседей будет чувствительна к выбору меры близости.

Но что если упростить задачу?

Сформулируем гипотезу:

Что если каждый раз обучать KNN на паре признаков, а затем ансамблировать прогноз, будет ли это сколь угодно эффективным?

Оказывается, что да! Или почти да. Именно такой подход реализовал Brett Kennedy, показав, что эта удивительно простая идея способна обгонять классический KNN.

Github, Tds paper

Важно: Конечно, интересно проверить и охватить больше случаев — например поведение на скоррелированных или разреженых данных. Но идея кажется мне просто прекрасной , но пригодной только для малых размерностей.

Спасибо за ваше внимание друзья, и видели бы вы, как я вчера улыбалась, увидев, сколько вас здесь! 🥹❤️

Мне безумно приятно, что вы готовы тратить время, читая посты. Если есть вопросы — всегда пишите! Ответим =)

Отличного вам дня,
Ваш Дата-Автор! :)
❤‍🔥121
Explainable AI vs chatGPT 🥊

Привет, друзья! Недавно в комментариях прозвучал вопрос — почему в области просто нельзя использовать chatGPT для объяснения моделей?

В посте разберемся:
- Может ли GPT объяснить прогноз модели?
- Может ли GPT объяснить как работает метод объяснения?

Начнем с начала.
Explainable AI — область, задача которой сделать ответы алгоритмов машинного и глубинного обучения интерпретируемыми. Под интерпретируемостью подразумевается связь input и output, а также визуализация/понимание способов трансформации того, что мы подаем в модель в ответ, который модель отдает нам.

chatGPT — большая тренированная языковая модель типа трансформер, выпущенная компанией openAI 30 ноября 2022 года.

Связь.
В контексте связи с областью — chatGPT классический пример модели «черного ящика». Если я подам какой-либо промт, я могу предположить что ответ на ответ модели повлияли отдельные слова, но не могу это утверждать.

🐔Может ли GPT объяснить прогноз модели?
В голом виде — не может. Для объяснения прогноза нужны либо доступ к данным, на которых модель обучалась, либо доступ к данным, на которых модель тестируется. Также необходим доступ к самой модели — к ее гиперпараметрам.

🐖Может ли GPT объяснить как работает метод объяснения?
И да, и нет. Описание метода он дать может. Вы можете использовать его как Гугл поиск на свой страх и риск. С ним в этом смысле как с едой — найти можно, но не в помойке же искать*. И нет, это не про то, что GPT плох, это про то, что он вбирает себя слишком много информации, тогда как верная чаще всего только в первоисточнике (то есть в статье или рерайте статьи)

🐮Может ли GPT объяснить свой прогноз?
Не факт. Товарищи здесь [1] мучали его на этот счет, но получили не устойчивые объяснения. Кроме того, так как таких исследований в целом пока мало — на их результатами тоже нужно и можно критически смотреть.

🐗Какое место GPT может занять в explainable AI?
Место помощника. Например, можно саммаризовать длинночитаемые объяснения в более компактный, человек-читаемый вывод [2].

Вместо вывода.
Как человек, занимающийся вопросами интерпретируемости и возможности доверия, я очень прошу вас с безумно критическим настроем использовать любой ответ GPT. Доверяй, но перепроверяй.

Мне самой товарищ GPT очень нравится. Он экономит время, знает латех, да и вообще с ним поговорить можно, когда мои коты не отвечают =)

А как часто используете GPT вы в работе и быту? Буду рада порассуждать в комментах
!

А ещё рада позвать всех на курс про интерпретируемость, который я слёзно и аккуратно пишу вместе с AI Education 🤟🏼Мы ежедневно улучшаем его, а в середине лета уже будет готов блок и про интерпретации deep learning моделей!

С наилучшими пожеланиями,
Ваш Дата-автор!
🫶🏻
8🔥2👌1🗿1
POV: Мнение моего кота про весь этот наш машинлернинг 😁

Но не об этом! Привет, друзья! Пишу поделиться красивой ссылкой.

Одна из мотиваций использования DL — это автоматическое извлечение признаков из сложных концепций данных. В сверточных нейронных сетях (CNN) этот процесс можно ещё и красиво визуализировать!

По результатам будет видно, что чем глубже слой, тем сложнее извлекаемый паттерн. Ну или это просто психоделическая фантазия.

Источник (еще разок, но покрасивее).

UPD: еще одна красивая визуализация VGG16.
Чудесного вам начала недели,

Ваш Дата-автор!
😁5🔥2
Привет, друзья! 🐣

Если Дата-автор долго не пишет посты, значит его нещадно употребили сессия и работа. Но пока я весело развлекаюсь с задачами экзаменов, не могу не оставить вас без задачки. Тем более, что давно не было =)

Задача сложная. Если у вас нет идей к ее решению — это нормально, выбирайте ответ наугад! А после того, как я сдам последний экзамен, на выходных, мы с вами аккуратно разберем решение. 🫶🏻

Для начала, введем несколько новой (или не новой) информации.


Методы explainable AI создавались (и в некотором случае создаются) без удовлетворения какой-либо конкретной аксиоматике, почти с лозунгом оно работает и вроде сносно? — отлично, берем.

Однажды в 2017, исследователи решили переиграть всё и ввести метод через две аксиомы Sensitivity и Implementation Invariance (чувствительность и инвариатность к реализации).

🐗 Будем говорить, что метод атрибуции объяснения удовлетворяет аксиоме чувствительности, если для двух входных объектов x, x', отличных только по одному признаку Ai, но имеющим разные прогнозы, метод присваивает признаку Ai ненулевую важность.

🐗Метод атрибуции назовем инвариантным к реализации, если важности признаков идентичны для двух функционально эквивалентных[1] сетей.

[1] Две сети f(x), g(x) назовем функционально эквивалентными, если их выходные данные одинаковы для всех входных данных, несмотря на разные архитектуры.
🗿2👍1🔥1
Рассмотрим метод атрибуции, действующий по следующему алгоритму (смотрите картинки 1-2) и функцию (смотрите картинку 3) в точках (0) (2).

Удовлетворяет ли метод аксиомам выше, если проверить его на этой функции?
🔥2
Что там по удовлетворению аксиомам?
Anonymous Poll
16%
Да!
3%
Нет!
31%
Я ответа подожду
50%
Хочу пирог🥮
Привет, друзья!

Пока без ответа (а вы любите пироги! 🍒), но тоже с интересной штукой.

🐉 DragoNN — фреймворк для тех, кто применяет DL для изучения генома человека. Достаточно интересная находка, просто даже для расширения кругозора.

Официальный сайт проекта, гитхаб.

Мне попался в контексте контента для курса по объяснению для моделей DL. Сейчас описываю мтеод DeepLIFTи он — единственный (из известных мне) метод объяснения, который трудоспособен выуживать важности на геномных данных (туториал). Кроме, конечно, логических правил If-Then

Быстрый поиск по теме других, реализованных программно, красивых методов не дал. 🧐

Ну и поделюсь спонтанно найденной стэнфордовской презентацией про DL для декодирования генома.

Чудного вам вечера,
Ваш дата-автор!
👍4❤‍🔥1
Привет, друзья!
Вернёмся к интегралу :)

📋 Пример был взят из весенней конференции Стэнфорда 2021 года. Вы можете посмотреть его здесь и в целом очень рекомендую полное видео и плей-лист конференции. Особенно если вам интересен объяснимый искусственный интеллект для NLP задач, что я тоже надеюсь охватить в курсе.

🌱 Название описанного метода — Integrated Gradients (мне нравится переводить на русский как «интеграл от аппроксимированных градиентов», потому что при прямом переводе не понятно, кого куда интегрируют =)).

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

1. Чувствительность к baseline — результаты метода сильно зависят от выбора базового состояния. Неправильный выбор может привести к некорректным объяснениям.

2. Линейность интерполяции — метод основан на линейных интерполяциях между базовым состоянием и текущими входными данными, что может быть не всегда адекватно для нелинейных моделей.

Как эти ограничения работают и что с этим делать рассматривали, например, здесь, но с точки зрения практики пока ничего не реализовано.

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

Вот такие дела,

до связи!

Ваш Дата-автор!
👍52