---
title: "MEMO: Test Time Robustness via Adaptation and Augmentation"
title_ru: "MEMO: Устойчивость во время теста через адаптацию и аугментацию"
authors: [Zhang, Levine, Finn]
year: 2022
venue: "NeurIPS"
venue_tier: "A*"
doi: "2110.09506"
tags: [test_time_adaptation, tta, augmentation, entropy, single_sample]
relevance_to_smartrep: 3
direction: "🅱"
---

# MEMO: Адаптация к одному тестовому примеру через аугментации

## TL;DR (≤3 предложения)

MEMO адаптирует модель к каждому тестовому примеру по отдельности: создаёт несколько аугментированных версий одного входа, минимизирует маргинальную энтропию предсказаний по этим аугментациям, затем сбрасывает параметры для следующего примера. В отличие от Tent не требует батча — работает на single sample. Для SmartRep: адаптация к одному повтору упражнения нового пользователя без накопления батча.

## Проблема

Tent требует батч тестовых примеров — при online одиночном инференсе (один повтор поступает, сразу нужна оценка) это невозможно. Нужен TTA-метод, работающий на одном примере.

## Гипотеза / вклад

- **Marginal entropy minimization:** аугментируем один пример $K$ раз, минимизируем маргинальную энтропию усреднённых предсказаний $H(\mathbb{E}_{aug}[p(y|aug(x))])$.
- **Per-example adaptation:** адаптация выполняется независимо для каждого $x$; параметры сбрасываются после.
- **Аугментации как implicit ensemble:** набор аугментаций кодирует prior о том, что "один и тот же объект под разными трансформациями должен иметь одинаковое предсказание".

## Метод

Для тестового примера $\mathbf{x}$, набор аугментаций $\{aug_k\}_{k=1}^K$:

$$\mathcal{L}_{MEMO} = H\left(\frac{1}{K}\sum_{k=1}^K p(y \mid aug_k(\mathbf{x}))\right)$$

Минимизируется по всем параметрам модели (или только BN/LayerNorm). После предсказания параметры сбрасываются к исходным (reset).

### Архитектура (Mermaid)

```
Single test x → augment K times → {aug₁(x), ..., augK(x)}
                                          ↓
               Model f_θ → {p₁, ..., pK}
                                          ↓
               Marginal entropy H(mean(pᵢ)) → update θ → predict
                                          ↓
               Reset θ to original (for next sample)
```

## Датасеты

| Датасет | Задача | Метрика | Результат |
|---|---|---|---|
| ImageNet-C | Corruption robustness | Error rate | 54.2% (vs Tent 56.0%) |
| ImageNet-R | Distribution shift | Accuracy | 52.1% |
| CIFAR-10-C | Corruption robustness | Error rate | 21.8% |

## Сравнение с SOTA

Превосходит Tent на single-sample режиме (Tent вырождается при batch=1). Уступает Tent при больших батчах из-за большего числа forward passes (K аугментаций).

## Ограничения / слабости

- $K$ forward passes вместо одного — в $K$ раз дороже инференс (обычно $K=32$–$64$).
- Сброс параметров после каждого примера — не накапливает знание между примерами.
- Аугментации должны быть заранее определены; для движений нет стандартного набора аугментаций.
- Нестабильность при очень сильном distribution shift.

## Релевантность SmartRep

- **Single-rep adaptation 🅱:** один повтор упражнения как один "пример" — MEMO адаптирует модель к конкретному повтору перед оценкой. При K=8 аугментаций (case-flips, temporal jitter, speed variation) это реализуемо даже на mobile.
- **Аугментации для поз:** случайный flip по оси, небольшой temporal jitter (±2 кадра), масштабирование координат суставов — естественные инвариантные трансформации для скелетных данных.
- **Per-user inference:** новый пользователь, первый повтор — MEMO адаптирует без истории.

## Gap для нас

K forward passes дорого. **Ниша SmartRep:** сократить K до 4–8 через exercise-specific аугментации (не случайные ImageNet-аугментации, а биомеханически осмысленные: small joint angle perturbations, speed jitter) — меньшее K при той же или лучшей адаптации благодаря domain-специфичному prior.

## Ссылки на связанные статьи

- [[Tent]] — батч-ориентированная альтернатива
- [[EATA]] — эффективная TTA с отбором надёжных примеров
- [[MAML]] — meta-learning как альтернатива для per-example adaptation

## Код / данные

- Repo: github.com/zhangmarvin/memo
- Pretrained: нет

## Цитата (BibTeX)

```bibtex
@inproceedings{zhang2022memo,
  title={MEMO: Test Time Robustness via Adaptation and Augmentation},
  author={Zhang, Marvin and Levine, Sergey and Finn, Chelsea},
  booktitle={Advances in Neural Information Processing Systems},
  year={2022}
}
```
