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

Yannic Kilcher 10,6 тыс. 34 мин 4 мин 09.05.2020
Главное

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

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

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

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

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

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

📊 Масштаб имеет значение: три версии Big Transfer 5:14

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

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

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

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

1. Одновременное масштабирование данных и модели

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

2. Отказ от Batch Normalization

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

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

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

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

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

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

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

«Когда вы видите статью, где высмеивают людей, ждущих всего 8 GPU-недель, и советуют ждать 8 GPU-месяцев — это конец. Академии здесь делать больше нечего», — иронизирует Янник Кильчер .

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

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

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


💬 Цитаты

«Исследования нейросетей в компьютерном зрении официально вышли из рук академии. Если вы не можете ждать 8 GPU-месяцев — это конец.»

Янник Кильчер 30:54

«BiT-HyperRule — это одно правило, которое скажет вам, какими должны быть все гиперпараметры для вашей задачи.»

Янник Кильчер 21:31
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Transfer Learning
Метод машинного обучения, при котором знания, полученные при решении одной задачи, применяются к другой, родственной задаче.
Fine-tuning
Процесс дообучения предобученной модели на специфическом, часто небольшом наборе данных.
Batch Normalization
Метод ускорения обучения нейросетей путем нормализации входных данных для каждого слоя внутри батча.
JFT-300M
Внутренний гигантский датасет Google, содержащий около 300 миллионов изображений.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Big Transfer Google Brain ResNet Yannic Kilcher Transfer Learning