(sci)Berloga Всех Наук и Технологий
8.02K subscribers
358 photos
13 videos
2 files
397 links
Мультидисциплинарный канал о науке и технологиях.
Data Science, Bioinformatics, Biology, Mathematics, Physics, IT, Computer Science.

@sberlogabio био и дата сайнс
@sberlogasci математика, физика и ДС

https://www.youtube.com/c/SciBerloga
Download Telegram
#HMS

HMS - Harmful Brain Activity Classification

Последнее время решал медицину. 

Данные:
Уважаемые люди из Harvard Medical School (на секундочку лидер рейтингов лучших ресерчерских медицинских школ) собрали нам датасет ЭЭГ и кардиограмм своих пациентов и даже разметили их.



У данных есть иерархическая структура:

Для одного и того же пациента могут быть записаны несколько ЭЭГ произвольной длины. 

Из этих ЭЭГ могут быть выбраны участки по 50 секунд, из которых разметчиков попросили оценить центральные 10 секунд. Разметчиков для одного такого семпла обычно более одного (может быть больше двадцати)

Каждый такой семпл разметчиков попросили отнести к одному из 6 классов:

1. Судороги (SZ)
2. Генерализованные эпилептические разряды (LPD)
3. Латеризованные эпилептические разряды (GPD)
4. Латерализованнная ритмическая дельта-активность (LRDA)
5. Генерализованная ритмическая дельта-активность (GRDA)
6. Прочее

Как метрику выбрали KL-div. В силу того, что по разным семплам могло пройтись несколько разметчиков, голоса разметчиков нормировали на число проверяющих и именно это великолепие стали рассматривать как вероятности, которые нам надо учить. 

По ощущениям- там еще и качество разметчиков страдало. Там, где перекрестной проверки больше поведение сильно отличалось от участков с малой перекрестностью. Это прямо на ЭЭГ видно- идут пару минут с 1-3 голосами и преобладает класс other по-русски назовем его "я не знаю", а за ним сразу идет уверенное SZ от 16 из 17 размечающих. Странное совпадение, но пока организаторы не признались- не правда.

В этот раз хочу пройтись по большему числу топовых решений, потому что сил в сореву было какое-то невыносимое количество потрачено.

Как решать будете?

Думайте. Подписаться
❤5👍1
#HMS

8 место, мастер-класс от Криса Дейота:

Самое первое, на чем акцентирует внимание Крисс: нам в соревновании не надо поставить диагноз, нам надо угадать мнения разметчиков. Казалось бы так всегда, но конкретно в этом соревновании из-за разнородности разметчиков это решало сильнее, чем обычно.
Крис прочитал статью организаторов и выяснил, что аннотаторов было всего 119 в трейне и 20 в тесте. А еще он вычитал, что судороги в трейне предсказывали в 18.8% случаев, а в тесте- 1.5%. И вот именно вычистку этих самых малоушмных экспертов из теста и делал хак с разделением трейна
train.loc[train.vote_count>=10]

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

И того у него было три модели:
1. По сырым сигналам, a-la WaveNet
2. Трансформемер по спектрограммам
3. Трансформемер по plt.plot форм волны В СМЫСЛЕ ОН ВЗЯЛ И ИСПОЛЬЗОВАЛ МАТПЛОТЛИБ ДЛЯ ИНПУТА, НУ ГЕНИЙ

Используя уже эти три модели он псевдолейблил кусочки трейна, в которых было меньше 10 размечающих.

Ну и все, 0.29 на приватном лидерборде.

Так же Крис заботливо выделил для нас лайфхаки:
1. Все сырые данные обработал с помощью библиотеки MNE. Она как раз специализированна для работы с ЭЭГ
2. Для перфоманса можно было все сырые ЭЭГ загрузить в RAM и формировать спектрограмы используя torchaudio.transforms
3. На каждой эпохе показывать одну ЭЭГ один раз, но семплировать каждый раз случайно.
4. Пользоваться его гайдом по подбору ЛР для модели

Скажу, что читать райтапы Криса- сплошной кайф. Однажды он прочитает моей райтап и скажет то же самое
🔥10😁1
Опять что-то дипмаинды наресерчили (им платят за это?)

Хотят улучшать трансформеры на графовых задачках описанных текстом и сделали TransNAR архитектуру, которая вроде как хороша in out-of-distribution reasoning.
Только нам нужно иметь текстовую задачку на вход трансформера и граф на вход NAR.

По сути трансформер + графовые нейроночки. Такая графовая нейронка - это neural algorithmic reasoner (NAR), про который написано в статье DeepMind в 2021. Такая штука комбинирует натуральный вход + абстрактный вход (нейронок) для решения какой-то задачи. В статье ниже можно посмотреть идею на примере алгоритма Дейкстры.

