Интересное что-то
522 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
🔵Топологический анализ данных (TDA) с помощью ландшафтов устойчивости и его применение к временным рядам

TDA на функциях может быть использован для построения представлений признаков при анализе временных рядов. Ландшафты устойчивости особенно полезны в качестве топологических представлений для анализа сходства/несходства временных рядов. В литературе используются различные представления временных рядов, такие как взвешенное преобразование Фурье в Wang et al. (2018) или преобразование Уолша-Фурье в Chen et al. (2019). Я описываю эти ситуации в следующих разделах.

🔵Метод Ванга (Wang et al. (2018))

Ванг и др. (2018) предложили TDA для измерения структурных изменений во временных рядах электроэнцефалограмм (ЭЭГ). Сначала они построили преобразования Фурье временных рядов, затем применили экспоненциальную схему взвешивания к преобразованиям Фурье, чтобы сфокусироваться на более важных низкочастотных компонентах ЭЭГ. Далее они сгладили взвешенное преобразование Фурье, чтобы превратить его в функцию Морзе (Palais, 1963), это будет показано на первой формуле.

Формально, определим множества:

• I₁ = { j = 0, 1, 2, …, k : |aⱼ| > Tᵤ }

• I₂ = { j = 1, 2, …, k : |bⱼ| > Tᵤ }

где:

• Tᵤ = s√(2log(n))

• aⱼ = 2/T ∑ₜ₌₁ᵀ xₜ cos(((2jπ t)/T))

• bⱼ = 2/T ∑ₜ₌₁ᵀ xₜ sin(((2jπ t)/T))

• a₀ = 1/T ∑ₜ₌₁ᵀ xₜ

Здесь k - степень, определяющая самую высокую частоту [k/T], которая должна быть включена в представление (для T=500 используется k=99 ), n - количество точек данных в каждой фазе, а s - медиана абсолютного отклонения (MAD) коэффициентов Фурье(см. формулу 2)

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

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

🔵Метод Чена (Chen et al. (2019))

Чен и др. (2019) описали TDA категориальных временных рядов с помощью их преобразований Уолша-Фурье (которые не являются функциями Морзе). Они построили ландшафты устойчивости первого порядка на основе преобразований Уолша-Фурье категориальных временных рядов, которые затем использовали в качестве признаков для кластеризации. Они применили этот анализ к большому набору данных о путешествиях и активности, выполняя вычисления параллельно. Они показали, что построение ландшафта устойчивости первого порядка включает в себя только линейное преобразование преобразования Уолша-Фурье.

Учитывая последовательность WFT dT(n,λⱼ) , где j=0, 1, ..., T₂-1 для временного ряда x(n,t) , где n=1,2,...,N , обозначим минимум и максимум значений WFT временного ряда x_(n,t) через:

На рисунке 3 будут обозначены минимальное и максимальное значения WFT для всех N временных рядов:

Ландшафт устойчивости первого порядка для x_(n,t) получается для ℓ = 1, 2,..., L как показано на формуле 4 и 5. Где (a)₊ обозначает положительную часть действительного числа a . Для ℓ = 1, 2,..., L и n=1,...,N , PL(n,ℓ) - это кусочно-линейные функции, которые представляют собой признаки, построенные для каждого из N временных рядов и полезные для кластеризации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from rizzearch
Transformers for Supervised Online Continual Learning

мы уже когда-то давно писали про continual (reinforcement) learning - здесь, здесь, здесь, и здесь. но есть и супервайзд формулировка этой же задачи - меняется не ревард с течением времени или другие факторы среды, а онлайн поток лейблов (уметь классифицировать новый класс без забывания предыдущих)

в этой статье дипмаинды попытались подогнать трансформер под такой сетап на примере континуал емнист и цифар10. нету привычного батчированного предобучения (разве что используются предобученные картиночные feature extractors), а есть кое-что другое

что же все-таки смогли учудить авторы?

- обновляют модель в онлайн формате, чтобы соответствовать ограничениям задачи
- при этом сохраняют в КВ кэше предыдущие вычисления в sliding window стиле. да и кв кэш не один, а их несколько таких буферов (которые, видимо, рандомно сменяют друг друга, здесь авторы не совсем ясно расписали)
- таким образом и аттеншн утилизируется более стандартным способом, как мы привыкли, так еще и имитирует момент обучения по эпохам ввиду попеременной смены кв кэшей при градиентном обновлении. еще конечно интересно, как они реализовали online gradient шаг в комбинации с кв кэшами, поскольку к этому надо подойти аккуратно (и еще аккуратнее, чтобы достичь минимального оверхеда по обновлению состояний), но этого мы видимо не узнаем
- так же они попробовали 2 подхода по вставке лейблов - просто в контекст (и при next-token prediction задаче моделировать надо только их) или как доп проекция для kv, которые показывают себя примерно одинаково на существующих бенчмарках

кода нет (разве что псевдокод, по которому мало что понятно), толкового описания имплементации тоже. есть только интересные рассуждения, которыми нас кормят авторы, по поводу натуральности применения трансформеров к онлайн континуал задачам, поскольку они хорошо справляются с законом Ципфа) и контекстуальности входящих данных → это больше подходит не к i.i.d данным, а нестационарности

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

так что да, очередная статья про интересные свойства трансформера

👀LINK
Forwarded from rizzearch
Memory Mosaics

хоть недавно и вышла альтернатива трансформеру от саканы, она все равно использует аттеншн как основной механизм и не выглядит как вывод из bitter lesson

здесь же хочется написать про айклировские 2025 мозаики памяти, которые базируются на ассоциативной памяти (да, она мне нравится и я про нее уже писал здесь и здесь + китай тоже что-то пытается с ней делать, разбавляя текст цитатами из goodreads)

вместо селф аттеншна идет же база на основе Надарая-Ватсона [1], [2]
- где моделируют необходимые ключи k и значения v для ассоциаций
- при том ключи вычисляются по токенам вплоть до данного таймстепа, а значения же на один шаг вперед (хотя можно в теории сделать и на большее количество шагов + нам еще так не придется вставлять позиционное кодирование), а на инференсе получается путем интерполяции
- и итоговый аутпут вычисляется через Надарая-Ватсона (который в теории должен сходиться к истинному какому-то там условному мат ожиданию значений v от ключей k)
- и поскольку теоретически один такой модуль сходится, то и интерпретация его (по словам авторов) лучше, чем один модуль селф аттеншна, да и даже эффективнее. так они эмпирически показывают, что inductive bias может появиться уже с одним таким блоком памяти, в то время как аттеншну нужно минимум 2 слоя
- для того, чтобы хендлить длинные последовательности и больше укрепить вопрос о позиционности токенов в архитектуре, авторы добавили нормализацию и leaky average, которую можно реализовать через свертку
- если же наслаивать эти модули друг на друга, каждый в отдельности будет отвечать за свой кусок меморизации, нужный для цельной картины - отсюда и название мозаик памяти (а и еще это наводит на мысли о связи мета-лернинга и градиентного обучения, про которое мы и тут упоминали)

что по экспам?
- супер-пупер маленький скейл (сравнивают с маленькой гпт2)
- игрушечные датасеты (3 луны) + языковое моделирование как BabiStories + in-context learning on RegBench
- обгоняет по перплексии, обгоняет в ин-контекст лернинг сетапе + нужно меньше слоев (в том числе в сравнении и с рнн и ссм)
- добавляют еще аналог FFN в виде Persistent Associative Memory (где количество kv фиксировано и они побольше подходят с теории кернел регрессии)
- но масштабируемо ли?

seems like not. иначе их predictive disentanglement (свойство мозаики) сравнивался с бОльшим скейлом моделек + были бы аблации на чувствительность к гиперам

но материал хорош для повторения всей этой теории и нового взгляда на аттеншн

👀 paper, code
Обещанный аналитический ноутбук от бигтеха!

Доброе воскресеннее утро!
Здесь приложил ссылку на google colab с реальным кейсом на собес Миддла!

Как с ним работать?
1. Первое и самое главное - нажимаем на "файл" - "сохранить копию на диске"
2. Выполняем задачи, по возможности засекайте время выполнения таких вещей как: распарсить данные, выполнение 1, 2 и тд задач
3. Если необходимо закидываем общую инфу из датасета в чат GPT и просим придумать еще задания.


* Если же вы еще маленький или сомневаетесь в себе, но очень интересно - там внизу есть мое решение с комментариями того как я мыслю


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

Че думаете по поводу сложности кейса?

По традиции ставим прогрессивного жаба 📈, если ждете больше крутых и удобных материалов, заинтересованного жаба 📃 если было интересно глянуть решение и просто лайк ❤️, чтобы я увидел ваш фидбек
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Интерактивный учебник искусству вайб-кодинга от Рика Рубина 🌊

Год назад и представить не могла бы, что такой коллаб возможен. Бесплатная онлайн книжка, в большей степени про искусство создания. В похожем стиле, что и "The Creative Act" -- чтобы остановиться, подумать и вдохновиться. Не бояться критики, не утопать в попытке создать идеальное и конечно же попробовать создать каждую из этих визуализаций в Claude.
Forwarded from Refat Talks: Tech & AI
Media is too big
VIEW IN TELEGRAM
🔥 Наконец-то рабочий Telegram MCP!

Из нескольких GitHub-репозиториев только mcp-telegram от dryeab оказался реально рабочим. И работает он просто огонь! Сделал обзорчик специально для вас.

Зацените, на видео показываю уже настроенную версию: поиск по сообщениям, анализ канала (угадайте чей?), суммаризация контента. Все то, что может делать обычный пользователь Telegram - не бот, а именно юзер-аккаунт. Работает неожиданно быстро и стабильно.

Что можно делать через этот MCP:
- Отправлять, редактировать и удалять сообщения
- Искать по истории чатов с фильтрами
- Скачивать медиа из сообщений
- Управлять черновиками
- Получать сообщения по прямым ссылкам
- Искать пользователей, группы и каналы

И все это прямо из Claude, Cursor и т.д.

Важный дисклеймер: я проанализировал репозиторий, проверил зависимости - ничего подозрительного. Но все равно поставил на тестовый тг аккаунт. Вам тоже советую использовать тестовый, безопасность - прежде всего. Плюс нужно соблюдать ToS Telegram и не злоупотреблять.

Настройка не самая очевидная, но для mtproto стандартная: получаете API ID, ключ, hash и тд с my.telegram.org, аутентифицируетесь через CLI, добавляете конфиг в Claude Desktop.

Side note: вся эта возня с JSON-конфигами и CLI-командами поднимает порог входа в MCP для нетехнических людей, надо что-то с этим делать)

Но если вы умеете в терминал - очень рекомендую поиграиться. Это реально расширяет возможности Claude и открывает кучу интересных use case'ов.

Репозиторий: https://github.com/dryeab/mcp-telegram

И это, если этот пост не заслуживает на 🔥и репост, то даже не знаю какой заслуживает! :)
Please open Telegram to view this post
VIEW IN TELEGRAM