Интенсивное чтение иллюстрированных документов для самоконтроля | BYOL (SOTA) | 2020

алгоритм

  • Статья изначально взята из общедоступного аккаунта WeChat «Алхимия машинного обучения».
  • Автор: брат алхимик
  • Контактное лицо: WeChat cyx645016617

В этой статье в основном объясняются две неконтролируемые статьи, относительно новые и популярные в 2020 году:

  • Название статьи: «Начните свою собственную латентную активность: новый подход к обучению с самостоятельным наблюдением»
  • Ссылка на бумагу:АР Вест V.org/PDF/2006.07…

0 Обзор

BYOL — это Boostrap Your Own Latent, эта неконтролируемая структура очень элегантна и проста, и она работает. Он получил похвалу от многих людей.Последний с таким названием, по-моему, YOLO. Оба очень простые и красивые.

1 Математические символы

Эта структура имеет две сети: одна — онлайн-сеть, а другая — целевая сеть.

  • онлайн-сеть: использоватьθ\thetaДля представления параметров онлайн-сети, в том числе, энкодераfθf_{\theta},projectorgθg_{\theta}и предсказательqθq_\theta
  • целевая сеть: использоватьξ\xiдля представления параметров существуют такжеfξf_{\xi}иgξg_{\xi}, но без предиктора.

Мы обновим онлайн-сеть, а затем обновим целевую сеть со скользящим средним:

ξтξ+(1т)θ\xi\leftarrow \tau\xi + (1-\tau)\theta

Теперь у нас есть набор данных изображения D, в котором мы делаем снимок.xеDx\in D, а потом делаем разные улучшения изображения на этом D и получаем два новых дистрибутиваT\TauиT'\Tau', а затем сделайте снимки из двух новых раздач, используяvvиv'v'отметка. То есть, если вы используетеt()t()иt'()t'()представляет собой процесс улучшения изображения, тогдаv=t(x),v'=t'(x)v=t(x),v'=t'(x).

2 Функция потерь

теперь у нас естьvv, после энкодера получитьy=fθ(v)y=f_{\theta}(v), после проектора получитьz=gθ(y)z=g_{\theta}(y), После предиктора получитьqθ(z)q_{\theta}(z); Аналогично, то же верно и для целевой сети, но конечного предиктора нет, и окончательный результат равенz'z'.

Мыz'z'иqθ(z)q_{\theta}(z)Выполнить l2-нормализацию означает убрать абсолютный размер этих двух неявных переменных, сохранив при этом их направленность, чтобы проложить путь для векторного скалярного произведения, которое будет выполнено позже.

На картинке вышеqθˉ(z)=qθ(z)qθ(z)2\bar{q_{\theta}}(z)=\frac{q_{\theta}(z)}{||q_{\theta}(z)||_2}, функция потерь не сложна, на самом деле она немного похожа на:22cosθ2-2\cos\theta

Выше мы получаем потерюLθ,ξL_{\theta,\xi}, Затем нам нужно рассчитать симметричные потери, которые вычисляются путем помещения v и v' в целевую сеть и онлайн-сеть соответственно, и полученияL~θ,ξ\widetilde{L}_{\theta,\xi}, а затем упомянутый в статье, минимизированный с помощью SGD

Lθ,ξBYOL=Lθ,ξ+L~θ,ξL^{BYOL}_{\theta,\xi}=L_{\theta,\xi} + \widetilde{L}_{\theta,\xi}

Следует отметить, что в этом процессе оптимизации обновляется только онлайн-сеть, а параметры целевой сети не меняются.Цель состоит в том, чтобы постепенно позволить онлайн-сети иметь производительность целевой сети.

Таким образом, весь процесс обучения этому BYOL можно свести к следующим двум строкам:

3 детали

3.1 Улучшение изображения

3.2 Структура

Кодер на картинке вышеfθ,fξf_{\theta},f_{\xi}Я использую resnet50 и пост-активацию.Я впервые увидел пост-активацию здесь, и я пошел посмотреть и обнаружил, что это на самом деле первая свертка или первый слой активации.Если relu ставится после conv, это пост-активация, и если relu ставится перед conv, это предварительная активация.

После кодировщика изображение выводит 2048 признаков, а затем через MLP функции расширяются до 4096 признаков, и, наконец, выводятся 256 признаков,В модели SimCLR за MLP следуют уровень BN и уровень активации Relu, но в BYOP нет уровня BN.

3.3 Оптимизатор

Используется оптимизатор LARS, используется косинусная стратегия затухания скорости обучения, а обучение составляет 1000 эпох, включая 10 эпох прогрева. Скорость обучения установлена ​​на 0,2.

Что касается параметров онлайн-обновления до целит\tau,тbase=0.996\tau_{base}=0.996,

т=1(1тbase)(cosчисло ПиkK+1)12\tau=1-(1-\tau_{base})(\cos\frac{\pi k}{K}+1)\frac{1}{2}

k is current training step and K is maximum training steps.

3.4 Финансовые ресурсы

Размер пакета — 4096, распределенных по 512 ядрам TPU v3, и обучение кодировщика занимает около 8 часов.

4 Оценка модели

Чтобы выполнить контролируемое обучение в ImageNet, сначала обучите кодировщик с помощью неконтролируемого, а затем используйте стандартный resnet50 для контролируемой тонкой настройки:

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

Влияние такого метода на другие наборы данных классификации:

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