Neural Algorithmic Reasoning
https://arxiv.org/abs/2105.02761

В данном случае natural input это текстовое описание задачи + соответствующий граф (abstract input), на выходе текст с решением. При этом графовая нейронка претрейнена на множестве алгоритмических задачек. Тренировались на маленьких задачках а тестились на больших.
Трансформер тоже претрейнен, на MassiveText.
Во время forward pass трансформер получает доступ к ембедингам из NAR через cross-attention. queries идут из токенов, а keys and values из NAR.

Так понял.

В общем если подобное интересует, то статью читаем

Transformers meet Neural Algorithmic Reasoners
https://arxiv.org/abs/2406.09308

тот самый датасет с графами, из которого получили текстовую версию и на ней тестились
https://github.com/google-deepmind/clrs
🔥6❤3😁1
🚀 @SBERLOGASCI webinar on data science:
👨‍🔬 А.Фаворов "Markov Chain Monte-Carlo (MCMC). What for is it and what does it look like?"
⌚️ Понедельник 17 июня 19.00 (по Москве)

Simple MCMC zoo: basics, termonology, principles, examples.

Контекст:

Алгоритм Метрополиса — Гастингса (https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm) — алгоритм семплирования, использующийся, в основном, для сложных функций распределения. Также подобные алгоритмы можно использовать для поиска глобальных минимумов функций. Это то, что нам нужно в проекте применения машинного обучения к группам.
Вот тут ноутбук Кирилла Хоружего по применению Метрополиса к решению 15-шки https://www.kaggle.com/code/ka1242/puzzle15-fastmetropolis, а тут аналог для кубиков (DZMITRY PIHULSKI ): https://www.kaggle.com/code/dzmitrypihulski/metropolis-1-for-permutations?scriptVersionId=183503701&cellId=9 . Апвоуты - приветствуются.

Семплирование по Гиббсу является частным случаем алгоритма Метрополиса — Гастингса и более популярно за счёт простоты и скорости, хотя и реже применимо

Также будет полезна предыдущая лекция: https://xn--r1a.website/sberlogabig/199

Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
👍13❤2
#HMS #акакстакать
Поступил вопрос про пункт 3 и заявление, что там ничего не ясно. А там с одной стороны классика, с другой не совсем интуитивно:
Допустим у нас есть 150 моделей на одинаковых OOF и мы по ним хотим построить какой-то ансамбль, который будет лучше каждой индивидуальной.
1. Возьмем оптимизатор L-BFGS-B (знаю, в подписчиках есть фанаты) и на OOF построим оптимум заданной лосс функции. Это для нас будет линейная комбинация с положительными весами. Ну например [0.0001, 0.95, 0.003 ..., 0.0]
2. У какой-то доли моделей веса будут близкими к нулю, потому что они не слишком хорошо перформят относительно прочих. Так давайте установим трешхолд, например 0.01, и все модели с весом меньше этого из списка выкинем и пользоваться ими не будем
3. На оставшихся повторим процедуру и будем делать до тех пор, пока у всех моделей веса не будут больше, чем заданный наперед трешхолд
4. ...
5. Profit! У нас остались только уверенные и разнообразные модели

В этом смысле прием похож на совсем уж античную классику: отобрать фичи с помощью L1-регрессии и на выбраных фичах обучить уже обычную линейную/гребневую регрессию
🔥5
хм, классные ребята из OpenDILab (которые ведут много awesome листиков по RLю и делают либу LightZero) начали делать библиотеку с алгоритмами на диффузионках и flow моделях для принятия решений:

GenerativeRL
https://github.com/opendilab/GenerativeRL

и сразу awesome по диффузионкам в RLе

https://github.com/opendilab/awesome-diffusion-model-in-rl

(сохранять)
👍3🔥2
🚀 @SBERLOGASCI webinar on data science:
👨‍🔬 Н. Бухал "Алгоритм MCTS, Monte Carlo Tree Search".
⌚️ Четверг 20 июня 19.00 по Москве

Алгоритм MCTS одна из основных составляющих АльфаГо. В данном докладе будет разобрана имплементация.

Попробуем шаг за шагом реализовать MCTS для крестиков ноликов.

Код который будем разбирать/переписывать: https://www.kaggle.com/code/tttzof351/alphazerotictac

Ожидаемый результат: https://youtu.be/F7qOV8xonfY?si=MXQgN-kwHD9D8oqd

