Data Blog
1.36K subscribers
98 photos
3 videos
4 files
163 links
Канал про интерпретируемость моделей и путь до phD, если автор не уйдет пасти овец.
Download Telegram
Привет, друзья! Закончился 20-ти дневный период на подготовку договора с Фондом…
и я — выжатый лимон
!)

Обещала делиться, поэтому пишу. Пусть тут будет ветка #УМНИК #Грант

Напомню, «УМНИК» — программа, позволяющая людям от 18 до 30 лет получить грант в размере 500 000 на год для реализации научной разработки. До момента получения денег проходятся этапы подачи заявки, очной её защиты и отбора жюри.

🍋 Сегодня о том, что происходит в случае выигрыша.

Происходит весёлое — заполнение договора с Фандом. Это чудо света заполняется максимально строго и формально:

— Да бюрократической тавтологии.
— Нет сленговыми названиям.

Никакого бэкэнда и пайплайна машинного обучения — только «разработка серверной компоненты продукта», и «обучение, тестирование и анализ экспертного алгоритма ... продукта».

Договор, и вся программа в целом нюансированы
тем, что с одной стороны, фонд требует проводить научную работу, с другой — настаивает на её коммерциализации (обязательно).

По договору за 12 месяцев пирожки-грантополучатели обязаны:

1. Реализовать все работы в договоре (и защитить по ним отчетность дважды — на середине и в конце).
2. Подать заявку на регистрацию прав (заявку на патент) на результаты интеллектуальной деятельности.
3. Разработать бизнес-план проекта в соответствии с требованиями или подать заявку на участие в программе Фонда «Студенческий стартап».
4. Пройти преакселерационную программу, с целью проработки перспектив коммерческого использования результатов НИР;
5. Разработать дорожную карту развития проекта.

Иначе говоря, по договору вы должны работать, учиться бизнесу и патентовать. Звучит как лагерь, причем с хорошими условиями)

Что касается меня:

На договоре я сильно выжалась, потому что подала сырой проект и вообще не планировала получать на него деньги. У меня не было понимания что я хочу материально сделать, и следовательно видения как я буду это делать — отсюда нервы, стресс и большая благодарность людям вокруг — организатор на нашей площадке с нами 24 часа в сутки 7 дней в неделю, мой друг, компетентный в разработке, вуалировал со мной этапы и его ответы помогли мне понять, как копать, когда ты в разработке, как кола — zero.

Если вы приходите на "УМНИК" с четким видением материального продукта и пониманием шагов к его созданию, то пока программа выглядит хорошим способом получить инвестиции в pet-project.

На этом на сегодня всё.
У меня есть некоторые задумки на летний контент канала. Ниже по ним опрос. И это пилотный пост!) Мне будет легче описывать опыт гранта, если вы зададите точечные вопросы!)

Такие сегодня вести.

Ещё не сок, но уже как фрэш,
Ваш Дата-автор.
👍4🥰2
Привет, друзья!

Линейная алгебра набрала большой отклик, а я люблю её, как своих котов, так что начнем с неё!

Здесь разобраны 3 типы задач и некоторые трюки при их решении:

1. Нахождение решения системы линейных уравнений
2. Нахождение многочлена по его значениям
3. Исследование векторов на линейную независимость.

Где встречаются линейные уравнения в Data sceince:

1. Порождение линейно зависимых фичей
— просто взяли признак и умножили его на число. Это усложняет алгоритм и не добавляет информативности. О косвенной линейной зависимости может говорить также высокая корреляция Пирсона.

2.Обучение линейной регрессии — в идеале мы хотим решить матричное уравнение максимально точно.

Ваши примеры?

На этом всё. Дайте знать, в какую сторону улучшать разборы (но только не почерк).
Пару задач на попрактиковаться оставила в комментариях.

Отличного понедельника!
Ваш Дата-автор) 🐥
🔥9👍5
Привет, друзья! 🐥

Вы просили — мы (я и мои голова и пальцы, получается) сделали — сегодня про один из методов интерпретации моделей — Permutation importance.

В статье разобраны 3 пункта:

- Что это за метод интепретации?
- Как корректно интерпретировать результаты метода?
- Где можно найти реализацию метода для применения в своих задачах?

Приятного прочтения!

С огромной любовью к тому, что вы тут (вас аж более 300, боже!),

ваш, пакующий рюкзак на отдых, Дата-автор 💛
🔥53👍1
scikit-explain — библиотека для объяснения sklearn моделей.

