Forwarded from ML for Value / Ваня Максимов
Неклассические бустинги над деревьями (hybrid regression tree boosting)
У бустингов над деревьями есть некоторые проблемы с линейными зависимостями. Почему бы тогда не совместить бустинг, деревья и линейную регрессию?
Идея такая: в классическом дереве для задачи регрессии для прогноза в каждом листе берется среднее таргетов (для rmse loss). Что если вместо простого среднего строить в листе линейную регрессию? И в качестве прогноза брать прогноз линейной регрессии
Так и возник подход hybrid regression tree (HRT) - это дерево, в каждом листе которого есть линейная регрессия. Пример работы можно посмотреть на картинке к посту. Ну и конечно это можно обобщить до бустинга
Штука прикольная, и как-то в универе мы с ребятами даже запилили код hybrid regression tree. Ни о какой оптимизации по скорости и памяти в студенческом проекте речи конечно нет, но поиграться можно
И внезапно наша репа до сих пор топ-1 по запросу ”hybryd regression tree” в гугле аж с 2 звездочками 😅
Это говорит скорее о непопулярности подхода - по метрикам чуть лучше классического lightGBM / CatBoost, но сииииильно медленнее: может работать только на небольших наборах данных до 10-100к строк. Можете, кстати, посчитать сложность алгоритма в комментариях - удивитесь 😄
UPD: В комментариях подсказали, что этот алгоритм завезли в lightGBM. Что ж, очень радует!)
#answers - ответы на вопросы из комментариев
У бустингов над деревьями есть некоторые проблемы с линейными зависимостями. Почему бы тогда не совместить бустинг, деревья и линейную регрессию?
Идея такая: в классическом дереве для задачи регрессии для прогноза в каждом листе берется среднее таргетов (для rmse loss). Что если вместо простого среднего строить в листе линейную регрессию? И в качестве прогноза брать прогноз линейной регрессии
Так и возник подход hybrid regression tree (HRT) - это дерево, в каждом листе которого есть линейная регрессия. Пример работы можно посмотреть на картинке к посту. Ну и конечно это можно обобщить до бустинга
Штука прикольная, и как-то в универе мы с ребятами даже запилили код hybrid regression tree. Ни о какой оптимизации по скорости и памяти в студенческом проекте речи конечно нет, но поиграться можно
И внезапно наша репа до сих пор топ-1 по запросу ”hybryd regression tree” в гугле аж с 2 звездочками 😅
Это говорит скорее о непопулярности подхода - по метрикам чуть лучше классического lightGBM / CatBoost, но сииииильно медленнее: может работать только на небольших наборах данных до 10-100к строк. Можете, кстати, посчитать сложность алгоритма в комментариях - удивитесь 😄
UPD: В комментариях подсказали, что этот алгоритм завезли в lightGBM. Что ж, очень радует!)
#answers - ответы на вопросы из комментариев
Forwarded from Машинное обучение от ИЦ "ГЕВИССТА"
Формирую набор на курс по рядам, разбираю вопросы. Отвечаю на вопрос, почему нельзя выбирать, пропускать материал, который знаешь. Во-первых, курс у меня не шведский стол, когда вы «выбираете» или мы «это пропускаем, это я знаю» вы рвете мне нить повествования, потому что у меня все достаточно жестко, системно спланировано. Во-вторых, и это более важно, а вы уверены, что вы знаете? На своем примере расскажу. Я довольно неплохо знаю ARIMA (пруф – пособие в посте выше), могу очень приличную модель сделать. Устроился в Capital, вторая неделя пошла, коллеги делятся опытом, там у нас есть ARIMA guys, и я думаю, ну чему они меня еще могут научить. Выясняется, я совсем забыл про применение сплайнов в качестве признаков для ARIMA, я неправильно делал интеракции Фурье и календарных признаков (календарные брал в лоб, тогда как эффективнее их переводить в формат десятичных дробей), у меня были предубеждения (ошибочные) в отношении оптимизации с ограничениями для ARIMA и, позор мне, я делал совершенно бездарное сглаживание для ARIMA (с выбросами бороться), а потом и вовсе его бросил, потому что оно не помогало, а оно, естественно, помогало, просто нужно было делать его по-другому. Еще я игнорировал правило про проверку на единичный корень в AR и MA-части, ребята показали убедительные примеры, как важно его проверять. И я не знал толком техник деагрегации прогнозов, когда для того, чтобы модель по очень шумному ряду не шпарить, делаем агрегацию ряда, но тогда прогнозы будут для агрегированного ряда и надо деагрегировать. Знал, что в Greykite применяют, а как руками делать не видел. И это я с немалым опытом работы c ARIMA. У ребят было свое преимущество, они проводили воркшопы, разбирали кучу научных статей, сами писали статьи и взяли на вооружение очень много подходов, которые не всегда выведешь в лоб эмпирически. Представьте, я б себя индюком повел, мол, "я тут все знаю", этих важных тонкостей не узнал бы. Так что не переоцениваем себя, слушаем, мотаем на ус.
✍3👍1
#algorithms #tries #consistenhashing #quadtrees #leakybucket #bloomfilter #raft #paxos
https://www.youtube.com/watch?v=xbgzl2maQUU
https://www.youtube.com/watch?v=xbgzl2maQUU
YouTube
Algorithms You Should Know Before System Design Interviews
Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bytebytego.ck.page/subscribe
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
#vr #mr #quest3 #meta
А тем временем выходит Квест 3 за $500 с вдвое более мощным железом, лучшими линзами и разрешением выше на 30% чем у 2-ки. 2-й я брал за $300, кажется. Смешанную реальность ещё не пробовал, говорят, круто, можно играть в настолки, открывать порталы в стенах (хорошо хоть не проходить), прятаться за диваном от выстрелов в игре.
https://www.youtube.com/watch?v=KoqQCl6l73k
А тем временем выходит Квест 3 за $500 с вдвое более мощным железом, лучшими линзами и разрешением выше на 30% чем у 2-ки. 2-й я брал за $300, кажется. Смешанную реальность ещё не пробовал, говорят, круто, можно играть в настолки, открывать порталы в стенах (хорошо хоть не проходить), прятаться за диваном от выстрелов в игре.
https://www.youtube.com/watch?v=KoqQCl6l73k
YouTube
Meta Quest 3 Announcement.
Pre-order: https://metaque.st/Q3POtyrielwoodYT
Mark Zuckerberg, CEO of Meta presents The Next Generation Mixed Reality Headset on Stage. Introducing the Meta Quest 3.
US https://amzn.to/3ESBfja
EU https://amzn.to/3EWFytY
#quest3 #meta #explorewithquest…
Mark Zuckerberg, CEO of Meta presents The Next Generation Mixed Reality Headset on Stage. Introducing the Meta Quest 3.
US https://amzn.to/3ESBfja
EU https://amzn.to/3EWFytY
#quest3 #meta #explorewithquest…
#competitions #sber
Новая МЛ-сорева от Сбера стартовала.
"Присоединяйтесь к соревнованию AIJ Contest 2023 и предложите решения пяти актуальных задач в AI
В этом году победители разделят рекордный призовой фонд
в размере более 11 млн рублей. Участникам предстоит решить задачи по AI, каждая из которых настоящий вызов:
Strong Intelligence — создать мультимодальную модель, которая обыгрывает знатоков интеллектуальных викторин и покажет суперуровень эрудиции
Unique RecSys — разработать уникальный RL-алгоритм для подбора максимально релевантного контента
Personal AI — подготовить модели для подбора персонализированных рекомендаций по продуктам
Equal AI — создать модель, распознающую русский жестовый язык по видео
Rescue AI — разработать модель, способную определять изменения в геноме человека"
Новая МЛ-сорева от Сбера стартовала.
"Присоединяйтесь к соревнованию AIJ Contest 2023 и предложите решения пяти актуальных задач в AI
В этом году победители разделят рекордный призовой фонд
в размере более 11 млн рублей. Участникам предстоит решить задачи по AI, каждая из которых настоящий вызов:
Strong Intelligence — создать мультимодальную модель, которая обыгрывает знатоков интеллектуальных викторин и покажет суперуровень эрудиции
Unique RecSys — разработать уникальный RL-алгоритм для подбора максимально релевантного контента
Personal AI — подготовить модели для подбора персонализированных рекомендаций по продуктам
Equal AI — создать модель, распознающую русский жестовый язык по видео
Rescue AI — разработать модель, способную определять изменения в геноме человека"
#series #cybervillage
У кого есть подписка Яндекс.Плюс, рекомендую ) Трейлер от энтузиастов видеомонтажа стал мини-сериалом.
https://www.kinopoisk.ru/series/5019944/
У кого есть подписка Яндекс.Плюс, рекомендую ) Трейлер от энтузиастов видеомонтажа стал мини-сериалом.
https://www.kinopoisk.ru/series/5019944/
Кинопоиск
Кибердеревня, 2023
📺 Смотрите онлайн сериал «Кибердеревня» (2023) на Кинопоиске все серии, 1-2 сезоны. Фермер и робот бегут из космической тюрьмы навстречу приключениям. Захватывающий сай-фай с русской душой
Forwarded from Техножрица 👩💻👩🏫👩🔧
Одна из моих главных жизненных ценностей - интеллектуальная честность. Поэтому какое-то время назад я провела достаточно много времени, читая материалы про различные когнитивные искажения.
Ну, а главное когнитивное искажение, которое меня волнует при занятиях научными исследованиями - это, конечно же, ошибка подтверждения. В этом контексте она возникает очень часто, и чем дольше я занимаюсь исследованиями в области машинного обучения, тем чаще её замечаю.
Одно из самых заметных проявлений искажения заключается в следующем: как правило, исследователи тратят несравнимо больше времени и усилий на то, чтобы выдавить мельчайшие капельки целевой метрики из своего метода, чем на то, чтобы корректно выбрать и хорошо настроить бейзлайн. И немудрено: ведь то, пройдет ли статья ревью или нет, зависит от того, насколько хороший результат покажет новый метод, а не старый. При использовании новых датасетов, бейзлайны на которых еще неизвестны, особенно легко сделать бейзлайн плохим таким образом, чтобы ревьюеры этого не заметили. При чем иногда это происходит не совсем сознательно, просто от того, что человек не уделяет времени тому, чтобы подобрать своему бейзлайну подходящие гиперпараметры и сделать сравнение честным по всем аспектам.
Из-за мыслей об этом, в последние месяцы я довольно сильно озаботилась бейзлайнами и стала уделять больше времени их продумыванию, настройке и пиханию везде, где мне хватает на это времени и возможности. Это заметно, например, по статье Topological Data Analysis for Speech Processing (см. также пост https://news.1rj.ru/str/tech_priestess/755 ), и по еще одной про NLP домен, которую мы пока что не опубликовали из-за периода анонимности.
В первой статье я предложила добавить такой бейзлайн, в котором информация собиралась бы со всех слоев модели HuBERT не в виде топологических фичей (которые были нашим основным методом), а в виде какой-нибудь более простой аггрегации эмбеддингов с каждого слоя (коллеги в итоге взяли эмбеддинг первого токена и пулинг по эмбеддингам в качестве таких аггрегаций). Целью этого было проверить, действительно ли важную информацию несут именно топологические фичи, или же для хорошего результата достаточно просто пропустить информацию с промежуточных представлений модели. Ответ оказался неоднозначным, потому что для одних датасетов хорошо работало одно, а для других - другое (см. таблицу 1). 🥴 Кроме того, я просила коллегу попробовать потюнить HuBERT по-другому (полностью, а не только последний слой), но это, как ни странно, оказалось хуже других методов и потому не вошло в финальную таблицу.
Ну а во второй, анонимной, из-за того, что я главный автор, я уж совсем развязала себе руки и наплодила целую россыпь бейзлайнов, один из которых натюнила так, что мы его потом сами же и не смогли побить во многих подзадачах (думаю, вероятность того, что статью отвергнут, процентов 90🥴 ).
А еще я против того, чтобы сравнивать слишком много (порядка нескольких десятков или, тем более, сотен) вариаций своего метода или фичей на out of domain множествах и потом использовать в статье именно те фичи или тот метод, который хорошо выступил на этом OOD. Я думаю, что если так делать, то OOD множество как бы превращается в множество валидации (так как если ты выбираешь из большого множества методов один, то это тоже получется как будто ты затюнил на этом множестве гиперпараметр). Несколько вариаций своего метода я по такому принципу сравнить ещё могу, но несколько десятков уже считаю подгонкой.
Иногда мне, однако, кажется, что я задалбываю окружающих своими заебомбами по этим поводам.
Сколько времени на самом деле разумно тратить на настройку бейзлайна?🤷♂️ Сколько раз можно проверять точность методов на test или OOD множествах, прежде чем эти множества превратятся в valid и прекратят реально отображать обобщаемость наших решений? 🤷♂️
В общем, где грань разумного, за которой кончается реальная забота об объективности и начинается паранойя? 🥴
#рассуждения
Ну, а главное когнитивное искажение, которое меня волнует при занятиях научными исследованиями - это, конечно же, ошибка подтверждения. В этом контексте она возникает очень часто, и чем дольше я занимаюсь исследованиями в области машинного обучения, тем чаще её замечаю.
Одно из самых заметных проявлений искажения заключается в следующем: как правило, исследователи тратят несравнимо больше времени и усилий на то, чтобы выдавить мельчайшие капельки целевой метрики из своего метода, чем на то, чтобы корректно выбрать и хорошо настроить бейзлайн. И немудрено: ведь то, пройдет ли статья ревью или нет, зависит от того, насколько хороший результат покажет новый метод, а не старый. При использовании новых датасетов, бейзлайны на которых еще неизвестны, особенно легко сделать бейзлайн плохим таким образом, чтобы ревьюеры этого не заметили. При чем иногда это происходит не совсем сознательно, просто от того, что человек не уделяет времени тому, чтобы подобрать своему бейзлайну подходящие гиперпараметры и сделать сравнение честным по всем аспектам.
Из-за мыслей об этом, в последние месяцы я довольно сильно озаботилась бейзлайнами и стала уделять больше времени их продумыванию, настройке и пиханию везде, где мне хватает на это времени и возможности. Это заметно, например, по статье Topological Data Analysis for Speech Processing (см. также пост https://news.1rj.ru/str/tech_priestess/755 ), и по еще одной про NLP домен, которую мы пока что не опубликовали из-за периода анонимности.
В первой статье я предложила добавить такой бейзлайн, в котором информация собиралась бы со всех слоев модели HuBERT не в виде топологических фичей (которые были нашим основным методом), а в виде какой-нибудь более простой аггрегации эмбеддингов с каждого слоя (коллеги в итоге взяли эмбеддинг первого токена и пулинг по эмбеддингам в качестве таких аггрегаций). Целью этого было проверить, действительно ли важную информацию несут именно топологические фичи, или же для хорошего результата достаточно просто пропустить информацию с промежуточных представлений модели. Ответ оказался неоднозначным, потому что для одних датасетов хорошо работало одно, а для других - другое (см. таблицу 1). 🥴 Кроме того, я просила коллегу попробовать потюнить HuBERT по-другому (полностью, а не только последний слой), но это, как ни странно, оказалось хуже других методов и потому не вошло в финальную таблицу.
Ну а во второй, анонимной, из-за того, что я главный автор, я уж совсем развязала себе руки и наплодила целую россыпь бейзлайнов, один из которых натюнила так, что мы его потом сами же и не смогли побить во многих подзадачах (думаю, вероятность того, что статью отвергнут, процентов 90
А еще я против того, чтобы сравнивать слишком много (порядка нескольких десятков или, тем более, сотен) вариаций своего метода или фичей на out of domain множествах и потом использовать в статье именно те фичи или тот метод, который хорошо выступил на этом OOD. Я думаю, что если так делать, то OOD множество как бы превращается в множество валидации (так как если ты выбираешь из большого множества методов один, то это тоже получется как будто ты затюнил на этом множестве гиперпараметр). Несколько вариаций своего метода я по такому принципу сравнить ещё могу, но несколько десятков уже считаю подгонкой.
Иногда мне, однако, кажется, что я задалбываю окружающих своими заебомбами по этим поводам.
Сколько времени на самом деле разумно тратить на настройку бейзлайна?
В общем, где грань разумного, за которой кончается реальная забота об объективности и начинается паранойя? 🥴
#рассуждения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#trading #hft #amd #hardware #fpga
Компания AMD анонсировала специализированный ускоритель Alveo UL3524 на базе FPGA, ориентированный на финтех-сферу. Решение, как утверждается, позволяет трейдерам, хедж-фондам, брокерским конторам и биржам совершать операции с задержками наносекундного уровня.
В основу новинки положен чип FPGA Virtex UltraScale+, выполненный по 16-нм технологии. Конфигурация включает 64 трансивера с ультранизкой задержкой, 780 тыс. LUT и 1680 DSP.
Отмечается, что Alveo UL3524 обеспечивает в семь раз меньшую задержку по сравнению с FPGA предыдущего поколения. В частности, инновационная архитектура трансиверов с оптимизированными сетевыми ядрами позволяет добиться показателя менее 3 нс.
https://servernews.ru/1093861
Компания AMD анонсировала специализированный ускоритель Alveo UL3524 на базе FPGA, ориентированный на финтех-сферу. Решение, как утверждается, позволяет трейдерам, хедж-фондам, брокерским конторам и биржам совершать операции с задержками наносекундного уровня.
В основу новинки положен чип FPGA Virtex UltraScale+, выполненный по 16-нм технологии. Конфигурация включает 64 трансивера с ультранизкой задержкой, 780 тыс. LUT и 1680 DSP.
Отмечается, что Alveo UL3524 обеспечивает в семь раз меньшую задержку по сравнению с FPGA предыдущего поколения. В частности, инновационная архитектура трансиверов с оптимизированными сетевыми ядрами позволяет добиться показателя менее 3 нс.
https://servernews.ru/1093861
ServerNews - все из мира больших мощностей
AMD представила ускоритель Alveo UL3524 для брокерских и биржевых приложений
Компания AMD анонсировала специализированный ускоритель Alveo UL3524 на базе FPGA, ориентированный на финтех-сферу. Решение, как утверждается, позволяет трейдерам, хедж-фондам, брокерским конторам и биржам совершать операции с задержками наносекундного уровня.
#poetry #dragons
"так и быть, расскажу, и на этом давай закончим,
потому что любые слова не надёжней рассветной сини.
...жил да был один мальчик, мечтавший убить дракона,
потому что о прочем мечтать не хватало силы.
он искал зверюгу в домах,
по полям да весям,
по лесам и оврагам, по гулким пустым пещерам.
а дракон приходил к нему в сны и смеялся весело,
желтоватые зубы щерил.
а дракон приходил ночами, меняя облик,
как иные меняют любовниц и убеждения.
приходил то чешуйчатым гадом, то сизым облаком,
приходил светом солнца и тонкой тенью.
а дракон говорил,
и был вкрадчив голос,
говорил, как земля, высыхая, шипит, замерзая стонет,
как поёт, прорастая, пырей, как лепечет колос,
как дорога в нутре хранит девятьсот историй.
говорил, что ручьи не бегут, а уходят в почву,
что любовь – угольки: вроде греет, а тронешь – жжётся,
говорил, как звенят по весне на деревьях почки,
что в постели спать жутко, на камне – жёстко.
что осенние звёзды летят как листва,
и горят гнилушками,
что огромное горе скрежещет в груди металлом.
вот о чём дракон говорил.
только мальчик его не слушал,
а с упорством искал дракона в нездешних далях.
эта глупая сказка диктует свои законы:
отмахнись от неё, отгони, словно это мошка.
жил да был один мальчик, мечтавший убить дракона,
и искавший дракона везде, где нельзя и можно.
он искал по погостам, в подвалах, в хлевах, на крышах,
на местах прошлых битв и в гулком закатном зареве.
а пока он искал, проросли из лопаток крылья,
чешуя проросла на шее и под глазами."
"Long ago in a time of tales when
Mighty dragons ruled the sky
In his castle a knight so wealthy
Dwelled in the woods by the riverside
Filled with greed he dreamt of the treasures
That the dragons were said to own
So one day he went out to kill them
Claim all the riches for his own
Dragonslayer - Raise your sword up high
Dragonslayer - Blood is spilled tonight
Soon he had slain many a dragon
Just a single one of them left
Far beyond all imaginations
Were the treasures that he possessed
No one had ever seen this monster
The most dangerous beast of them all
And the knight in his shiny armour
Headed for this last dragon to fall
To a cave in the highest mountains
He then rode with an evil grin
In a fierce and long lasting battle
Neither the dragon nor he could win
His eyes then caught a glimpse of the treasure
Fascinated he turned his head
In this moment the dragon hit him
Bleeding his body dropped down dead
Dragonslayer - You are gonna die
Dragonslayer - Your blood is spilled tonight"
https://www.youtube.com/watch?v=_V5q11x6q4g
"так и быть, расскажу, и на этом давай закончим,
потому что любые слова не надёжней рассветной сини.
...жил да был один мальчик, мечтавший убить дракона,
потому что о прочем мечтать не хватало силы.
он искал зверюгу в домах,
по полям да весям,
по лесам и оврагам, по гулким пустым пещерам.
а дракон приходил к нему в сны и смеялся весело,
желтоватые зубы щерил.
а дракон приходил ночами, меняя облик,
как иные меняют любовниц и убеждения.
приходил то чешуйчатым гадом, то сизым облаком,
приходил светом солнца и тонкой тенью.
а дракон говорил,
и был вкрадчив голос,
говорил, как земля, высыхая, шипит, замерзая стонет,
как поёт, прорастая, пырей, как лепечет колос,
как дорога в нутре хранит девятьсот историй.
говорил, что ручьи не бегут, а уходят в почву,
что любовь – угольки: вроде греет, а тронешь – жжётся,
говорил, как звенят по весне на деревьях почки,
что в постели спать жутко, на камне – жёстко.
что осенние звёзды летят как листва,
и горят гнилушками,
что огромное горе скрежещет в груди металлом.
вот о чём дракон говорил.
только мальчик его не слушал,
а с упорством искал дракона в нездешних далях.
эта глупая сказка диктует свои законы:
отмахнись от неё, отгони, словно это мошка.
жил да был один мальчик, мечтавший убить дракона,
и искавший дракона везде, где нельзя и можно.
он искал по погостам, в подвалах, в хлевах, на крышах,
на местах прошлых битв и в гулком закатном зареве.
а пока он искал, проросли из лопаток крылья,
чешуя проросла на шее и под глазами."
"Long ago in a time of tales when
Mighty dragons ruled the sky
In his castle a knight so wealthy
Dwelled in the woods by the riverside
Filled with greed he dreamt of the treasures
That the dragons were said to own
So one day he went out to kill them
Claim all the riches for his own
Dragonslayer - Raise your sword up high
Dragonslayer - Blood is spilled tonight
Soon he had slain many a dragon
Just a single one of them left
Far beyond all imaginations
Were the treasures that he possessed
No one had ever seen this monster
The most dangerous beast of them all
And the knight in his shiny armour
Headed for this last dragon to fall
To a cave in the highest mountains
He then rode with an evil grin
In a fierce and long lasting battle
Neither the dragon nor he could win
His eyes then caught a glimpse of the treasure
Fascinated he turned his head
In this moment the dragon hit him
Bleeding his body dropped down dead
Dragonslayer - You are gonna die
Dragonslayer - Your blood is spilled tonight"
https://www.youtube.com/watch?v=_V5q11x6q4g
YouTube
Circle of Grief - The Tale of a Dragonslayer
Circle of Grief - The Tale of a Dragonslyaer - Album "Into the Battle" 2001
Long ago in a time of tales when
Mighty dragons ruled the sky
In his castle a knight so wealthy
Dwelled in the woods by the riverside
Filled with greed he dreamt of the treasures…
Long ago in a time of tales when
Mighty dragons ruled the sky
In his castle a knight so wealthy
Dwelled in the woods by the riverside
Filled with greed he dreamt of the treasures…