Напоминание: мы организуем активность применить машинное обучение к математическим задачам теории групп. MCTS один из рассматриваемых методов. Если вам интересна активность - добавляйтесь в https://xn--r1a.website/sberlogasci/10989 и напишите @Alexander_v_c , если вы хотите поучаствовать - требование - знать Питон - остальное научим.

Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
🔥8👍6😁4
Forwarded from человек наук
Когда я учился в Институте биоинформатики, в домашних заданиях по статистике встречались курьёзные распределения необычной формы. Они были созданы преподавателем искусственно, чтобы подсветить особенности разных методов. Я как-то заметил, что было бы странно увидеть такое в реальных данных, а преподаватель ответил, что всякое бывает

За время работы я насмотрелся на этакое всякое сполна. Реальные данные бывают страннее, чем может придумать любой преподаватель. Вот пример распределения площади жилья во Франции построенного в 2010 году. Угадайте, с какого количества квадратных метров закон обязует нанимать лицензированного архитектора для построения плана?

Но самая неприятная ситуация – когда неизвестны объясняющие картину факты, а на руках только странные данные

#статистика
👍36🔥14❤4🤩2
Коллеги из ИТМО организуют интересное комьюнити: присоединяйтесь:

🚀 Всех, кто интересуется разработкой и использованием наукоёмких решений с отрытым кодом - приглашаем присоединяться и участвовать в нашем сообществе ITMO.OpenSource - https://ods.ai/hubs/opensource_itmo + чат https://xn--r1a.website/itmo_opensource

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

👨‍🔬 По всем вопросам - Николай Никитин @nicl_nno (к.т.н, руководитель научной группы в NSS Lab ИТМО)
👍11
Воскресная загадка )

Какой самый искрометный и остроумный телеграм канал о науке ?)

Кто расскажет вам всё - от последних статей в Nature , до событий в самой глубинке ?

Все, наверно, и так знают, но мы рады порекомендовать - @ivoryzoo - подписывайтесь!

Ваше руководство по выживанию в науке: https://xn--r1a.website/ivoryzoo
👍4
🚀 Хотите стать экспертом в Qlik Sense?
👨‍🔬 Тогда подпишитесь на канал нашего знакомого - @chernovdev!

Станислав уже более 11 лет работает с продуктами компании QlikTech и продолжает развиваться в этом направлении каждый день. Здесь вы найдёте всё о скриптах, архитектуре, API, визуализациях и прочих секретах продукта.

А если вам не достаточно просто канала, то есть библиотека по Qlik расположенная по адресу https://chernovdev.ru/docs в наполнении которой вы тоже можете принимать участие, пишите @chernov за подробностями, сайт находится в open source проекте на GitHub - https://github.com/bintocher/chernovdev-site
👍3
🚀 @SBERLOGASCI webinar on data science:
👨‍🔬 Евгений Дурыманов "Cayley2vec - эмбединги для бесконечных графов"
⌚️ Cреда, 26 июня, 19.00 (по Москве). (Среда - нестандартный день!)

Рассказ основан на паре ноутбуков:

https://www.kaggle.com/code/eugenedurymanov/the-permutohedron-node-embeddings-distance-distr

https://www.kaggle.com/code/eugenedurymanov/heizenberg-embeddings-with-generators-perspective