Привет, друзья! Я тут жарюсь в Армении, и пока подтягивала кривыми ещё в терминале руками sklearn в окружение, случайно обнаружила библиотеку scikit-explain. 🐤

В ней реализованы «джентльменский набор» и «дамская сумочка» методик интерпретации
— «джентльменский» — потому что методы из библиотеки действительно являются базовыми и достаточными для интерпретации ML алгоритмов, «дамская» — потому что кроме основных есть и другие, расширяющие.

В общем, если вы в основном работаете со sklearn моделями, библиотека scikit-explain может стать удобным инструментом для использования!

Для удобства прилагаю список реализованных методов:

Feature importance:
Permutation Importance, Grouped Permutation Importance
SHAP
First-order PD/ALE Variance (Greenwell et al. 2018 )
Grouped Permutation Importance (Au et al. 2021)

Feature Effects/Attributions:
Partial Dependence (PD),
Accumulated local effects (ALE),
Random forest-based feature contributions (treeinterpreter)
Main Effect Complexity (MEC; Molnar et al. 2019)

Feature Interactions:
Second-order PD/ALE
Interaction Strength and Main Effect Complexity (IAS; Molnar et al. 2019)
Second-order PD/ALE Variance (Greenwell et al. 2018)
Second-order Permutation Importance (Oh et al. 2019)
Friedman H-statistic (Friedman and Popescu 2008)


Библиотека живая: последнее обновление 2 недели назад (на 27.07.23)

Всем отличных и спокойных вечеров!
Ваш дата-автор:)
🔥6👍1👀1
Спонтанный привет, друзья!

Ну точно лопну, если не поделюсь — кажется нашла ферму, где трудятся — растят всякие «искусственные интеллекты» — маленькие дата-сатанисты — ML Mining😈😄

В реальности, конечно, ML Mining — крупная многофункциональная строительная компания в Ереване. Строят, сносят, материалы производят.

А жаль.

Всем много мемов в жизни!

Ваш, чуть выдохнувший в отпуске, Дата-автор :)
😁61👏1
Привет, друзья!

🐥 Стала плотнее работать с библиотеками, предлагающими методы интерпретации. По пути стали встречаться ошибки и баги, так что я решила начать собирать возможные проблемы и решения в одном месте.

Красивое readme я добавлю позже, а пока приглашаю вас присоединяться к наполнению и использованию такой небольшой базы данных.

Ссылка на репозиторий: XAI_libraries_problems

Устала отдыхать, а у меня и не получается,

🌤 Ваш дата-автор!)
👍5🔥2
Привет друзья!

Линейная регрессия
— алгоритм, с которого многие начинают свой путь в машинном обучении. Вопреки простоте и старости, линейная регрессия остается востребованной, поскольку относиться к интерпретируемым алгоритмам.

Интерпретируемость в данном случае — внутреннее свойство модели, отсюда, как ни странно, для интерпретации важностей признаков нам важно заглянуть внутрь — посмотреть веса.

На практике посмотреть — это полдела. А вторые полдела — проанализировать и продемонстрировать результаты.

В посте (я полюбила телеграф 🐥) собрала 5 методов, как это можно сделать! Внутри разобраны:

1. Прямое представление коэффициентов в виде барплота.
2. Представление коэффициентов виде круговой диаграммы.
3. Рассмотрение относительного вклада коэффициентов.
4. Анализ остатков модели.
5. Построение регионов уверенности.

Код с примерами из статьи доступен в ноутбуке. Там же небольшой cheat sheet по регрессии.

А впереди у нас пост про интерпретацию LLM, но мы еще пишем.

Желаю вам продуктивной работы и теплых дней уходящего лета,
Ваш Дата автор! 🐤
🔥81👍1🤝1
Не могу этим не поделиться.

Сделайте свой день чуднее — сгенерируйте смешного котика, ботинок, сумку или фасад из собственных каракуль!

Я вот постаралась. 🐥
😁4😍3🔥1
Друзья! Кто открывал чудесный шевелящийся текст пару постов назад, тот видел, что готовится серия постов про  LLM.

Так вот, мы дописали! И нет, "мы" — это не я и мои кошки =)

Сегодня я закончила допрос Андрея (а Андрей — допрос меня), и мы сделали целых два поста про  LLM и интерпретацию этих моделей.

В первой части рассмотрены вопросы теории:

- Какие выделяются виды LLM моделей и откуда различия между ними?
- Почему мне и вам полезно знать про LLM и где они могут пригодиться?

Практики:

