#UBC
Первое место, дело престижа (часть первая)
Занял его стартап, который делают авторы уже несколько раз упомянутого Chowder. Собственно цель стартапа- анализ WSI снимков.
Кстати, Чаудер- это такой суп густой. Сегодня обязательно приготовлю в честь этих ребят
Хайлайты:
1. Своя foundation model для клеточных снимков- Phikon. (Статья). Берем ее на заметку, чтобы решать WSI-соревы, которых в последнее время стало много. Это такой VIT-transformer, который уже видел огромную кучу снимков.
2. Chowder- как MIL пайплайн. Вышел в 2020 году, все еще не хуже более свежих DTFD-MIL и TransMIL. Еще и ансемблируется сам с собой хорошо.
3. Вложились в быстродействие. Сережа написал хороший пост с разбором того, как именно: там и Ray, и кастомные тулы на С и даже немного классического CV. Подписывайтесь на его канал уже.
Меня очень вдохновляет история с кастомной тулой на C. В какой-то момент я даже сел похожую писатьконечно на Rust , но стало лениво загружать в датасеты компилятор и сорсы и ставить его в энве без интернета.
Данные:
Не использовали внешние данные.А оно и не надо, потому что они хостят модель для снимков, которая уже была достаточно претренирована на WSI снимках.
Все большие картинки обрезали по thumbnails: выделяли трешхолдом яркости не пустые регионы и уже по координатам вычисляли, какой патч надо вырезать с полной картинки для модели.
Затем для TMA делали ресайз, чтобы размер клеток соответствовал размеру WSI. Во время анализа выяснили, что 38 WSI были неправильно предобработаны и их ресайз не соответствует ресайзу прочих. На прикрепленной картинке например видно, что размер красных кровяных телец на них другой, нежели в большинстве снимков. Это было довольно важно, потому что эти сломаные картинки почти все относились к одному классу и тем самым вносили шум в модель.
Первое место, дело престижа (часть первая)
Занял его стартап, который делают авторы уже несколько раз упомянутого Chowder. Собственно цель стартапа- анализ WSI снимков.
Хайлайты:
1. Своя foundation model для клеточных снимков- Phikon. (Статья). Берем ее на заметку, чтобы решать WSI-соревы, которых в последнее время стало много. Это такой VIT-transformer, который уже видел огромную кучу снимков.
2. Chowder- как MIL пайплайн. Вышел в 2020 году, все еще не хуже более свежих DTFD-MIL и TransMIL. Еще и ансемблируется сам с собой хорошо.
3. Вложились в быстродействие. Сережа написал хороший пост с разбором того, как именно: там и Ray, и кастомные тулы на С и даже немного классического CV. Подписывайтесь на его канал уже.
Меня очень вдохновляет история с кастомной тулой на C. В какой-то момент я даже сел похожую писать
Данные:
Не использовали внешние данные.
Все большие картинки обрезали по thumbnails: выделяли трешхолдом яркости не пустые регионы и уже по координатам вычисляли, какой патч надо вырезать с полной картинки для модели.
Затем для TMA делали ресайз, чтобы размер клеток соответствовал размеру WSI. Во время анализа выяснили, что 38 WSI были неправильно предобработаны и их ресайз не соответствует ресайзу прочих. На прикрепленной картинке например видно, что размер красных кровяных телец на них другой, нежели в большинстве снимков. Это было довольно важно, потому что эти сломаные картинки почти все относились к одному классу и тем самым вносили шум в модель.
👍9🔥3❤2
#UBC
Первое место, дело престижа (часть вторая)
Модели:
Для демонстрации превосходства своего пайплайна на Chwoder + Phikon (их balanced acc 0.66 против второго места с 0.61), совершенно пижонски не тюнили гиперпараметры, а подобрали их на глаз.
Оптимизатор AdamW (классика для трансформеров в больших задачах), lr=10-e4, weight_decay=10-e3 b тренировка на CE. Никаких вам focal loss.
50 Chowder-моделей в каждом из 5 фолдов с разными инициаллизациями и усреднение. Мало того, они еще и каждый вес трижды рестартили. В итоге получилось 5 x 50 x 3 моделей. Все из них откалбировали на внутренней валидации. Немного помог отбор 65 лучших по внутренней валидации моделей.
Для того, чтобы фильтровать выбросы, которые были в тесте, но которых не было в трейне использовали трешхолд по энтропииH = -sum(p*log(p)) , который подобрали по лб
Трюки для инференса:
Натренировали маленький resnet18 определять, является ли картинка TMA или WSI, чтобы в рантайме определять, в какую ветку пайплайна ее отпускать.
Т.к. использовали довольно маленькие патчи (224p), их получалось 10к+ для каждой WSI картинки. Решили семплировать из всех 200 патчей и работать на них. Для TMA проблемы семплирования не было- из-за нормализации размера там и 50 патчей не набиралось.
И классические выводы:
1. Если вы вдруг делаете технологический стартап- заглядывайте на каггл. Вдруг захостят задачу под вас и вы бесплатно заявите о себе
2. Читать статьи по научным задачам- довольно полезно. В этом соревновании в топ-10 есть минимум 3 команды, которые просто нагуглили Chowder, завели его и попробовали.
3. Для будущих соревнований по снимкам попробуйте Phikon, а если там еще и что-то похожее на MIL, то конечно Chowder. Парни не зря стараются, они для нас делают
4. Анализируйте даже картиночные данные. Вот тут кластеризация помогла найти ошибку предобработки организаторов и дала немножко скора
Первое место, дело престижа (часть вторая)
Модели:
Для демонстрации превосходства своего пайплайна на Chwoder + Phikon (их balanced acc 0.66 против второго места с 0.61), совершенно пижонски не тюнили гиперпараметры, а подобрали их на глаз.
Оптимизатор AdamW (классика для трансформеров в больших задачах), lr=10-e4, weight_decay=10-e3 b тренировка на CE. Никаких вам focal loss.
50 Chowder-моделей в каждом из 5 фолдов с разными инициаллизациями и усреднение. Мало того, они еще и каждый вес трижды рестартили. В итоге получилось 5 x 50 x 3 моделей. Все из них откалбировали на внутренней валидации. Немного помог отбор 65 лучших по внутренней валидации моделей.
Для того, чтобы фильтровать выбросы, которые были в тесте, но которых не было в трейне использовали трешхолд по энтропии
Трюки для инференса:
Натренировали маленький resnet18 определять, является ли картинка TMA или WSI, чтобы в рантайме определять, в какую ветку пайплайна ее отпускать.
Т.к. использовали довольно маленькие патчи (224p), их получалось 10к+ для каждой WSI картинки. Решили семплировать из всех 200 патчей и работать на них. Для TMA проблемы семплирования не было- из-за нормализации размера там и 50 патчей не набиралось.
И классические выводы:
1. Если вы вдруг делаете технологический стартап- заглядывайте на каггл. Вдруг захостят задачу под вас и вы бесплатно заявите о себе
2. Читать статьи по научным задачам- довольно полезно. В этом соревновании в топ-10 есть минимум 3 команды, которые просто нагуглили Chowder, завели его и попробовали.
3. Для будущих соревнований по снимкам попробуйте Phikon, а если там еще и что-то похожее на MIL, то конечно Chowder. Парни не зря стараются, они для нас делают
4. Анализируйте даже картиночные данные. Вот тут кластеризация помогла найти ошибку предобработки организаторов и дала немножко скора
❤7🔥3
Пока собираюсь с силами, чтобы разобрать Enefit пошерю вам красивое
❤5
Forwarded from 🗞 Виз Ньюз (Nikita Rokotyan)
This media is not supported in your browser
VIEW IN TELEGRAM
Картинки: https://philippschmitt.com/blueprints-for-intelligence/
Эссе: https://philippschmitt.com/blueprints-for-intelligence/introduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Вас остановила полиция репостов за неуказание источника. С вас штраф: поцелуйчик. Впредь будьте аккуратнее
❤6💋5
Кстати о репостах:
Собрал из ретроспективы по Open Problems пост на хабр. Поддержите заливом лайков, пожалуйста🔝
Собрал из ретроспективы по Open Problems пост на хабр. Поддержите заливом лайков, пожалуйста
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как машинлернеры мерили экспрессию генов от воздействия лекарств
Привет! Меня зовут Дима и я веду канал про соревновательный МЛ . Недавно мы выиграли приз в довольно престижном соревновании и я сделал обзор всех лучших решений Хочу вам рассказать о Open Problems,...
👍11🔥6❤5👏1
Вы же помните, что этот канал создан, как карго-культ pola.rs?
Так вот, к поларсу пришла Nvidia и предложила им дать своих инженеров, чтобы они впиливали RAPIDS в polars.
Ставлю на то, что команда рапидс будет отставать, но это все равно мощный шаг к признанию полярных медведей.
Думайте. Подписаться.
Так вот, к поларсу пришла Nvidia и предложила им дать своих инженеров, чтобы они впиливали RAPIDS в polars.
Ставлю на то, что команда рапидс будет отставать, но это все равно мощный шаг к признанию полярных медведей.
Думайте. Подписаться.
pola.rs
Accelerating Polars DataFrames
DataFrames for the new era
👍15❤2
Снимок экрана 2024-04-09 в 15.57.02.png
66.1 KB
HMS- Harmful Brain Activity Classification закончился и значит в ближайшем будущем будем разбирать топовые решения из него. Соревнование оказалось дико конкурентным, 2800+ команд. Нам удалось залезть в top 2%, но всегда же интересно, что там придумали гении из золота?
Разбор enefit кстати отменяется: там скучно и нас удалили с ЛБ по неизвестным причинам. Скорее всего кернел умер от ошибки в kaggl forecasting API.
Разбор enefit кстати отменяется: там скучно и нас удалили с ЛБ по неизвестным причинам. Скорее всего кернел умер от ошибки в kaggl forecasting API.
👍17❤6🥰3🎉1
#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 размечающих. Странное совпадение, но пока организаторы не признались- не правда.
В этот раз хочу пройтись по большему числу топовых решений, потому что сил в сореву было какое-то невыносимое количество потрачено.
Как решать будете?
Думайте. Подписаться
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
В этот раз хочу пройтись по большему числу топовых решений, потому что сил в сореву было какое-то невыносимое количество потрачено.
Как решать будете?
Думайте. Подписаться
👍17❤7👎1
#HMS
Разберем 15 топовых мест еще и потому, что в сореве ровно столько золота
Аккуратно, на картинке ошибка. Там не 10 мин, а 10 сек спектрограммы
15 место:
Использовали три бекбона, которые мерджили в одну мегамодель.Обязательно попорбую в следующий раз, судя по всему это крайне продуктивный для каггла подход
Первая модель:
Вариация на тему Wavenet1D (Первая дополнительная картинка)
Добавили в активации еще и Mish.
Выражается как f(x) = x * tang(softplus(x))
Статью пока не читал, но судя по графикам она еще и не монотонная. Как учится в активациях немонотонность стоит обдумать. Пишите в комментах, почему это вообще может быть полезно.
Вторая модель: построена на Short Term Furier Transform
Брали фурье трансформ и рестакали его из чередования в конкатенации. Почему-то работало, сами не знают почему.
Третьяя модель: стандартная сетка для вижна, которую не сильно измывались. Даже не описывают конкретную модель. Подозреваю там был стак из кучи бекбонов.
Кстати в этой сореве FP16 ломал зачастую сетки и тренировка часто либо деградировала, либо вообще скатывалась в Nanы. Получается запретили включать FP16.
Разберем 15 топовых мест еще и потому, что в сореве ровно столько золота
15 место:
Использовали три бекбона, которые мерджили в одну мегамодель.
Первая модель:
Вариация на тему Wavenet1D (Первая дополнительная картинка)
Добавили в активации еще и Mish.
Выражается как f(x) = x * tang(softplus(x))
Статью пока не читал, но судя по графикам она еще и не монотонная. Как учится в активациях немонотонность стоит обдумать. Пишите в комментах, почему это вообще может быть полезно.
Вторая модель: построена на Short Term Furier Transform
Брали фурье трансформ и рестакали его из чередования в конкатенации. Почему-то работало, сами не знают почему.
Третьяя модель: стандартная сетка для вижна, которую не сильно измывались. Даже не описывают конкретную модель. Подозреваю там был стак из кучи бекбонов.
Кстати в этой сореве FP16 ломал зачастую сетки и тренировка часто либо деградировала, либо вообще скатывалась в Nanы. Получается запретили включать FP16.
Kaggle
HMS - Harmful Brain Activity Classification
Classify seizures and other patterns of harmful brain activity in critically ill patients
👍8❤4🔥3😁1
Для обучения всего этого зоопарка использовали набор доменных аугментаций:
1. Флипы электродов правых и левых долей
2. Флипы электродов передних и задних долей
3. CropCat. Примерная идея на картинке. В принципе засчитываем за угаданный MixUp в комментах, только не с весами, а по времени.
4. Шум на входной сигнал
Из данных использовали только семплы, в которых больше 10 голосов. И никакого псевдолейблинга :(
1. Флипы электродов правых и левых долей
2. Флипы электродов передних и задних долей
3. CropCat. Примерная идея на картинке. В принципе засчитываем за угаданный MixUp в комментах, только не с весами, а по времени.
4. Шум на входной сигнал
Из данных использовали только семплы, в которых больше 10 голосов. И никакого псевдолейблинга :(
🔥7👍2
#HMS
Пост коротких идей из минорых мест
14 место:
1. Использовали двухстадийное обучение(это все использовали). . В соревновании быстро заметили, что обучаться надо сначала на всех данных, а потом файнтюнить модель семплах, на которые посмотрели много экспертов, потому что в паблик/прайвет тесте были именно такие семплы. Но эти парни решили, что вместо того, чтобы выкидывать низкокачественные семплы на втором этапе, их можно запсевдолейблить той же моделью с первого этапа и уже с меньшим весом чем у нормальных данных файнтюниться еще и на этих псевдолейблах, а не только на высококачественных.
2. Прочитали все дискашены и нашли в них статью одного из авторов соревнования. Там нашли похожее на соревание исследование, где автор использовал довольно специфичную модель валидации. Краткая суть: один из авторов соревнования использовал разнородных по обученности экспертов и некоторые из них не были до конца обучены на работу с ЭЭГ, поэтому значимо чаще предсказывали 'я не знаю', что отправлялось в Other. При этом они могли попадать в 'высосокачественные семплы' и портить распределение. Поэтому они разбили трейн как в статье и выкинули семплы, от которых должен был исходить шум. А еще тут работало простое советское 'домножать вероятность класса Other на констатнту'. Читайте статьи авторов соревы, они может и не специально, но подсказывают дизайном вам правильные решения
3. Использовали вместо STFTshort-time Fourier transform другое преобразование сырых ээг: CWT continuous wavelet transform
4. Ну и дальше как все использовали сетки для CV: resntet/effnet/etc
12 место:
1. Заранее поняли, что надо учиться на высококачественных семплах, и использовали семплы низкого качества только для псевдолейблинга
2. Использовали случаный шум к оффсету на этапе TTA, что давало примерно ~0.01. Это много, между 12 и 18 местом примерно такой разрыв. Т.е. это то, что явно мешало на медальку
3. Использовали для стакинга hill climbing. Как-нибудь про нее отдельно напишу, тоже важная техника для сорев
Пост коротких идей из минорых мест
14 место:
1. Использовали двухстадийное обучение
2. Прочитали все дискашены и нашли в них статью одного из авторов соревнования. Там нашли похожее на соревание исследование, где автор использовал довольно специфичную модель валидации. Краткая суть: один из авторов соревнования использовал разнородных по обученности экспертов и некоторые из них не были до конца обучены на работу с ЭЭГ, поэтому значимо чаще предсказывали 'я не знаю', что отправлялось в Other. При этом они могли попадать в 'высосокачественные семплы' и портить распределение. Поэтому они разбили трейн как в статье и выкинули семплы, от которых должен был исходить шум. А еще тут работало простое советское 'домножать вероятность класса Other на констатнту'. Читайте статьи авторов соревы, они может и не специально, но подсказывают дизайном вам правильные решения
3. Использовали вместо STFT
4. Ну и дальше как все использовали сетки для CV: resntet/effnet/etc
12 место:
1. Заранее поняли, что надо учиться на высококачественных семплах, и использовали семплы низкого качества только для псевдолейблинга
2. Использовали случаный шум к оффсету на этапе TTA, что давало примерно ~0.01. Это много, между 12 и 18 местом примерно такой разрыв. Т.е. это то, что явно мешало на медальку
3. Использовали для стакинга hill climbing. Как-нибудь про нее отдельно напишу, тоже важная техника для сорев
🔥9👍6❤4
#HMS
Пост коротких идей из минорых мест 2
11 место:
1. Использовали как инпут зоопарк модальностей:
STFT
MFCCMel-frequency cepstral coefficients
LFCClinear-frequency cepstrum coefficients
RMS
2. Усредняли KL-div loss по всем классам и лоссы по каждому классу индивидуально. Т.е. считали 6 One-Versus-Other лоссов дополнительно и все вместе усредняли
3. Стакнули на OOF модель второго уровня, которая давала буст 0.01 относительно простого усреднения. Всего было 16 базовых архитектур, каждая по 5 фолдов.Думайте, подписаться
10 место:
1. Взял все 19 каналов и просто нарисовал их амплитуду
2. Приправил картинками спектрограмм для вязкости
3. Добавил туда визуализацию STFT и других преобразованийчтобы обои точно отклеивались
4. Пожарил 20 моделей на своей гпу
5. Сказал "оххх, золото мое золото"
Нет вы просто зайдите по ссылке и посмотрите на его картинку входную, я не шучу.
Образ мышления грандмастеров сводит иногда с ума, но я кажется улавливаю. Следует ли из деепричастия причастие- вопрос открытый
Пост коротких идей из минорых мест 2
11 место:
1. Использовали как инпут зоопарк модальностей:
STFT
MFCC
LFCC
RMS
2. Усредняли KL-div loss по всем классам и лоссы по каждому классу индивидуально. Т.е. считали 6 One-Versus-Other лоссов дополнительно и все вместе усредняли
3. Стакнули на OOF модель второго уровня, которая давала буст 0.01 относительно простого усреднения. Всего было 16 базовых архитектур, каждая по 5 фолдов.
10 место:
1. Взял все 19 каналов и просто нарисовал их амплитуду
2. Приправил картинками спектрограмм для вязкости
3. Добавил туда визуализацию STFT и других преобразований
4. Пожарил 20 моделей на своей гпу
5. Сказал "оххх, золото мое золото"
Нет вы просто зайдите по ссылке и посмотрите на его картинку входную, я не шучу.
Образ мышления грандмастеров сводит иногда с ума, но я кажется улавливаю. Следует ли из деепричастия причастие- вопрос открытый
Kaggle
HMS - Harmful Brain Activity Classification
Classify seizures and other patterns of harmful brain activity in critically ill patients
😁11👍3❤2🔥1
#HMS
9 место:
1. Использовали двух и трехмодальные системы. На вход сырой ЭЭГ, ванильные спектрограммы от каггла и спектрограммы Криса Дейота (о его решении следующий пост).
2. Учили мультихед, который предсказывал конкретную запись и предсказывали, будет ли в этой записи Nan. Это скорее такой auxiliary loss, чтобы модель лучше генерализовывала данные и училась понимать саму доменную область, чем улучшала понимание задачи. Подробнее можно тут почитать: тык
3. Чтобы стакнуть свою кучу моделей использовали L-BFGS-B, а там 150 моделей было примерно.
4. Использовали аугментацию таргетов. Интуиция такая: раз у нас есть 15 разметчиков с одним мнением, то может нам в качестве аугментации использовать только часть из них?
Ситуация с таргетом не должна поменяться критически, но разнообразие это для модели внесет. Был вектор таргета
[1, 0, 0, 0, 14]
Мы можем «забыть одного размечающего» и из него получить
[0, 0, 0, 0, 14] и [1, 0, 0, 0, 13]
Делали так только для семплов, у которых число голосов было больше 10.У меня к сжоалению этот трюк не завелся
5. Использовали веса семплов равные числу голосов размечающих. Когда 3 человека говорят, что это судороги, это в тре раза надежнее, чем один человек.
9 место:
1. Использовали двух и трехмодальные системы. На вход сырой ЭЭГ, ванильные спектрограммы от каггла и спектрограммы Криса Дейота (о его решении следующий пост).
2. Учили мультихед, который предсказывал конкретную запись и предсказывали, будет ли в этой записи Nan. Это скорее такой auxiliary loss, чтобы модель лучше генерализовывала данные и училась понимать саму доменную область, чем улучшала понимание задачи. Подробнее можно тут почитать: тык
3. Чтобы стакнуть свою кучу моделей использовали L-BFGS-B, а там 150 моделей было примерно.
4. Использовали аугментацию таргетов. Интуиция такая: раз у нас есть 15 разметчиков с одним мнением, то может нам в качестве аугментации использовать только часть из них?
Ситуация с таргетом не должна поменяться критически, но разнообразие это для модели внесет. Был вектор таргета
[1, 0, 0, 0, 14]
Мы можем «забыть одного размечающего» и из него получить
[0, 0, 0, 0, 14] и [1, 0, 0, 0, 13]
Делали так только для семплов, у которых число голосов было больше 10.
5. Использовали веса семплов равные числу голосов размечающих. Когда 3 человека говорят, что это судороги, это в тре раза надежнее, чем один человек.
Cross Validated
What is auxiliary loss as mentioned in PSPNet paper
What is auxiliary loss that is mentioned in the PSPNet(Pyramid Scene Parsing Network) paper link ?
I'm quoting the part of the paper down below
An example of our deeply supervised ResNet101 [13]
I'm quoting the part of the paper down below
An example of our deeply supervised ResNet101 [13]
❤8👍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-регрессии и на выбраных фичах обучить уже обычную линейную/гребневую регрессию
Поступил вопрос про пункт 3 и заявление, что там ничего не ясно. А там с одной стороны классика, с другой не совсем интуитивно:
Допустим у нас есть 150 моделей на одинаковых OOF и мы по ним хотим построить какой-то ансамбль, который будет лучше каждой индивидуальной.
1. Возьмем оптимизатор L-BFGS-B (знаю, в подписчиках есть фанаты) и на OOF построим оптимум заданной лосс функции. Это для нас будет линейная комбинация с положительными весами. Ну например [0.0001, 0.95, 0.003 ..., 0.0]
2. У какой-то доли моделей веса будут близкими к нулю, потому что они не слишком хорошо перформят относительно прочих. Так давайте установим трешхолд, например 0.01, и все модели с весом меньше этого из списка выкинем и пользоваться ими не будем
3. На оставшихся повторим процедуру и будем делать до тех пор, пока у всех моделей веса не будут больше, чем заданный наперед трешхолд
4. ...
5. Profit! У нас остались только уверенные и разнообразные модели
В этом смысле прием похож на совсем уж античную классику: отобрать фичи с помощью L1-регрессии и на выбраных фичах обучить уже обычную линейную/гребневую регрессию
👍11🔥4❤3
#HMS
8 место, мастер-класс от Криса Дейота:
Самое первое, на чем акцентирует внимание Крисс: нам в соревновании не надо поставить диагноз, нам надо угадать мнения разметчиков. Казалось бы так всегда, но конкретно в этом соревновании из-за разнородности разметчиков это решало сильнее, чем обычно.
Крис прочитал статью организаторов и выяснил, что аннотаторов было всего 119 в трейне и 20 в тесте. А еще он вычитал, что судороги в трейне предсказывали в 18.8% случаев, а в тесте- 1.5%. И вот именно вычистку этих самых малоушмных экспертов из теста и делал хак с разделением трейна
Он так же посмотрел на то, как проходил процесс разметки данных и увидел там, что разметка проходила и по спектрограммам и по обычным графикам формы волны одновременно. Значит это и надо подавать как инпут моделей.
И того у него было три модели:
1. По сырым сигналам, a-la WaveNet
2. Трансформемер по спектрограммам
3. Трансформемер по plt.plot форм волныВ СМЫСЛЕ ОН ВЗЯЛ И ИСПОЛЬЗОВАЛ МАТПЛОТЛИБ ДЛЯ ИНПУТА, НУ ГЕНИЙ
Используя уже эти три модели он псевдолейблил кусочки трейна, в которых было меньше 10 размечающих.
Ну и все, 0.29 на приватном лидерборде.
Так же Крис заботливо выделил для нас лайфхаки:
1. Все сырые данные обработал с помощью библиотеки MNE. Она как раз специализированна для работы с ЭЭГ
2. Для перфоманса можно было все сырые ЭЭГ загрузить в RAM и формировать спектрограмы используя torchaudio.transforms
3. На каждой эпохе показывать одну ЭЭГ один раз, но семплировать каждый раз случайно.
4. Пользоваться его гайдом по подбору ЛР для модели
Скажу, что читать райтапы Криса- сплошной кайф. Однажды он прочитает моей райтап и скажет то же самое
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. Пользоваться его гайдом по подбору ЛР для модели
Скажу, что читать райтапы Криса- сплошной кайф. Однажды он прочитает моей райтап и скажет то же самое
🔥20❤7👍1😁1