Aspiring Data Science
389 subscribers
483 photos
16 videos
12 files
2.33K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#news #ml

ИИ/vibecoding/agentcoding развязал руки и позволяет творить чудеса.

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

Выйдут ML-статьи:

DataScientist's Improving Mindset

Heterogeneous Boosting (HetBoost) & embedded adaptive Ensembling

Feature Selection (FS):

MRMR

RFECV

ShapBased

Advanced FeatureEngineering (FE):

MI-prefiltered

with HermitePolynoms

Intelligent HyperParameters(HP) Tuner

Training with Fairness

Calibrators

Advanced CategoryEncoders

Universal OverfittingDetector (OD)

Wise OverfittingDetector (OD)


FS & HPT: marriage made in heaven


Всё основано на моём личном опыте и разработках.

Все темы будут сопровождаться численными экспериментами, бенчмарками, сравнением с существующими решениями, и высококачественным быстрым production-grade кодом.

Постараюсь публиковать 1 статью за 1-2 месяца.
🔥32
Aspiring Data Science pinned «#news #ml ИИ/vibecoding/agentcoding развязал руки и позволяет творить чудеса. Скоро начну дописывать и публиковать статьи, ценного материала, который хотелось высказать, у меня уже много. Выйдут ML-статьи: DataScientist's Improving Mindset Heterogeneous…»
#ai

"OpenAI обучила большую языковую модель на 50 наиболее распространённых биологических алгоритмах, а также на механизмах работы с основными общедоступными базами данных с информацией по биологии. При дальнейшем обучении система получила возможность предлагать вероятные механизмы клеточных процессов и расставлять приоритеты для мишеней при разработке препаратов. Разработчики снизили свойственную большим языковым моделям склонность к подхалимскому поведению, сделав GPT-Rosalind более скептической в ответах, в том числе при создании препаратов. Компания обеспечила модели способность к рассуждениям — к обработке многоэтапных процессов, — а также высокий экспертный уровень, который подтвердился на тестовых примерах.

На текущий момент OpenAI ограничила доступ к модели из опасений, что ей могут злоупотреблять, например, попросив повысить инфекционность вируса — заявки принимаются только от американских организаций. Впоследствии компания выпустит Life Sciences Research Plugin — ограниченный по возможностям вариант системы."


https://3dnews.ru/1140163/openai-predstavila-iimodel-gptrosalind-dlya-uchyonihbiologov
#weather #timeseries


Интересная идея с этим резервуарным методом, снова.

In standard NARMA tests – a benchmark for time-series prediction – the quantum model reduced prediction errors by one to two orders of magnitude. These results underpin its strong showing in real-world forecasting scenarios. - обалдеть, если не врут.

"Государственные и частные структуры в США уже вложили и планируют вкладывать в классические ИИ-платформы по предсказанию погоды сотни миллионов долларов. По утверждению китайских исследователей, за всего 1 % от этих денег можно создать простую и компактную квантовую платформу, которая либо сравнится, либо превзойдёт по точности предсказаний классический суперкомпьютер с искусственным интеллектом. В конце марта в журнале Physical Review Letters исследователи из Китая опубликовали работу, в которой показали, что такое возможно.

Техническая сторона исследования — это организация так называемого квантового резервуарного вычисления (QRC) на платформе ядерного магнитного резонанса (ЯМР). Данные кодировались на взаимодействующих ядерных спинах (4 углеродных и 5 протонных) молекулы кротоновой кислоты с метками из изотопа углерода-14. Учёные описывают эксперимент как чашку с кофе, в которой ингредиенты перемешали ложечкой и оставили приходить в равновесное состояние.

По большому счёту — это не вычисления, а симуляция. Она не может быть универсальной, но для решения специфических задач может считаться работой вычислительного алгоритма. В данном случае квантовая платформа анализировала временные ряды, чем обычно занимаются алгоритмы прогнозирования погоды и не только. Резервуарный метод, кстати, способен использовать для анализа даже шум в системе и при этом работает при комнатной температуре.

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

