Self-training with Noisy Student improves ImageNet classification

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Google Research, 2020

https://arxiv.org/abs/1911.04252

Какую задачу решают авторы?

Когда речь заходит о deep learning’e в целом и о задачи классификации изображений в частности, общепринятой точкой зрения является, что чем больше размеченных данных, тем лучше качество модели.

Получить качественный размеченный датасет может быть долго и дорого, поэтому вместе с небольшим количеством размеченных данных можно использовать неразмеченные данные, которые имеются в избытке.

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

Ниже чуть подробнее рассмотрим трюки, которые позволили сильно улучшить SOTA решение на ImageNet.

Как решают

Идея

Основная идея авторского решения довольна проста и ее можно разбить на следующие шаги:

  1. Обучаем модель учителя на размеченных изображениях
  2. Обученную моделью генерируем разметку для корпуса неразмеченных изображений
  3. Обучаем новую модель ученика на датасете, состоящем из размеченных картинок и картинок, которые были размечены учителем
  4. Теперь вместо учителя используем ученика и повторяем шаги начиная со второго

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

В статьях посвященных knowledge distillation, как правило, модель ученика намного меньше модели учителя. Делается это чаще всего с целью не потерять сильно в качестве, но при этом сильно уменьшить размер модели, чтобы ее можно было эффективно использовать в продакшене.

Однако если в предлагаемом алгоритме пойти по тому же пути, то мы не увидим особого роста качества.

Улучшения

Получить по настоящему интересные результаты авторам позволили следующие улучшения существующих подходов:

  1. Модель ученика по размеру не меньше учителя
  2. Ученик обучается на зашумленных данных

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

Ученик должен быть не меньше учителя, для того чтобы модель обладала достаточной емкостью, чтобы суметь выучить все что знает учитель и еще немного больше.

То есть при обучении ученика используется та же архитектура, что и у учителя, но с большим числом параметров.

Рассмотрим как именно зашумляются данные.

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

Нужно это для того чтобы ученику было чуть сложнее учиться, и чтобы он смог выучить не только знания учителя, но и какую-то дополнительную информацию.

Наряду с зашумлением данных, авторы также “зашумляют” модель, используя dropout и stochastic depth. То есть во время обучения случайным образом исключаются отдельные нейроны (dropout) или целые слои сети (stochasticdepth) — этот процесс авторы называют noising. Это позволяет получить более робастную модель.

Ниже на картинке представлена общая схема подхода

Так же важно отметить, что псевдо-разметка для картинки - это не лэйбл класса, а распределение вероятности над классами (вектор).

Такой подход позволяет достичь лучшего результаты при обучении ученика.

Эксперименты

Для экспериментов авторы использовали корпус из 300М неразмеченных картинок.

Лучше всего иллюстрирует результат следующая таблица:

использовании намного меньшего по размеру датасета, предлагаемый подход сильно обходит SOTA решение, которое использует только размеченные данные.

Еще одно преимущество — для достижения таких результатов потребовалось всего три итерации алгоритма, по времени обучения тоже получается выигрыш.

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

Очень рекомендую посмотреть статью целиком, там много интересных наблюдений.

Мое мнение

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

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


Источник: m.vk.com

Комментарии: