Эта статья будет представлять собой серию статей ELI5, которые я собираюсь использовать для объяснения статей, которые привели к некоторым из моих лучших идей в 2020 году. Каждая статья будет представлять собой пятиминутное чтение, в котором освещаются ключевые, преимущества и недостатки, при этом предоставляя пользователю понимание, которое ему нужно (и «заслуживает»), чтобы взломать его самостоятельно.

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

Это оно. Это 10-секундный гиф (произносится как gif или gif ??). Несмотря на свою простоту, его влияние было ИСКЛЮЧИТЕЛЬНЫМ с точки зрения производительности, которую он мог дать с небольшим объемом помеченных данных.

Итак, вот как это работает: что происходит в этом процессе, мы делаем только изображение (без ярлыков) собаки, а также изображение стула. Затем мы генерируем два разных изображения из каждого изображения, применяя случайные дополнения к исходным. Например, я случайным образом обрезаю изображение собаки, применяю дрожание цвета и некоторое случайное искажение цвета, чтобы получить изображение в крайнем левом углу. Эти изображения затем проходят через CNN, который является моим блоком кодировщика, и эти сети выводят определенное представление для каждого из этих изображений. Эти представления, которые имеют размер 2048, дополнительно отображаются в скрытое пространство 128-мерного вектора с помощью проекционной головки MLP. Теперь пришло время волшебства: два преобразования изображения собаки сделаны похожими с использованием Contrastive Loss, как будто они притягивают друг друга, тогда как изображения собаки и стула созданы так, чтобы отталкивать друг друга, поскольку они являются отрицательными парами. Contrastive Loss (NT-Xent) в этом случае - не что иное, как прославленная потеря кросс-энтропии с температурным масштабированием, чтобы помочь модели изучить жесткие отрицательные особенности (чтобы помочь отличить собаку от слона, стула и космического корабля.

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

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

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

Преимущества

  1. Рабочий процесс был чрезвычайно простым. Выберите модель, данные, дополнения, выполните предварительное обучение, используйте модель для контролируемых задач.
  2. Этот метод изучает большинство функций с помощью в основном немаркированных данных. Соответствующая фаза не требует никаких меток, кодировщик изучает представления, просто глядя на изображения.
  3. Дополнения помогают кодировщику понять как локальные, так и глобальные функции.
  4. Этот метод набрал колоссальные 85,8% при дальнейшем обучении с 1% помеченных данных и 92,6% при дальнейшем обучении с 10% маркированных данных на ResNet-50 (4x, если быть точным).
  5. Это метод полу-контролируемого обучения, он напрямую масштабируется с объемом немаркированных данных, доступных для предварительного обучения.

Недостатки:

  1. Задача предварительного обучения здесь включает в себя только пополнение данных. Несмотря на эффективность, выбор дополнений и степень дополнений должны выполняться пользователями в соответствии с данными и типом представлений, которые они хотят, чтобы модель изучила.
  2. Подходит ли для задач локализации? Это снова сводится к выбору дополнений, которые потенциально могут позволить модели стать более ориентированной на местность.
  3. Чрезвычайно большой размер партии: в статье предлагается использовать размер партии 8192! Хех, Окей, Google, спасибо, что указали нам, что мы разорены. Это все еще работает для небольших наборов данных, но Contrastive Loss, как было доказано, работает с большими размерами пакетов.

Ресурсы:

Теперь, когда вы прочитали краткий обзор одной из моих 10 лучших замечательных статей за 2020 год, вот несколько ресурсов, в которые можно глубже погрузиться, а также проверить их:

  1. Простая структура для сравнительного изучения визуальных представлений
  2. Официальная реализация Tensorflow, если у вас серьезные обязательства.
  3. Упрощенная (но столь же эффективная) реализация Tensorflow, если все дело в простоте.
  4. Для тех из вас (включая меня), кто любит принимать жесткие решения: SimCLR- PyTorch Lightning