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

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

pycaret - ещё одна удобная либа для машинного обучения. Проанализирует датасет, разобъёт признаки на группы, проведёт препроцессинг, обработает пропуски. Всё настраивается.

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

Я не уверен пока, поддерживается ли симметричное early stopping. Очень понравился их Fairness Report, я изобретал сам нечто похожее, а тут у них уже есть готовенькое и красивое.
Можно даже одним вызовом создать API для инференса, докер контейнер, и якобы даже развернуть в облаке (не тестил).

https://www.youtube.com/watch?v=gRGVwNggMX0
👍3
#gpt #alphaproof

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

Обе новые ИИ-модели обладают способностью к продвинутым математическим рассуждениям для решения сложных математических задач. AlphaProof была создана с использованием обучения с подкреплением, получив способность доказывать математические утверждения на формальном языке программирования Lean. Для её создания использовалась предварительно обученная языковая модель AlphaZero, алгоритм обучения с подкреплением, который ранее сам себя научил играть в шахматы, сёги и го. В свою очередь, AlphaGeometry 2 представляет собой усовершенствованную версию существующей ИИ-системы AlphaGeometry, представленной в январе и предназначенной для решения задач по геометрии.

В то время как AlphaProof была обучена решению задач по широкому кругу математических тем, AlphaGeometry 2 оптимизирована для решения задач, связанных с перемещениями объектов и уравнениями, включающими углы, соотношения и расстояния. Поскольку AlphaGeometry 2 была обучена на значительно большем количестве синтетических данных, чем предшественник, она может справиться с гораздо более сложными геометрическими задачами.

Чтобы проверить возможности новых ИИ-систем, исследователи Google DeepMind поручили им решить шесть задач Международной математической олимпиады (IMO) этого года и доказать правильность ответов. AlphaProof решила две задачи по алгебре и одну задачу по теории чисел, одна из которых была самой сложной на олимпиаде, в то время как AlphaGeometry 2 решила задачу по геометрии. Две задачи по комбинаторике остались нерешёнными.

Два известных математика, Тим Гауэрс (Tim Gowers) и Джозеф Майерс (Joseph Myers), проверили представленные системами решения. Они присудили каждому из четырёх правильных ответов максимальное количество баллов (семь из семи), что дало системам в общей сложности 28 баллов из максимальных 42. Участник олимпиады, набравший столько же баллов, был бы награждён серебряной медалью и немного не дотянул бы до золота, которое присуждается набравшим 29 баллов и больше.

Впервые ИИ-система смогла достичь результатов в решении математических задач IMO на уровне медалиста. «Как математик, я нахожу это очень впечатляющим и значительным скачком по сравнению с тем, что было возможно ранее», — заявил Гауэрс во время пресс-конференции.

Создание систем ИИ, способных решать сложные математические задачи, может проложить путь для захватывающего сотрудничества человека и ИИ, считает Кэти Коллинз (Katie Collins), исследователь из Кембриджского университета. Это, в свою очередь, может помочь нам узнать больше о том, как мы, люди, справляемся с математикой. «Мы всё ещё многого не знаем о том, как люди решают сложные математические задачи», — говорит она."

https://3dnews.ru/1108526/iimodeli-google-deepmind-reshili-zadachi-matematicheskoy-olimpiadi-na-urovne-serebryanogo-medalista
#featureselection

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

Как мы и знали раньше (из оригинального исследования автора, + моей проверки), корреляция "аппроксимированных предсказаний" и "честных предсказаний", хотя иногда и поднимается выше 90% (если количество признаков-кандидатов близко к полному количеству признаков), в среднем звёзд с неба не хватает.

Я взял датасет poker из pycaret, т.к. там достаточно наблюдений (100k), и дополнительно к к-ту корреляции посчитал RMSE честных и аппроксимированных предсказаний. Выяснился печальный факт, что RMSE просто среднего таргета по выборке (dummy) зачастую побеждает авторский способ оценки (naive).

Я расстроился, но, помня красивые графики автора, всё-таки посчитал реальные ошибки ground truth vs naive predictions, а уже от них NDCG в разрезе наборов признаков-кандидатов.

И был просто шокирован.
ndcg(naive_opt_fin_rmse)=0.99995 по 50 наборам признаков-кандидатов с числом признаков от 1 до 9 (всего в датасете их 10).

То есть, из Shap-значений нельзя вытащить прям точные аппроксимации честных прогнозов (слишком высокая RMSE). Но и не надо: даже эти аппроксимации позволяют с высокой точностью ранжировать наборы признаков-кандидатов (удивительно высокий NDCG).

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

На датасете poker "честное переобучение" модельки занимает у меня 8 секунд, а оценка авторским методом 0,005 секунд. Ускорение в 1500+ раз при 0.99995 условной точности ранжирования.

"Условной", потому что на больших списках ndcg становится "логарифмически нечувствительным" к хорошему ранжированию. Например, случайное ранжирование в этой же задаче (с теми же релевантностями) на списке размером 50 выдаёт NDCG=0.987.

Если же отказаться от абсолютной шкалы целевой ML-метрики, и в качестве релевантностей использовать целые числа [1,2,..,N], NDCG случайного ранжирования становится в среднем 0,827, а NDCG авторского ранжирования 0,968. Ну то есть, это прекрасный значимый результат.
🔥4
#law #facebook

"Стало известно, что Meta Platforms пришла к соглашению со штатом Техас по урегулированию поданного им иска с обвинением компании в незаконном использовании технологии распознавания лиц для сбора биометрических данных техасцев без их согласия, за что согласилась выплатить в течение пяти лет громадную сумму в $1,4 млрд.

Офис генерального прокурора сообщил, что Facebook загрузила и хранит без согласия клиентов миллиарды биометрических идентификаторов после введения в 2011 году функции «Предложения тегов» (Tag Suggestions), которая позволяет автоматически распознавать лица друзей на фотографиях пользователя. Как указали в прокураторе, Meta делала это, хотя знала, что закон Техаса о сборе или использовании биометрических идентификаторов (Texas Capture or Use of Biometric Identifiers Act, CUBI) запрещает компаниям собирать биометрические идентификаторы техасцев без предварительного уведомления и получения их согласия.

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

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

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

https://3dnews.ru/1108769/meta-soglasilas-viplatit-14-mlrd-za-uregulirovanie-iska-shtata-tehasa-o-nezakonnom-sbore-biometricheskih-dannih-tehastsev
🤯3
#pinns

Новая интересная область - численное решение диффур нейросетями. Производная ищется не по весам, а по координатам (и времени), а функция потерь и есть дифференциальное уравнение. Оверфит приветствуется, и прочие интересные тонкости )

https://youtu.be/ynj08DeoHr0?si=6dRXOZktaNWYqxke
#astronomy #biology

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

https://3dnews.ru/1108838/bez-elektrichestva-i-gidkogo-azota-uchyonie-predlogili-sozdat-bank-zemnih-biomaterialov-na-lune
👍2
#intel #stocks

"Близость достижения цели Intel по освоению пяти новых техпроцессов за четыре года инвесторов не впечатлила, а текущая структура расходов, включая себестоимость процессоров новых семейств Lunar Lake и Arrow Lake, добавила пессимизма инвесторам. Компания вынуждена сокращать расходы буквально по всем направлениям и будет вынуждена экономить на капитальных затратах, которые и были одним из главных условий потенциального преображения бизнеса процессорного гиганта. Кроме того, Intel откажется на какое-то время от выплаты дивидендов, а это держателей акций тоже не может порадовать в условиях их сохраняющейся уже не первый год отрицательной динамики. Фактически, акции Intel за пять лет подешевели более чем на 40 %, и примерно в такой же пропорции они обесценились с начала текущего года."

https://3dnews.ru/1108912/posle-otkritiya-torgov-aktsii-intel-ruhnuli-na-28-na-fone-udruchayushchego-kvartalnogo-otchyota
#series #openings #witcher

Посмотрел 1-ю серию Ведьмака - смотреть интересно, поединки на мечах отличные!

PS. Серии с 6-й скатилось в тупость ( Всё как и с супергероями-пацанами.

https://www.youtube.com/watch?v=KebuamM0ZvE
#fantasy #leguin

"Он был таким же шершавым и сырым, как и остальные, и походил на один из тех булыжников, которыми мостят улицы, но сила, таившаяся в нем, кричала во весь голос. Гед почувствовал, что у него перехватывает дыхание и подкашиваются ноги.

Эта комната являлась сердцем всего замка и здесь было холодно, страшно холодно – ничто не могло согреть эту комнату. Камень был древний, как сама Земля, и столь же древний и ужасный призрак был погребен в этом куске скалы. Он не ответил Серрет, не произнес ни слова, и через минуту, бросив на него любопытный взгляд, она сказала, указав на Камень:

– Это и есть тот самый Терренон. Как ты думаешь, почему мы храним такую драгоценность за семью замками?

Из осторожности Гед продолжал молчать. Возможно, Серрет испытывала его, хотя он был почти уверен, что она плохо представляла себе сущность этого Камня, и потому говорила о нем столь небрежно. Серрет знала слишком мало, чтобы бояться его.

– В чем его сила? – спросил он наконец.

– Этот Камень был создан до того, как Сегой поднял острова из Открытого Моря. Он был создан одновременно с нашим миром, и будет существовать, пока существует Вселенная. Время для него – пустой звук. Если положить на него руку и задать вопрос, он ответит, но чтобы услышать его голос, надо уметь слушать. Он говорит о том, что было, есть и будет. Камень давно предсказал твое появление здесь. Спроси его о чем-нибудь!

– Нет.

– Он ответит тебе.

– Мне не о чем спрашивать его.

– Он может подсказать тебе, – тихо произнесла она, – как одолеть твоего врага.

Гед молчал.

– Неужели ты боишься этого Камня? – спросила она, словно не веря своим ушам.

И Гед ответил:

– Да."

http://flibusta.site/b/145613/read
#fun #witcher

К таким эльфам жизнь меня не готовила!
«Объём работ, необходимых для упрощения двигателя Raptor, интеграции вторичных каналов подачи и добавления регенеративного охлаждения для незащищенных компонентов, был ошеломляющим, — пояснил Илон Маск в подписи к фотографии. Теперь для двигателя нужно меньше места и отсутствует необходимость в тепловом экране для целого ряда узлов.

«В результате Raptor 3 не требует никакого теплозащитного экрана, что исключает массу и сложность теплозащитного экрана, а также систему пожаротушения. Он также легче, обладает большей тягой и более высокой эффективностью, чем Raptor 2»,

https://3dnews.ru/1108944/izgotovlen-perviy-seriyniy-raketniy-dvigatel-raptor-3-eto-proizvedenie-iskusstva-kak-zayavil-ilon-mask
2
#featureselection

В дополнение к посту. Потестировал много вариантов улучшения исходной идеи:

1) усреднение значений Шэпли нескольких типов (с разными feature_perturbation)
2) усреднение значений Шэпли нескольких разных моделей
3) использование парных интеракций (shap_interaction_values)
4) мета-модель ML: зная индексы выбранных в комбинацию признаков и оставшихся признаков, а также честные предсказания моделек, давайте попробуем создать как мета-признаки ряд простых числовых агрегатов от шепли-значений (суммы, средние, отклонения, мин/макс и тп). ну и уже от этого мета-модель, вдруг она будет точнее чем исходная простая идея просуммировать значения Шепли выбранных в комбинацию признаков?

Находки/открытия:

1) не существует работающей реализации Shap на GPU (GPUTreeExplainer из пакета shap нерабочий, и всем похер. По идее он должен ставиться с xgboost (без shap), но он всё равно не юзает gpu, я проверял.)
2) KernelExplainer непроходимо медленен, забудьте про его использование. Речь о сотнях часов даже на небольшом датасете.
3) некоторые модели (lightgbm) считают интеракции в один поток и очень медленно (~40 минут на 100k x 20 датасете)
4) некоторые бустинги (Catboost) раздувают expected_value так, что они не просто не сходятся точно к среднему прогнозу, а превышают его вдвое. При этом внутренняя проверка shap на аддитивность проходит! ХЗ как это возможно. У других бустингов тоже такое наблюдалось, но хотя бы с гораздо меньшей амплитудой. В режиме feature_perturbation="tree_path_dependent" такого никогда не наблюдал.
5) Режим feature_perturbation="interventional" требует теневого датасета и считает значения Шэпли на порядки дольше, но ничего не даёт к точности.
6) xgboost (и только он) поддерживает доп параметр approximate=True, который отрабатывает быстрее, но реально роняет качество. его использовать не надо.
7) документация shap по-прежнему дырявая (параметры объясняльщика, которые ничего не делают, например), а на гитхабе никто по-прежнему не отвечает и не отрабатывает сигналы и проблемы юзеров. не понимаю, как они при этом релизят новые версии, скорее всего, это в основном переписывания исходного говнокода Скотта Ландберга.

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

1) все виды бустингов и все виды объясняльщиков для нашей задачи имеют примерно одинаковое качество (если не использовалось approximate=True)
2) усреднения ничего особо не меняют.
3) метамодель существенно улучшает линейную (да и другие) корреляцию, но особо не меняет метрики ранжирования комбинаций (которые и так на удивление хороши).
4) при небольшой по размеру группе кандидатов на удивление ранжирующие свойства сильно не падают.
🔥3
#featureselection

Вот внесэмпловые метрики XGBRegressor feature_perturbation=tree_path_dependent, approximate=False из предыдущего поста.

meta=мета-моделька, naive это просто сумма шэпли-значений как у автора идеи, adjusted это naive минус сумма шэпли-значений признаков не вошедших в комбинацию.

Считалось на датасете poker (10 исходных признаков + 5 фейковых случайных + 5 коррелированных с исходными). Помимо 2 видов ndgc (rel/abs), грубыми, но выразительными метриками были top_recall@k. Например, чтобы посчитать recall@10, брались 10 лучших (согласно честными прогнозам) на test комбинаций, и проверялось, сколько из них оказались в 10 лучших по версии того или иного метода.

В целом, для данной задачи нет смысла морочиться с мета-моделью, надо просто брать наивный оригинальный метод автора, и feature_perturbation="tree_path_dependent".
👍1
#featureselection #shap

Ну и теперь к практической реализации отборщика признаков на основе этой прекрасной идеи. Как это вообще сделать?

Обучать одну большую модель на всех признаках надо обязательно. Это, по счастливому совпадению, 1-й шаг всех RFE-* методов.
Далее получаем "простые" кэфы Шэпли самым быстрым (но не приближённым) методом. По желанию усредняем на CV.

И тут открывается простор для фантазии:

Полный брутфорс:

Генерим все 2^n_features сочетаний признаков, сортируем индексы признаков в сочетаниях.
суммируем шэпли-значения 1й комбинации. далее удаляем суммы убывших, прибавляем суммы прибывших в комбинацию признаков. раз в N итераций ресет суммы, чтобы сбросить накопленную ошибку суммирования.

Генетик:

Вектор 1/0 длины n_features генов - это особь популяции, её фитнесс оценивать мы умеем (суммируя его шэпли-значения и считая от них и ground truth нашу ml-метрику).
применяем направленный поиск путём скрещивания, мутаций, и прочего элитизма. Запускаем эволюцию, играем в Создателя, смеёмся страшным голосом mwa-ha-ha.

Любая другая эвристика, типа имитации отжига:

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

Градиентный поиск:

Ну да, это ж бинарный вектор, нет непрерывности, как по нему дифференцировать? Есть идея применить "признаки Шрёдингера"! ))
А именно, размазать их бинарность с помощью весового коэффициента. Они могут как бы входить, а как бы и нет в комбинацию с определённым весом. А чтобы вес в итоге ограничивался промежутком [0,1], к нему можно применить сигмоиду. Тем самым autograd-оптимизатор по идее сможет найти экстремумы ML-метрики, плавно включив/исключив признаки из комбинации.

А если итоговая ML-метрика недифференцируема (типа ROC, PR AUC)? Ну тогда ведь можно взять Brier score или какую-то подходящую прокси.
Уже есть набросок кода для pytorch, попробую затестить.

Не знаю, что сработает лучше, есть надежды на градик.

В любом случае, надо дать методу оптимизации поработать (в рамках бюджета времени), и получить от него топ-N лучших кандидатов. А их уже "честно" проверить (в оставшееся время) на insample CV и вернуть самую лучшую/устойчивую комбинацию признаков.

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