---
title: "FitNets: Hints for Thin Deep Nets"
title_ru: "FitNets: Подсказки для тонких глубоких сетей (дистилляция промежуточных слоёв)"
authors: [Romero, Ballas, Kahou, Chassang, Gatta, Bengio]
year: 2015
venue: "ICLR"
venue_tier: "A*"
doi: "1412.6550"
tags: [knowledge_distillation, feature_distillation, intermediate_layers, compression, hint_learning]
relevance_to_smartrep: 3
direction: "🅲"
---

# FitNets: Дистилляция через промежуточные слои

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

FitNets расширяет KD (Hinton) на промежуточные признаки: student обучается не только на выходных logits teacher, но и на "подсказках" — выходах промежуточных слоёв teacher, через дополнительный regressor. Это позволяет обучать более тонкие (fewer channels) и глубокие (more layers) студенты, которые лучше оптимизируются с промежуточным supervision. Методологическая основа для feature-level distillation, широко применяемого в pose estimation.

## Проблема

KD только на logits слабо направляет внутреннее представление student'а. Тонкий и глубокий student может застрять в плохом локальном минимуме при обучении только на конечных предсказаниях. Промежуточные подсказки — дополнительный supervision сигнал для внутренних слоёв.

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

- **Hint layers:** промежуточные слои teacher являются "подсказками" для соответствующих слоёв student'а.
- **Regressor:** так как teacher и student имеют разные размерности, добавляется маленький conv-regressor для выравнивания размерностей.
- **Two-stage training:** (1) hint pre-training: student обучается на промежуточных признаках; (2) KD fine-tuning: дообучение на soft logits.

## Метод

Stage 1 (hint pre-training):

$$\mathcal{L}_{hint} = \|u_h(\mathbf{W}^h_S) - \mathbf{W}^T_t\|_2^2$$

где $u_h$ — regressor, $\mathbf{W}^h_S$ — hint layer student'а, $\mathbf{W}^T_t$ — guided layer teacher'а.

Stage 2 (KD):

$$\mathcal{L}_{KD} = (1-\alpha)\mathcal{L}_{CE} + \alpha T^2 \mathcal{L}_{KL}(p_T, p_S)$$

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

```
Teacher (frozen):  hint layer W_t^T
                         ↓
Student hint layer W_S^h → Regressor u_h → match W_t^T (Stage 1)
                         ↓
Student full forward + KD loss on logits (Stage 2)
```

## Датасеты

| Датасет | Teacher | Student | KD (Hinton) | FitNet |
|---|---|---|---|---|
| CIFAR-10 | Maxout | Thin deep net | 9.09% err | 8.39% err |
| MNIST | Maxout | Thin deep net | 0.57% err | 0.51% err |

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

Тонкий student через FitNet превосходит KD на промежуточной точности. При том же числе параметров FitNet глубже и тоньше чем KD-student — лучше обобщается.

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

- Two-stage training усложняет pipeline.
- Выбор hint layer и guided layer — нетривиальный гиперпараметр.
- Regressor добавляет параметры, хотя и небольшие.
- Размерностное выравнивание между teacher и student часто требует ручной настройки.

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

- **Feature distillation для pose 🅲:** DistilPose (CVPR 2023) прямо вдохновлён FitNets — передаёт heatmap features от heavy pose model к light one. FitNet = методологическая основа.
- **Motion representation distillation:** промежуточные признаки MotionBERT (temporal attention maps, joint embedding) как hint для студенческого skeleton encoder.
- **LUPI реализация:** teacher видит RGB → извлекает motion features → передаёт как hint skeleton-student. Это FitNet-стиль cross-modal distillation.

## Gap для нас

FitNet для cross-modal (video→skeleton) и temporal задач не исследован. **Ниша SmartRep:** Temporal FitNet — hint learning на уровне temporal attention карт (какие фазы повтора важны) от video-teacher к skeleton-student. Позволяет передать не только "что правильно", но и "когда критично".

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

- Repo: нет официального (2015), реализован в Distiller (Intel)
- Pretrained: нет

## Цитата (BibTeX)

```bibtex
@inproceedings{romero2015fitnets,
  title={FitNets: Hints for Thin Deep Nets},
  author={Romero, Adriana and Ballas, Nicolas and Kahou, Samira Ebrahimi and Chassang, Antoine and Gatta, Carlo and Bengio, Yoshua},
  booktitle={International Conference on Learning Representations},
  year={2015}
}
```