https://3dnews.ru/1140034/superkompyuteri-s-ii-proigrali-prostim-kvantovim-kompyuteram-iz-kitaya-v-predskazanii-pogodi
#programming #testing

Недавно узнал про сенсор-тесты.

Разница с "обычным" тестом — в том, что ты проверяешь:

Обычный тест: "функция складывает два числа → я проверяю что 2+2=4"

Sensor: "в продакшене 2026-04-19 случилось X. Фикс прошёл. Если через полгода кто-то отрефакторит этот код и баг вернётся — этот тест обязан упасть"
https://arxiv.org/abs/2412.04529

Саша с Антоном опубликовали классную статью про CAFA5! А я в соавторах. Много умных слов и понятных картинок. Год назад мы участвовали в соревновании на kaggle, в котором надо было определить функции белка по его аминокислотному составу и таксономии. Соревнование отличалось высоким порогом входа, поскольку таргеты, коих было десятки тысяч, были организованы иерархически и метрика расчитывалась пропагацией по этому дереву. Отдельно стоит отметить разметку, где 1 означала наличие функции у белка, но 0 не означал, что функции нет, она просто еще не была обнаружена, возможно.

Мы заняли 2 место 🎉, уступив профессионалам в области, которые в том числе парсили выходящие во время соревнования статьи про новые экспериментально обнаруженные функции белков. Последующее тестирование решений на еще более свежих данных подтвердило, что распределение мест не было случайностью. Организаторы соревнования настоящие ученые, измерили множество метрик и провели полноценное исследование полученных решений.

В статье показываем подход ProtBoost, в основе которого Py-Boost, линейки и mlp, а так же графовые нейросетки в качестве умного ансамбля (помните про иерархические таргеты?). В качестве признаков эмбединги последовательностей и мета-информация о происхождении белка. Обнаружили, что не все эмбединги одинаково полезно и хайпово не значит лучше.

Соревнования шло 3 месяца, а статья выходит спустя год. Это вам не бустинги стекать 🙈

Из каггл-выводов:
* pyboost хорош, особо хорош, когда таргетов много и бустинги в принципе можно успешно применять на эмбедингах.
* GCN стекер можно применять не только здесь.
* иногда ошибки приводят к интересным открытиям, перепутав айдишники моделей, получили интересную аугментацию.
* если соревнование про науку, то где-то в интернете хранятся разные полезные датасеты и код, но коду организаторов слепо верить не стоить
1
1
Media is too big
VIEW IN TELEGRAM
Подкаст с BI-тимлидом из Авито!

В гостях Маша Аничкова - тимлид BI-аналитиков в 📱, ex-аналитик в Ozon💳

И если вы до сих пор думаете, что BI - это просто “собрать дэш и не мешать взрослым людям делать продукт”, то у нас для вас интересный разговор))

Обсудили:

• почему в Авито в какой-то момент развели продуктовых и BI-аналитиков, и в чем вообще реальная зона ответственности биайщиков.
• как собрать дашборд, который реально смотрят топы, а не просто складировать 200 метрик в одну красивую братскую могилу.
• почему иногда лучший дашборд - это отсутствие дашборда)
• как правильно отвечать на кейс “сделай крутой дашборд” на собесе
• почему если после недели работы заказчику вдруг нужна “одна большая красная циферка”, то где-то, скорее всего, недожали этап сбора требований)
• как устроена матрица компетенций в Авито и как там понимают, кто джун, кто миддл, а кто уже сеньорный сеньор.
• сколько по времени реально занимают витрины данных и почему работа с разработчиками - это всегда отдельный квест со звездочкой.
• как проходить собесы на BI-роли, если хочется не просто “попробоваться”, а дойти до оффера.
• почему у Маши конверсия в оффер 100% [ да, здесь можно немного словить тильт ]
• правда ли, что математика больнее, чем базы данных.
• почему в огромном количестве запросов от заказчиков проблема не в данных, не в витринах и не в аналитике, а просто в том, что человек не выспался))

По времени: 45 мин

Ссылка на ВК видео 🌐
Ссылка на YouTube 🌐
Ссылка на Rutube