- Какие библиотеки будут полезны для работы с LLM, и какие используют наиболее?
- Где можно ли обойтись базовыми моделями типа W2V или BoW?

И момент мечтаний:

- Какой тренд в развитии LLM на базе последних исследований?

Мы мучили друг друга две недели и надеемся, что получилось awesome. Ждем вашего прочтения и если будут еще вопросы – ждем ещё вопросов!

А читать...читать здесь 🐤
Кооперация с @awesome_dl
👍10🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Дата-автор покупает картошку. 🍠

Если вы слышите в магните человека, орущего: «Цивилизация, компьютерное зрение!!!» — это я)

P.S. Для малых городов очень удивительная штука.
🔥9❤‍🔥3👍3🤣1
Вернёмся к LLM!

Друзья, творческие начала подвезли вторую часть моих дискуссий с Андреем про LLM!

Во второй части я постаралась (очень!) закрыть два основных вопроса — зачем:

- ...интерпретировать LLM?

И как:
- ...справляются в области со сложностями в интерпретации больших лучистых (вы поймете, открыв пост) LLM?

🍒 Вишенкой рассказала о применении самих LLM моделей как методов интерпретации.

С Андреем будем рады ещё вопросам! А если мы не ответим сразу, то быть может именно ваш вопрос станет триггером на новый deep-dive research.

Ну и Читать здесь!
Awesome кооперация с @awesome_dl

Отличного вам начала сентября, друзья! Запасайтесь уютом, теплом, тыквой и картошкой)
🔥41
Привет, друзья! С Днём знаний! 🍁

Пишу закинуть интересную статью: «TRIVEA: Transparent Ranking Interpretation using Visual Explanation of Black-Box Algorithmic Rankers»

В
ней методы explainable AI используются для обеспечения прозрачности решения задачи ранжирования.

Опуская другие детали (я не спец в задаче ранжирования), на основе статьи можно вынести два важных и интересных топика:

- методы explainable AI, заявляемые как model-agnostic — то есть применимые к любой модели — полно способны охватить классический кластер задач AI. Так, для анализа процесса ранжирования в статье применены LIME (Local Interpretable Model-Agnostic Explanations) и ICE (Individual Conditional Expectation).

- в применении post-hoc объяснений есть момент субъективности методов. Здесь это проявлено в том моменте, что в статье авторы, исследуя согласованность методов, обнаружили, что она не стабильна и зависит от свойств данных и задачи.

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

Я где-то между второй и третьей группой,
Ваш Дата-автор! 🐥
🔥5👍2
Потому что подвожу итоги лета, а ещё потому что Евгений и Елена сильно помогли мне расширить список достижений

🐷 Друзья! Пишу сегодня вам ещё — порекомендовать шикарную школу AI Education и рассказать об их вот-вот стартующих буткемпах:

- Начало MLOps (бесплатный курс, старт 15.09)
- Основы нейронных сетей и NLP (платный курс, старт 20.09)

Пишу, потому что провела с AI Education почти всё лето и за это время:

- Наконец-то вникла, что такое контейнер и как его собрать, поднять и запушить
- Задеплоила веб-сервис с анализом данных и сделала демо веб-сервиса для подбора методик интерпретации (можно пользоваться, но я ещё его улучшу)
- Начала приручать бобра в лице DBeaver
- Повторила математику внутри KNN, регрессий и наивного Байесовского классификатора
- Повторила методы работы с несбалансированными данными

Попутно я перестала ругаться на декораторы, стала лучше чувствовать культуру ООП, ввела в плотную привычку работу через GitHub и вернула 80ГБ памяти на компьютер, но это другая история..:)

🍒 UPD: вишня, друзья! По промокоду DARII на все курсы AI Education у вас будет скидка!

Очень советую школу и не прощаюсь! На второй курс иду сама, потому что мне хочеться и нужно научиться парсить данные, на первый — может тоже, если не лопну от нагрузки)

На деле — рада тому, что вас всё больше, а стеснения у меня иной раз писать посты у меня всё меньше.

Поэтому продолжаю интенсивно стучать по клавишам,
Ваш Дата-автор! 🐓

P.S. не реклама, а, как говорят, "от души".
P.P.S хотела найти какой-нибудь промокод на степик, но не нашла, но потом организаторы курсов прислали мне вишню — и я стала самым счастливым Дата-автором. Пользуйтесь во благо! 😌
P.P.P.S если вы тоже изучили что-то отличное за лето — делитесь в комментариях! Знания — сила, даже когда кажется, что тема старая и всё уже известно)
🔥121
Computation graph analysis — comgra library…
или привет, друзья!
🐓

