# Big Transfer (BiT): как Google адаптировал успех BERT для компьютерного зрения

Источник: https://www.youtube.com/watch?v=k1GOF2jmX7c
Канал: Yannic Kilcher
Опубликовано: 09.05.2020

---

В современной компьютерной лингвистике стандартным подходом давно стала архитектура BERT или другие трансформеры: никто не тренирует их с нуля, все берут предобученную модель и адаптируют под свои нужды. Исследователи из Google Brain решили перенести этот золотой стандарт в область компьютерного зрения, представив проект Big Transfer (BiT).

## 🖼️ Новая парадигма: от нейросетей-специалистов к универсальным моделям
[[JUMP:00:12]]

Традиционно задачи компьютерного зрения — от классификации котиков до анализа медицинских снимков легких — решаются с помощью сверточных нейронных сетей (CNN) [01:06]. Однако глубокие сети, такие как ResNet, требуют колоссального объема данных. В специфических областях, например в медицине, данных часто катастрофически мало для обучения «с чистого листа» [01:33].

Решением выступает **transfer learning** (перенос обучения). Процесс делится на две фазы:

1.  **Pre-training (Предобучение):** модель обучается на гигантском наборе данных (например, ImageNet).
2.  **Fine-tuning (Тонкая настройка):** полученные веса используются как стартовая точка для обучения на маленьком целевом датасете для конкретной задачи [02:15].

Янник Кильчер отмечает, что цель Big Transfer — найти «универсальную стартовую точку» [04:48]. Вместо того чтобы каждый раз изобретать велосипед, разработчики смогут брать готовую модель BiT и адаптировать её под свои нужды, как это происходит с языковыми моделями в NLP.

## 📊 Масштаб имеет значение: три версии Big Transfer
[[JUMP:05:14]]

Google представила три варианта модели, различающихся объемом данных для предобучения:

*   **BiT-S (Small):** обучена на стандартном ImageNet (1,3 млн изображений) [05:53].
*   **BiT-M (Medium):** обучена на ImageNet-21k (14 млн изображений), который содержит довольно специфические объекты на странных фонах [05:28].
*   **BiT-L (Large):** обучена на закрытом датасете JFT-300M, содержащем 300 миллионов изображений [05:28].

Архитектурно BiT — это классические ResNet-152, но с увеличенной в 4 раза шириной слоев (x4) [07:01]. Янник Кильчер подчеркивает, что в самой архитектуре нет революционных новшеств. Сила работы — в детальном описании инженерного протокола: какие параметры действительно важны для успеха переноса обучения, а какие нет [07:28].

## 🛠️ Секреты предобучения: размер и нормализация
[[JUMP:11:51]]

Авторы статьи выделили два ключевых компонента успешного предобучения.

### 1. Одновременное масштабирование данных и модели
Простое увеличение объема данных не дает эффекта, если модель слишком мала [13:07]. Верно и обратное: огромная модель на маленьком датасете быстро переобучается. По мнению Янника Кильчера, здесь прослеживается связь с гипотезой о «двойном спуске» (double descent) Михаила Белкина: при прохождении порога интерполяции (когда число параметров превышает число точек данных) ошибка на валидации снова начинает падать [14:39]. Чтобы оставаться в этой зоне при добавлении данных, необходимо пропорционально наращивать количество параметров.

### 2. Отказ от Batch Normalization
Традиционный Batch Norm плохо работает при распределенном обучении на большом количестве устройств. Если на каждом из 500 TPU оказывается всего по 8 образцов, статистика среднего и дисперсии становится нерелевантной [19:41].
Вместо этого в BiT используются:

*   **Group Normalization:** нормализация признаков внутри групп каналов для одного образца [20:20].
*   **Weight Standardization:** стандартизация самих весов нейросети [20:35].
Это устраняет необходимость постоянной синхронизации между рабочими узлами и ускоряет обучение без потери качества.

## 🎸 Протокол BiT-HyperRule: тонкая настройка без усилий
[[JUMP:21:16]]

Обычно fine-tuning требует долгого подбора гиперпараметров. Google предложила **BiT-HyperRule** — своего рода «мета-правило» или таблицу соответствий. Разработчик задает один основной параметр, а правило автоматически определяет длину расписания обучения, разрешение изображений и необходимость использования **Mixup** (техники интерполяции данных) [22:12].

Удивительно, но при тонкой настройке авторы полностью отказались от стандартной регуляризации: они не используют ни DropOut, ни Weight Decay (последний применяется только при предобучении) [23:11].

## 📈 Результаты и «смерть» академических исследований
[[JUMP:23:37]]

BiT показывает впечатляющие результаты в режиме малого количества данных. Например, при наличии всего 5 размеченных примеров на класс для датасета CIFAR-10 модель достигает точности 94% [09:59].

Однако Янник Кильчер обращает внимание на тревожный тренд: фундаментальные исследования в области компьютерного зрения окончательно ускользают из рук академии в руки корпораций [30:54]. В статье Google критикуются исследователи, которые «слишком рано» снижают скорость обучения (learning rate) — например, после 8 «GPU-недель». Авторы BiT доказывают, что для достижения пиковой производительности нужно ждать месяцами.
> «Когда вы видите статью, где высмеивают людей, ждущих всего 8 GPU-недель, и советуют ждать 8 GPU-месяцев — это конец. Академии здесь делать больше нечего», — иронизирует Янник Кильчер [31:08].

## 🧐 Когда ошибается даже BiT
[[JUMP:31:23]]

При точности 99,4% на CIFAR-10 ошибки модели становятся крайне специфичными. Зачастую модель оказывается «умнее» разметки: на изображениях, где стоит метка «кошка», BiT видит птицу или корабль, и при ближайшем рассмотрении выясняется, что в датасете действительно была допущена ошибка [32:07].

В ImageNet ошибки носят семантический характер: модель может перепутать ноутбук с лэптопом или мышь с клавишей пробела [32:34]. На совсем странных изображениях (вроде трицератопса на психоделическом фоне из ImageNet-21k) модель может выдать «морскую звезду», что, по мнению ведущего, скорее говорит о странности самого датасета, чем о слабости алгоритма [33:33].

---