Получился очень живой выпуск:

про BI без душноты, про карьеру без успешного успеха,
и про аналитику так, как она выглядит в реальности, а не в вакансиях. Еще и ипотеку обсудили...

Делитесь мнениями, комментами и подписывайтесь на канал Маши! Маша - класс!

Жмем заинтригованного жаба 📃 если хотите еще гостей из 📱
прогрессивного жаба 📈 за следующий сильный выпуск про аналитику и карьеру
Ставим лайк ❤️, чтобы поддержать или если вы уже знакомы с Машей
Please open Telegram to view this post
VIEW IN TELEGRAM
#kan #anns

Кто пробовал эти сети Колмогорова-Арнольда в реальных задачах? Я нашел 3 опенсорс реализации и несколько статей на медиуме, но ни одного сравнения на, пусть даже игрушечном, датасете.

Вообще, идея обучать сами функции активации в нейронах сети очень красивая.

https://habr.com/ru/articles/860738
Forwarded from Wazowski Recommends
Регрессия и распределение шума

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

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

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

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

Когда-то в Яндексе Миша Парахин всем советовал в таких ситуациях чуть более принципиальный подход: в качестве этого преобразования использовать CDF (функцию распределения) исходного распределения таргетов (оцененную по датасету) и затем обратную CDF нормального распределения. Тогда преобразованные таргеты как раз будут нормально распределены (правда, тут некоторая подмена понятия — вообще говоря, нам нужно нормальное распределение шума/ошибок, а не самих таргетов).

Но у этих подходов есть проблема — они не mean-proper. Mean-proper функции ошибок — это у которых минимум достигается, когда предсказание равно матожиданию таргета. Например, L2 (MSE) или Binary Cross-Entropy (в случае бинарных таргетов) — mean-proper. А вот L1 (MAE), MAPE, MSE логарифмов — нет. Попросту говоря, при использовании таких лоссов предсказания будут смещенными. Я когда-то уже писал про это для логарифмов.

Это свойство (mean-proper) часто довольно важно. Например, хотелось бы, чтобы сумма наших предсказаний доходов по какому-то сегменту пользователей примерно попадала в настоящие суммарные доходы.

Поэтому я к этим трюкам с преобразованием таргета всегда относился скептически — не хочется терять калиброванность из-за того, что шум как-то не так распределен. И вообще, казалось бы, как бы ни был распределен шум, практика нас обычно учит: что вы хотите улучшить на test set — то и оптимизируйте на train set. Хотите MSE — используйте MSE. Просто разные лоссы ведут к разным компромиссам, когда не получается точно описать данные. Так ведь?

Оказалось — нет. За последние несколько дней я провёл небольшой эксперимент на искусственных данных. Пусть у нас одномерный случай, x распределен равномерно на [0, 1], «настоящая» зависимость выглядит как z = exp(a*x + b), а наблюдаемые таргеты сэмплируются не из нормального, а из экспоненциального распределения с матожиданием z(x). Обучаем модель y_pred = exp(a*x + b), т.е. просто подбираем параметры a и b по датасету, используя либо обычный L2 loss, либо специальный экспоненциальный лосс log(y_pred) + y / y_pred — это negative log-likelihood экспоненциального распределения (он тоже mean-proper!).

И оказалось, что экспоненциальный лосс даёт лучшее качество, чем L2, даже по MSE! Особенно, когда обучающих данных немного (когда много — L2 догоняет по качеству).

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

Эксперимент показал, что лосс, адаптированный к настоящему распределению шума, ведёт именно к лучшей генерализации — а не просто к другому компромиссу.

Иллюстрация (cherry-pick) — ниже. Типичная чувствительность L2 к выбросам.

P.S. Эксперимент выглядит очень простым. Но пока я его делал, я напоролся на несколько удивительных подводных камней. Оказалось, что использование
1) линейной зависимости z = a*x + b (без exp)
2) оптимизаторов Adam и (S)GD
3) mean(x) ± 2 * std(x) / sqrt(N) в качестве доверительного интервала среднего
— всё это делает эксперимент очень нестабильным. Угадайте, почему 😉
Forwarded from Wazowski Recommends
Давно не писал — много работы, не хватало ни сил, ни вдохновения. Но сейчас лечу на неделю в командировку в Сан-Франциско, и в самолёте наконец-то появилось время.