В докладе будет рассказано об идее получения эмбеддингов вершин бесконечных графов Кэли с помощью MLP на случайных блужданиях. За основу взята Node2vec, модель обучающаяся на случайных блужданиях по графу, она разобрана в первом ноутбуке — показана ее пригодность для задачи получения хороших ембеддингов с точки зрения сохранения расстояний. На докладе также более подробно поглядим на ее код в пакете pytorch geometric (https://causalai.github.io/pytorch_geometric/_modules/torch_geometric/nn/models/node2vec.html)

Для оценки бесконечных (или просто больших) графов Кэли такая модель непригодна, так как требует уже построенный граф как входные данные (на личной машине H_3(Z/20) — циклическая целая трехмерная группа Гейзенберга порядка 20 уже не считается), поэтому было решено перейти к собственной модели, которая получает на вход только координаты случайных блужданий на графе Кэли группы. Модель в основном повторяет Node2Vec, но работает только с вектором длины размерности группы, а не с целым графом (координаты вершины). Случайные блуждания для такого концепта работы генерируются через генераторы группы (по имеющимся координатам знаем, куда блуждание может пойти дальше, зная образующие).

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

📹 Video: https://youtu.be/pjrea6Hat9U?si=8HbhlasmIRwbfp_s

Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
🔥8❤3👍3
3 июля - пройдёт бесплатная онлайн-конференция DataStart по Data Science, машинному обучению и нейросетям. Вас ждут увлекательные доклады, море дискуссий и нетворкинга. Скорей регистрируйтесь - clck.ru/kPirN

Более 1000 участников, крутой состав спикеров, возможность задавать вопросы, найти ментора и многое другое. 🔥

Что будет:
- 2 трека, 16 часов докладов;
- годнота от талантливых практиков;
- нетворкинг;
- высокий уровень программы;
- бесплатная онлайн-трансляция;
- видеозаписи и презентации;
- высокий уровень программы.

Для кого:
- Data Scientist, Data Analyst и Data Engineer.
- Computer Vision Engineer и NLP Engineer.
- Machine Learning Engineer.
- Руководителям бизнеса.

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

Встречаемся 3 июля - https://clck.ru/kPirN. Трансляция будет бесплатной, но если вы хотите купить видеозаписи, то воспользуйтесь промокодом специально для наших подписчиков: Sberloga500
🔥8❤3👍2
🗓 Программа пройдет в Санкт-Петербурге с 20 по 30 августа. Подать заявку можно по ссылке до 23:59 14 июля 2024 года.
Питание, обучение и проживание бесплатное, оплатить самим нужно будет только проезд.

Подавайте заявки и делитесь постом с друзьями и коллегами!
🔥8
Forwarded from LightAutoML framework (Alex Ryzhkov)
Всем привет!

На прошедшем вчера третьем этапе AutoML Grand Prix на Kaggle команде Лаборатории AI "LightAutoML testers" удалось занять 3-е место, уступив только командам из H2O с решениями на базе платного решения Driveless AI и опередив коллег из Amazon, Microsoft, MLJAR и других компаний.

Полное решение с описанием будет выложено в ближайшие дни (следите за обновлениями 🤓), однако уже сейчас публично доступно сверхбыстрое решение на основе одной табличной нейронной сети из LightAutoML, способное занять 5-ое место: https://www.kaggle.com/code/simakov/lightautoml-denselight (вы знаете, что делать ⭐️)

Happy Kaggling 🦙
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14
🚀 @SBERLOGASCI webinar on data science:
👨‍🔬 Кирилл Хоружий "Введение в методы поиска короткого пути на больших графах"
⌚️ Четверг 4 июня, 19.00 (по Москве)

Мы с коллегами организуем проект по применению методов МЛ/RL к задачам теории групп и графов Кэли - если Вы хотите присоединиться - напишите - @alexander_v_c. В четверг Кирилл Хоружий сделает вводный доклад по этой теме - приходите ! (А также подписывайтесь на замечательный канал Кирилла - @diagrams_every_day ).

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

На вебинаре мы рассмотрим методы решения задачи поиска пути в крупных перестановочных графах, таких как Кубик Рубика или Пятнашки, где задача поиска пути становится весьма сложной. Мы обсудим state-of-art подходы, показанные в работах DeepCubeA (2019) (Nature) и Self-Supervision methods (2023) (arXiv).

Возможные варианты решения задачи о поиске пути:
1. Оценка дистанции случайными блужданиями. Из целевой вершины делаем K шагов и обучаем модель предсказывать K, которое хорошо коррелирует с реальной дистанцией (d). Используем эту модель как эвристику для алгоритма A*.
2. DQ-learning. Предсказывать моделью реальную дистанцию, в лучших традициях DQN основываясь на уравнение Беллмана улучшать после обучения предсказанные расстояния и обучаться заново. Затем также на А* искать путь.
3. Обратная диффузия. Делая случайные шаги, мы почти гарантировано отдаляемся от целевой вершины. Научимся по вершине, предсказывать откуда в неё мы пришли, случайно блуждая. Затем через beam search находим наиболее вероятный путь в целевую вершину (самый короткий ~ самый вероятный).

Также обсудим возможные упрощения жизни для модели через алгоритм Метрополиса и существующие эвристики.

Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !

📖 Presentation: https://xn--r1a.website/sberlogasci/10989/15283
📹 Video: https://youtu.be/2J3eGGH-uiM?si=9xgHtcCpBj0wKXC0
🔥15❤4👍3
Игра была придумана Г. Бальбо в 1974 году и впервые описана в французском шахматном журнале Le Courrier des Echecs в сентябре того же года.

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

Правила для пешек (их всего семь) также были изменены в соответствии с новой геометрией доски:

Пешка, достигшая дальнего конца d-, e-, f-, g- или h-колонки, может превратиться в ферзя, ладью, слона или коня.
Пешка, достигшая дальнего конца c- или i-колонки, может превратиться только в слона или коня.
Пешка, достигшая дальнего конца a-, b-, j- или k-колонки, не может превращаться и остается на месте как препятствие, пока её не захватят или не появится возможность захвата, который уберёт её с этой клетки, после чего она может продвигаться дальше.
🔥22👍5
Forwarded from Борис опять
Недавно BM25, алгоритм поиска из 80-х, победил нейросетевой поиск на LLM.

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

https://habr.com/ru/articles/823568/

Материал подойдет начинающим: ничего кроме знания Python не нужно.

Просьба читать, лайкать и кричать об этой статье на улицах. 😇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤3