Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Data Blog
АЕ, АЕ, сегодня про AE aka Autoencoders.

Я уверенно, но чуть медленно продолжаю цикл туториалов, посвященных области explainable AI. Так, уже были разобраны метод Logit Lens на примере ViT, зондирование gpt2, CAM на примере Yolo NAS — всё можно найти по статьям в профиле на Хабр.

В этом, новом туториале, мы разберем идею применения автокодировщиков для анализа и извлечения признаков из скрытых состояний модели.

В процессе, вы:

* Изучите или повторите, как работает извлечение признаков в Visual Transformers;
* Построите и примените автокодировщик для сжатия скрытых представлений, выученных моделью ViT в задаче классификации котиков и собачек;
* Сравните Vit и PCA в данной задаче.

🐥 Залетайте читать! AE — конечно, не SAE и в задачах сложнее лучше использовать именно SAE, но туториал позволит пощупать базовую идею применения энкодеров.

В скором времени надеюсь сделать материал и по SAE!

Хорошей весны!
Ваш Дата Автор!
Показал, как я веду базу книг в Obsidian — на этом примере вы научитесь вести базы любых данных в Obsidian, автоматически их анализировать и визуализировать произвольным образом.

Вжух!

YouTube | VK | RuTube | Дзен | Платформа

0:00 Что будем делать
0:47 Коротко об Obsidian
1:19 Метаданные и их использование
2:26 Установка и настройка dataview
3:10 Выборки данных с dataview
6:46 Заведение метаданных
8:57 Использование шаблонов для добавления записей
10:15 Использование метаданных с dataview
13:06 Мякотка — использование dataviewjs
17:10 Произвольная JS-логика в dataviewjs
19:39 Настраиваемая ширина отдельных заметок с CSS
25:08 Пишем свой JS/HTML/CSS для визуализации данных
34:45 Возможности воодушевляют!
36:31 Сложно? Не упарывайтесь, просто пишите заметки!
39:35 Спасибо!
TDA временных рядов с помощью функций частотной области

Пост разделен на две части. В первом разделе обсуждается TDA, начиная с вариаций преобразования Фурье для временных рядов с непрерывным значением, в то время как во втором разделе показано, как строить диаграммы постоянства на основе преобразований Уолша-Фурье для категориальных временных рядов.

Часть 1

В этом разделе мы рассмотрим топологические свойства временных рядов через их представления в частотной области, такие как спектры второго порядка. Я строю диаграмму постоянства, используя фильтрацию набора подуровней на основе сглаженной конической оценки спектра второго порядка временного ряда {xₜ, t = 1, …, T}. Модифицированный DFT (Stoffer,1991) и соответствующая периодограмма с сужением представлены на рисунке 1, для t= 1,2,...,T, где ht - функция конусности.

Пример: Сглаженная сужающаяся диаграмма спектра второго порядка к устойчивости

Я использую функцию R gridDiag для построения диаграмм постоянства для тех же трех сигналов периодического временного ряда, показанных в предыдущей серии постов. В случае 1 spc.t1 обозначает сглаженную конусообразную периодограмму (конусность = 0.1 по умолчанию в спецификации функции R) и сглаживание с помощью модифицированного окна Даниэля (0.25, 0.5, 0.25) временного ряда ts1.

# Шаг 1: Регрессия и стандартизация
x.1 <- 1:length(ts1)
ts1 <- lm(ts1 ~ x.1)$residuals
ts1 <- ts1 / sd(ts1)

# Шаг 2: Вычисление спектра
spc.t1 <- spec.pgram(ts1, kernel = kernel("modified.daniell", c(1)), plot = FALSE)

# Шаг 3: Построение диаграммы постоянства
PD.t1 <- gridDiag(FUNvalues = spc.t1$spec, location = FALSE, sublevel = TRUE)$diagram


На втором рисунке в верхнем ряду показаны сигналы временных рядов, в среднем ряду — спектры второго порядка, а в нижнем ряду — диаграммы постоянства. Пики в спектрах приходятся на разные частоты и соответствуют вкладам этих частот в общую дисперсию xₜ. Три диаграммы постоянства в нижнем ряду похожи друг на друга, поскольку этот метод нечувствителен к различиям в периодичности временных рядов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Часть 2: Преобразования Уолша-Фурье в диаграммы постоянства

Стоффер предположил, что спектральный анализ Уолша подходит для анализа временных рядов с дискретными и категориальными значениями, а также временных рядов, содержащих резкие разрывы. Построение преобразования Уолша-Фурье использует метод Шанкса для разложения временного ряда {xₜ, t = 1, …, T} на последовательность функций Уолша, каждая из которых представляет собой отличительный бинарный шаблон последовательности.

Если длина временного ряда T не равна 2, пусть T₂ обозначает следующую степень 2. Например, если T = 1440, то T₂ = 2¹¹ = 2048. Я использую заполнение нулем для получения временного ряда длиной T₂, установив значение x(T+1), x(T+2), …, x_(T₂) = 0.

Для j = 0, …, T₂ - 1 пусть λⱼ = j/T₂ обозначает j-ю последовательность. Пусть W(t,j) обозначает t-е значение функции Уолша в последовательности λⱼ. Функции Уолша генерируются итеративно следующим образом (Шанкс, 1969), где [a] обозначает целую часть a. Более подробную информацию о функциях Уолша см. в работе Стоффера (1991).

Преобразование Уолша-Фурье (WFT) временного ряда вычисляется как показано на рисунке 4. Вычислительная сложность равна O(T log(T)) (Шанкс, 1969). В примере я иллюстрирую построение диаграммы постоянства для категориального временного ряда с двумя уровнями.

Пример: Преобразование Уолша-Фурье в диаграмму постоянства

На рисунке 5 в первом столбце показан смоделированный категориальный временной ряд длиной T = 120 с двумя уровнями, 0 или 1. Уровень 1 происходит только в период между t = 21 и t = 100. В среднем столбце показан временной интервал, в то время как в третьем столбце показана диаграмма его постоянства. На диаграмме есть одна точка, удаленная от диагональной линии, которая является важной точкой рождения и смерти 0-й гомологической группы. Ниже показан R-код для моделирования временных рядов и преобразования WFT в диаграмму постоянства.

# Создание временного ряда
x.ts <- c(rep(0, 20), rep(1, 80), rep(0, 20))

# WFT
x.diag <- gridDiag(FUNvalues = x.WFTs, location = FALSE, sublevel = TRUE)$diagram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
MLOps guide by Chip Huyen

A collection of materials from introductory to advanced. This is roughly the path she would follow if she were to start my MLOps journey again.

Table of contents:
- ML + engineering fundamentals
- MLOps
- Overview
- Intermediate
- Advanced
- Career
- Case studies
- Bonus

Link: Guide

Navigational hashtags: #armtutorials
General hashtags: #ml #mlops

@data_science_weekly
Forwarded from Sinекура
Сегодняшние лекции — об одной из центральных тем и этого семестра, и машинного обучения в целом: о вариационных приближениях. Это классическая идея, изначально пришедшая из теоретической физики, но в итоге именно в машинном обучении оказалось всё время нужно приближать очень сложные распределения в пространствах высокой размерности — как правило, апостериорные распределения в сложных вероятностных моделях.

Такая идея, конечно, не потерялась и в эпоху глубокого обучения. Например, оба главных инструмента современных порождающих моделей для изображений и видео основаны на вариационных приближениях. Вы наверняка слышали о вариационных автокодировщиках, в чьём латентном пространстве до сих пор обычно порождают коды text-to-image модели (за GPT-4o, правда, уже не ручаюсь). Главный "секретный соус" VAE — правильная форма регуляризации, которая как раз из вариационной нижней оценки и получается. См. хотя бы мой давний пост в блоге Synthesis AI на эту тему.

Но и диффузионные модели тоже насквозь пронизаны вариационными приближениями: распределения, появляющиеся в процессе обратной диффузии (тот самый denoising), конечно, точно не посчитаешь, там на каждом шаге происходит аппроксимация. Об этом у меня тоже был пост в блоге Synthesis AI.

А вот ещё пара случайных примеров (абсолютно первых попавшихся) недавних интересных статей о вариационных приближениях:
Piriyakulkij et al. (2024) используют диффузионные модели как выразительные приближённые апостериорные распределения в вероятностных моделях со скрытыми переменными;
Sordoni et al. (2023) рассматривают стек из языковых моделей: их Deep Language Network — это два слоя, каждый из которых представляет собой LLM, и выход первой — скрытая переменная, которая как раз вариационным выводом и оптимизируется;
Gong et al. (2025) строят модель со скрытыми переменными для моделирования человеческих предпочтений, которые потом можно использовать для alignment; эти скрытые переменные кодируют факторы, из которых складываются предпочтения, и обучаются они тоже, как обычно со смесями, через вариационную нижнюю оценку.

А в лекциях мы обсудили основную идею и несколько относительно простых примеров. Ну как простых — вариационное приближение для смеси гауссианов уже не так просто построить, но вроде мы по модулю некоторых вычислений справились. Главное — увидели основную магию вариационных приближений: как из предположения о независимости q(Z_1), ..., q(Z_M) сразу получаются и формы распределений в оптимальной аппроксимации, причём оптимальные они не по отдельности, а все вместе, как произведение q(Z) = q(Z_1)...q(Z_M).

https://www.youtube.com/watch?v=848vDVNAnAM
Forwarded from rizzearch
Multi-Fidelity Policy Gradient Algorithms

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

еще критичнее это становится в относительно дорогих симуляторах (или же вообще непосредственно в реальном мире) с данными “высокого разрешения/точности”: из-за дисперсии надо дольше учиться, дольше гонять симулятор подороже, который еще и больше чувствителен к предиктивным ошибкам

но что если у нас есть возможность получать обедненные данные в бОльшем количестве (иначе смысла нет), так называемых low-fidelity environments, может ли это как-то помочь снизить нам разброс в градиент апдейтах?

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

обучали в такой манере рейнфорс и ппо - по результатам выглядит все довольно вкусно

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

однако есть как раз-таки нюанс с вот этим low-fidelity энвами

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

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

👀LINK