С одной стороны, все вокруг пишут про AI. Этого так много, что не хочется за ними повторять и не хочется быть ещё одним AI-каналом. С другой стороны, AI-инструменты на мою работу так сильно повлияли (особенно с января этого года), что и совсем промолчать тоже странно.

Я начал очень активно использовать Claude Code и стал его большим фанатом. Я больше не пишу код руками, 100% за меня пишет Claude. В большинстве случаев это не вайб-кодинг, а вполне себе вдумчивая разработка. Но бывают места (и на работе, и в домашних проектах), где и вайб-кодить уместно.

Второй инструмент, который я начал активно использовать (хотя изначально был настроен скептически) — это Superwhisper. Он распознаёт голос и делает это хорошо. Он ещё запускает LLM поверх распознанного текста (можно выбрать, какую). Я теперь даже частенько в опен-спейсе, когда народу вокруг немного, немножко бубню себе под нос. А если нужно наговорить более серьёзно — просто ухожу в переговорку. Для задач, где текста нужно немало, это настолько удобнее и реально облегчает работу, что уже сложно перестать пользоваться. Черновик к этому посту я тоже надиктовал в самолёте и распознал через Superwhisper.

Расскажу ещё про пару экспериментальных техник, которые я пока исследую. Обе — от Андрея Карпаты. Кстати, если вы за ним не следите — очень рекомендую.

Первая — это autoresearch. Почитайте про неё. Это про то, как улучшать качество вашей системы или модели автоматически — при условии, что вы можете сделать такую среду, где можно быстро и относительно надежно измерять качество.

Он использовал это в своём проекте nanochat, в котором пытается на скорость обучить LLM до уровня GPT-2. И он собрал бенчмарк, в котором обучает модель 5 минут и смотрит на метрики. Оказалось, что этого достаточно, чтобы агент автоматически предлагал разумные улучшения. Качество улучшилось не только в игрушечном сетапе пятиминутного обучения, но и в полноценном обучении.

Я с этой техникой активно экспериментирую. Один раз я её уже успешно применил во временном проекте (расскажу про него в следующий раз), где у меня изначально качество было около-нулевое. Claude примерно за полчаса-час поднял его до приемлемого. Сам разобрался, где основные проблемы и как их поправить.

Сейчас я пробую применять это для своего основного проекта — и параллельно хочу как-то улучшить эту технику. В частности, я пытаюсь скрестить её с другим известным подходом в мире Claude Code — Ralph loop (Ralph Wiggum, Ralphex). Он про то, чтобы не одной большой сессией агента решать большую задачу, а решать её итеративно. На каждой итерации запускается агент с небольшим начальным контекстом и пытается совершить небольшой прогресс. И вот так в цикле, итерация за итерацией, решает задачу.

Ещё одна техника от Карпаты — это LLM Wiki. Она про то, как агенты могут вести, поддерживать и обновлять базу знаний. Я использовал это в своём основном проекте, собирая знания и про проект, и вокруг него. Также я стал прогонять через это все статьи, которые читаю (хотя сейчас это не очень много, но стало больше, благодаря llm wiki). Каждую новую статью, которую я хочу изучить, агент суммаризирует, пытается разбить на разные концепты, связывает её с другими статьями — и собирает такой граф знаний. Получается интересно, но я только начал.

Я ещё хочу попробовать LLM Wiki применить и для домашних задач, где нужно что-то изучить. Попробую, например, в личных финансах.

В общем, продуктивность у меня реально возросла, наверное, раз в десять. Да и фана от работы стало сильно больше. Кстати, спасибо работодателю за то, что позволяет всем этим пользоваться безлимитно и на максималках. Хотя и AI-стратегия компании иногда вызывает вопросы — но вот в этом аспекте не придерешься.