Мне прилетела — делюсь дальше — comgra библиотека для анализа вычислительного графа нейронной сети.

Библиотека позволяет:

- анализировать тензоры нейроной сети и их поведение на разных шагах обучения.
- анализировать тензоры нейроной сети и их поведение на разных батчах и даже отдельных наблюдениях при обучении.
- отслеживать зависимость тензоров и градиентов друг от друга.

Если вы знакомы, то comgra некоторый нейросетевой аналог библиотеки treeinterpreter (она поддерживает все sklearn деревья и ансамбли).

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

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

🐮Совместимость: pytorch

Покладистых всем нейронов, в том числе в голове,
Ваш Дата-автор!
🔥42
Оценка Каплан-Мейера, анализ выживаемости….
и загулявший дата-автор.

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

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

Для меня эти определения были новыми, но я нашла их полезными. Делюсь.

Что такое цензурированные данные?

Пусть поставлена задача наблюдать за объектами во времени. Пусть все объекты имеют какое-то свойство, которое может либо быть на отрезке времени, либо пропасть. Объект называется

- цензурированным справа, если для него известен момент появления наблюдаемого свойства и не известен исход.
- цензурированным слева, если для него не известен момент появления, но известен исход.
- цензурированным с обеих сторон, если для него не известны и момент появления и исход.

Да, тут цензурирование к изображениям они отношения не имеют (кто поймет шутку, тот поймет).

Пример:

Пусть мы наблюдаем за 11ю пациентами с циррозом печени в течение 3 месяцев. И на 2м месяце нам добавились еще 5 из больницы в деревне и для них момент начала цирроза не известен.

Рассмотрим первые 11 человек. Пусть для 7 из них известен момент появления цирроза и они выжили к концу наблюдения. Они цензурированы справа.
Пусть для 3х известен момент начала и они умерли в течение трех месяцев. Они не цензурированы.
И наверное логически вы уже догадались, что наша пятерка из другой больницы цензурирована….слева!

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

Что за функция выживаемости?

Пусть случайная величина T соответствует продолжительности жизни в выборке из n наблюдений. Вероятность, что T (количество прожитых лет) будет меньше чем x определяет функцию распределения такой величины (пусть F(x)).
Дополнительная функция s(x) = 1 - F(x) называется функцией выживаемости и показывает вероятность прожить больше, чем x  лет.

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

Как оценить вероятность пережить момент времени, если данные цензурированы?

Для этого может быть применена Оценка Каплан Мейера.

Для этого отрезок времени разбивается на интервалы. Для каждого интервала j считается частное отношения разности числа живых и выбывших в этом интервале к общему количеству наблюдений интервала. Если без букв, то эта величина есть:

П(Rj-dj)/Rj, где Rj — число объектов, доживших до времени j, dj число объектов, не переживших момент времени j, а П — страшненький какой есть знак произведения.

Подробнее + туториал на Python здесь.

И немного послесловия👇🏻
👍5🔥2
У меня большой кризис в ведении канала, и большой буст относительно работы, которую я делаю ежедневно с течением времени.

С одной стороны, я приобретаю тележку опыта, потому что веду в single проект по гранту, беру подработки по анализу данных и разминаю ручки и мозги на новый год участия в конференциях.

С другой — стопорюсь и "ссыкую", потому что переживаю, что вот этот вот опыт, выводы и какие-то новые штуки, открытые мною, совсем никому не сдались.

Так вот, да, мне как никогда поможет и помогает фидбек от вас — то, что вы как минимум никуда не уходите и ставите все эти чудные реакции 🫶🏻

Я стараюсь, но попутно борюсь с психологическим синдромом самозванца.

Ещё не в нокауте,
Ваш дата-автор!
20😍3👍2🤮1
Потому что я снова пишу статью, и потому как был услышан запрос от Тимура — одного из читателей канала..

Привет, друзья!
🐥
Каждый раз, когда сажусь писать статью передо мной чистый лист. В последний раз (вчера), я написала на нём «НЕТ ПЛАНА» и ушла пить кофе.

Что писать, даже если это конференция из разряда [надо], что я делаю в такие моменты — делюсь опытом и материалами в посте!

И так, как писать статью, если…

🐷1. Есть тема, нет работы?

Значит вы выполняете обзор — ваш первый шаг. Вам можно попробовать:

— сформулировать свою задачу/тему/проблему так, чтобы ее можно было описать фразой до 5 слов и посмотреть, что в области делают в таких или схожих задачах;
— в качестве точки 0 ищем обзорную статью на свою задачу/фразу/область, чтобы узнать, что сделано из последнего и познакомиться с самыми свежими проблемами и экспериментами;
— если вы готовы и это возможно — проанализировать то, что уже было попробовано до вас. Постараться понять, почему один метод сработал хорошо, а другой хуже? Что я могу попробовать сам(а) и в ближайшее время? А какие идеи возникают у меня? Если идеи есть — записывайте до новой итерации поиска и будущей работы. Если идей нет — просто анализируйте! ;
— Записанные идеи формулируем также короткой фразой и снова идем искать! Вы можете найти либо точную реализацию (это нормально), либо сколь угодно схожую и подвернуть вдохновение для генерации идеи новой или для уточнения старой.

🐮2. Если темы нет:

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

Ход вашей мысли может быть примерно таков: «мне нравится CV» -> «CV в медицине» -> «а МРТ задачи особенно чудесны» и бинго! Далее ищем научного руководителя со схожей областью интересов и скорее всего идем в первый пункт поста.

🐓3. Если это из разряда надо:

Отдельный пункт. Такое бывает, увы нередко. Когда проходят внутренние конференции университета или кафедры и научный руководитель говорит про какое-то надо принять участие…внутри при таком может возникнуть особенно истерический бунт, (как у меня в первую конференцию) 😄

Что писать и готовить в таких случаях:

— Ревью на работу, которую вы сделали ранее — постарайтесь проанализировать свою прошлую статью, прогнать в голове свежую литературу, и подумать:
• Что я сделал(а) и что можно сделать лучше?
• Что делают в области в схожих задачах?

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

— Обзорник — здесь снова идем в пункт 1.


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

Дайте знать, если пост был вам полезен! Лучше всего огонечком!)
В комментариях всегда рада отвечать на вопросы и просто поболтать =)

Ушла агрессивно стучать по клавишам и парсить данные,
Ваш Дата-автор! 🐣
🔥8❤‍🔥6🤓2
Сёрфинг в интернете, которого вы заслужили: подборка красивых мест, где можно найти статьи. 🏖

Классика жанра:

- Google Академия — статьи по практически любым ключевым словам. На практике пользуюсь ею не чаще обычного гугл поиска, но, как ресурс, Академия достойна быть в списке.

- arxiv.org — от истоков — просто мой любимый ресурс на рандомно почитать статьи. Из перечисленных сайтов — наиболее продвинутая реализация продвинутого поиска. Кстати, очень хорошо размечена выдача для парсинга.

👑 С красивой визуализацией:

- pubmed — вопреки тому, что сайт не на дата-тематику, если интересуетесь делами каких-то методов AI в медицине — советую. Ценность даже больше не в том, чтобы находить статьи, а в том, чтобы прослеживать динамику популярности ключевых слов на боковой панели при расширенном поиске.

- dimensions.ai — товарищ, который по продвинутости и удобоваримости поиска спокойно отодвигает arxiv. Есть даже поиск по авторам! Сбоку также можно красиво и полезно отследить популярность запроса. Использую не так давно, но по функциональности и дизайну — о-гонь!)

- connectedpapers — подкинуто в комментариях! Если бы не совместный вклад, то мы бы и не увидели, где можно смотреть как связаны работы между собой.

Вишенка среди вишенок: 🤌🏻

- paperswithcode — воспроизводимость экспериментов иногда нервно плачет в углу. Однако не с этим инструментом. Просто советую, потому что здесь мой креатив закончился.

Просто существуют:

- sciencedirect и frontiersin — вдруг вам понадобятся больше, чем мне.


Как предпосылку к посту могу сказать только одно: "работаю")

Работаю и лопачу материал со скоростью, которая варьируется от "ленивец из мультика" до "кот, который испортил ботинок".

На связи,
Пекущий грантовый проект,
Ваш Дата автор!
🔥103
Доброго утра, друзья!

Для всех интересующихся — нашла новые статьи со свежего семинара Proceedings of The First International Workshop on eXplainable AI for the Arts (XAIxArts) [Первый международный семинар по объяснимому ИИ в искусстве] 🎨

Если наберем 30 огонечков — залезу, изучу, сделаю обзор! 🤓

А пока продолжаю тонну hard-work из серии "дедлайн вчера, а я уже в сегодня".

Желаю вам чудесных выходных!
Ваш дата-автор!
🔥16😢1